Codeunit 1252 "Match Bank Rec. Lines"
Base Application · Microsoft.Bank.Reconciliation
Across versions
- BC23present
- BC241 procedures removed, 1 events removed
- BC25unchanged
- BC266 events added
- BC271 procedures added, 1 procedures removed
- BC28-30unchanged
Neighbourhood 8 connected objects and pages
Base Application · Microsoft.Bank.Reconciliation · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnShowMatchSummaryOnAfterSetFinalText(var BankAccReconciliation: Record "Bank Acc. Reconciliation"; FinalText: Text; var IsHandled: Boolean)(integration): Integration event raised after setting the final text in the match summary display. Allows subscribers to customize the summary text or provide alternative display handling.OnFindBestMatches(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; DaysTolerance: Integer; var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; var RemovedPreviouslyAssigned: Boolean; var Handled: Boolean)(integration): Integration event for finding best matches using custom algorithms or external services. Allows subscribers to implement alternative matching logic, potentially with AI or machine learning.- subscribers: Codeunit 7250 “Bank Rec. AI Matching Impl.” HandleOnFindBestMatches
OnBeforeRemoveMatchesFromRecLines(var IsHandled: Boolean)+ BC26 (integration): Integration event raised before removing matches from reconciliation lines. Allows subscribers to implement custom removal logic or prevent the removal operation.OnRemoveMatchOnAfterRemoveApplication(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")+ BC26 (integration): Integration event raised after removing an application from a bank account ledger entry during match removal. Allows subscribers to perform cleanup operations or additional processing after application removal.OnPerformManyToOneMatchOnBeforeApplyEntries(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")+ BC26 (integration): Integration event raised before applying entries in a many-to-one matching scenario. Allows subscribers to perform validation or modify data before the many-to-one application.OnPerformManyToOneMatchOnAfterApplyEntries(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")+ BC26 (integration): Integration event raised after applying entries in a many-to-one matching scenario. Allows subscribers to perform post-application processing or logging for many-to-one matches.OnPerformOneToOneOrManyMatchOnBeforeApplyEntries(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")+ BC26 (integration): Integration event raised before applying entries in one-to-one or one-to-many matching scenarios. Allows subscribers to perform validation or modify data before the entry application.OnPerformOneToOneOrManyMatchOnAfterApplyEntries(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")+ BC26 (integration): Integration event raised after applying entries in one-to-one or one-to-many matching scenarios. Allows subscribers to perform post-application processing or logging for standard matches.
Procedures
MatchManually(var SelectedBankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var SelectedBankAccountLedgerEntry: Record "Bank Account Ledger Entry"): Creates manual matches between selected bank reconciliation lines and bank account ledger entries. Enables users to override automatic matching decisions by explicitly linking statement lines with specific ledger entries, supporting complex reconciliation scenarios requiring human judgment.BankReconciliationLineInManyToOne(var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"): Boolean(internal): Determines whether a bank reconciliation line is part of a many-to-one matching relationship. Checks if the line has multiple bank reconciliation lines matched to a single bank account ledger entry, which requires special handling during removal and processing operations.RemoveMatchesFromRecLines(var SelectedBankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"): Removes all matches from selected bank reconciliation lines, clearing their applied entries. Unlinks bank account ledger entries and check ledger entries from the reconciliation lines, resetting them to unmatched status for potential re-matching with different entries.RemoveMatchesFromRecLines(var SelectedBankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var MatchesRemoved: Boolean): Removes all matches from selected bank reconciliation lines with detailed tracking of removal status. Unlinks bank account ledger entries and check ledger entries from the reconciliation lines, resetting them to unmatched status while providing feedback on whether any matches were actually removed.RemoveMatch(var SelectedBankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var SelectedBankAccountLedgerEntry: Record "Bank Account Ledger Entry"): Removes specific matches between selected bank reconciliation lines and bank account ledger entries. Provides granular control over match removal by targeting specific entry combinations rather than clearing all matches from a line. Handles both bank account ledger entries and check ledger entries w…BankAccReconciliationAutoMatch(BankAccReconciliation: Record "Bank Acc. Reconciliation"; DaysTolerance: Integer): Executes automatic matching algorithm for bank account reconciliation with date tolerance. Analyzes bank statement lines and bank account ledger entries to identify potential matches based on amounts, dates (within tolerance), document numbers, and text descriptions. Updates matched entries by apply…BankAccReconciliationAutoMatch(var BankAccReconciliation: Record "Bank Acc. Reconciliation"; DaysTolerance: Integer; RaiseFindBestMatchesEvent: Boolean; ShouldShowMatchSummary: Boolean): Executes comprehensive automatic matching algorithm for bank account reconciliation with advanced options. Provides full control over the matching process including event handling, optimization settings, and result presentation. Analyzes bank statement lines and bank account ledger entries using sop…InitializeBLEMatchingTempTable(var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")ListOfMatchedFields(AmountMatched: Boolean; DocumentNoMatched: Boolean; ExternalDocumentNoMatched: Boolean; TransactionDateMatched: Boolean; RelatedPartyMatched: Boolean; DescriptionMatched: Boolean): TextSaveOneToOneMatching(var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; BankAccountNo: Code[20]; StatementNo: Code[20])SaveManyToOneMatching(var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; BankAccountNo: Code[20]; StatementNo: Code[20])ShowMatchSummary(BankAccReconciliation: Record "Bank Acc. Reconciliation")GetDescriptionMatchScore(BankRecDescription: Text; BankEntryDescription: Text; DocumentNo: Code[20]; ExternalDocumentNo: Code[35]): IntegerSetMatchLengthTreshold(NewMatchLengthThreshold: Integer)SetNormalizingFactor(NewNormalizingFactor: Integer)GetMatchLengthTreshold(): IntegerGetNormalizingFactor(): Integer
Plus 19 local procedures.
Triggers
OnRun
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 375 “Bank Acc. Entry Set Recon.-No.” (11 calls:
PerformManyToOneMatch → ApplyEntries,PerformManyToOneMatch → RemoveApplication,PerformManyToOneMatch → SetLineCount, …) - Codeunit 1251 “Record Match Mgt.” (4 calls:
BankReconciliationLineTextSimilarityScores → CalculateExactStringNearness,BankReconciliationLineTextSimilarityScores → CalculateStringNearness,GetDescriptionMatchScore → CalculateStringNearness, …) - Codeunit 376 “Check Entry Set Recon.-No.” (1 call:
RemoveMatch → RemoveApplication)
Called by
- Codeunit 7250 “Bank Rec. AI Matching Impl.” (2 calls:
ApplyToProposedLedgerEntries → SaveManyToOneMatching,ApplyToProposedLedgerEntries → SaveOneToOneMatching) - Page 7250 “Bank Acc. Rec. AI Proposal” (2 calls:
AutoMatchWithCopilot → BankAccReconciliationAutoMatch,AutoMatchWithCopilot → InitializeBLEMatchingTempTable) - Codeunit 7251 “Bank Acc. Rec. Trans. to Acc.” (1 call:
PostNewPaymentsToProposedGLAccounts → SaveOneToOneMatching) - Table 273 “Bank Acc. Reconciliation” (1 call:
MatchSingle → BankAccReconciliationAutoMatch)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Match Bank Rec. Lines"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.