Table "Bank Statement Matching Buffer"
Temporary buffer table for storing and ranking potential matches during automatic bank reconciliation. This table accumulates candidate ledger entries that could potentially match with bank statement lines, along with scoring information, quality metrics, and matching criteria details. Used internally by matching algorithms to evaluate, rank, and select the best matches based on configurable rules and thresholds before applying final matching decisions.
Remarks
Key features include match quality scoring, detailed criteria tracking (amounts, dates, document numbers), one-to-many relationship handling, related party matching status, and comprehensive match details for audit and review purposes. The buffer enables sophisticated ranking algorithms that consider multiple matching factors simultaneously, supporting both exact and fuzzy matching scenarios with weighted scoring. Used exclusively during matching processes and cleared after each matching operation completion.
Properties
| Name | Value |
|---|---|
| Caption | Bank Statement Matching Buffer |
| ReplicateData | False |
| TableType | Temporary |
| DataClassification | CustomerContent |
Fields
| Name | Type | Description |
|---|---|---|
| "Line No." | Integer | Bank statement line number being evaluated for matching. References the source statement line for which potential matches are being identified. |
| "Entry No." | Integer | Ledger entry number of the potential match candidate. References the bank account, customer, vendor, or GL entry that could match the statement line. |
| Quality | Integer | Match quality score indicating the strength of the potential match. Higher scores represent better matches based on multiple matching criteria and algorithms. |
| "Account Type" | Enum Microsoft.Finance.GeneralLedger.Journal."Gen. Journal Account Type" | Type of account for the potential match candidate. Determines whether the match is against a customer, vendor, bank account, or GL account entry. |
| "Account No." | Code[20] | Account number of the potential match candidate. Identifies the specific customer, vendor, bank account, or GL account for the match. |
| "One to Many Match" | Boolean | Indicates if this match represents a one-to-many relationship scenario. True when one statement line could potentially match multiple ledger entries. |
| "No. of Entries" | Integer | Number of related entries in a one-to-many or many-to-one matching scenario. Used for aggregating multiple entries that collectively match a single statement line. |
| "Total Remaining Amount" | Decimal | Total remaining amount across multiple entries in complex matching scenarios. Calculated sum for one-to-many matches to compare against statement line amount. |
| "Related Party Matched" | Option | Status of related party matching for the potential match candidate. Indicates whether customer/vendor information matches the statement line party details. |
| "Match Details" | Text[250] | Detailed description of matching criteria that contributed to the match score. Provides audit trail and explanation of why this candidate was identified as a potential match. |
| "Doc. No. Score" | Integer | Score contribution from document number matching algorithms. Measures how well the statement line document reference matches the ledger entry document number. |
| "Ext. Doc. No. Score" | Integer | Score contribution from external document number matching algorithms. Measures how well the statement line reference matches the ledger entry external document number. |
| "Description Score" | Integer | Score contribution from description and narrative text matching algorithms. Measures similarity between statement line description and ledger entry description. |
| "Amount Difference" | Decimal | Amount difference between statement line and potential match candidate. Used to evaluate amount-based matching tolerance and precision. |
| "Date Difference" | Integer | Date difference in days between statement line and potential match candidate. Used to evaluate date-based matching tolerance and temporal proximity. |
| "Doc. No. Exact Score" | Integer | Score for exact document number matches without fuzzy logic. Higher weight given to precise document number correspondences. |
| "Ext. Doc. No. Exact Score" | Integer | Score for exact external document number matches without fuzzy logic. Higher weight given to precise external document number correspondences. |
| "Description Exact Score" | Integer | Score for exact description matches without fuzzy logic. Higher weight given to precise description text correspondences. |
| SystemId | Guid | |
| SystemCreatedAt | DateTime | |
| SystemCreatedBy | Guid | |
| SystemModifiedAt | DateTime | |
| SystemModifiedBy | Guid | |
| SystemCreatedByUserName | Text[50] | |
| SystemCreatedByFullName | Text[80] | |
| SystemModifiedByUserName | Text[50] | |
| SystemModifiedByFullName | Text[80] | |
| SystemRowVersion | BigInteger |
Methods
AddMatchCandidate
Adds or updates a match candidate entry in the temporary buffer for ranking and evaluation. Creates new buffer entries for potential matches or updates existing entries with improved quality scores. Used during the matching process to accumulate and rank all possible match candidates.
procedure AddMatchCandidate(LineNo: Integer; EntryNo: Integer; NewQuality: Integer; AccountType: Enum "Gen. Journal Account Type"; AccountNo: Code[20])
Parameters
| Name | Type | Description |
|---|---|---|
| LineNo | Integer |
Bank statement line number being matched. |
| EntryNo | Integer |
Ledger entry number of the potential match candidate. |
| NewQuality | Integer |
Quality score for this match candidate based on matching algorithms. |
| AccountType | Enum Microsoft.Finance.GeneralLedger.Journal."Gen. Journal Account Type" |
Type of account for the match candidate (Customer, Vendor, Bank Account, etc.). |
| AccountNo | Code[20] |
Account number of the match candidate. |
InsertOrUpdateOneToManyRule
Inserts or updates a one-to-many matching rule for scenarios where multiple ledger entries match a single statement line. Manages complex matching relationships by aggregating multiple entries under a common account and calculating collective remaining amounts and quality scores for the one-to-many matching evaluation.
procedure InsertOrUpdateOneToManyRule(TempLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; LineNo: Integer; RelatedPartyMatched: Option; AccountType: Enum "Gen. Journal Account Type"; RemainingAmount: Decimal)
Parameters
| Name | Type | Description |
|---|---|---|
| TempLedgerEntryMatchingBuffer | Table Microsoft.Bank.Reconciliation."Ledger Entry Matching Buffer" |
Source ledger entry data for the one-to-many relationship. |
| LineNo | Integer |
Bank statement line number participating in the one-to-many match. |
| RelatedPartyMatched | Option |
Status of related party matching for this relationship. |
| AccountType | Enum Microsoft.Finance.GeneralLedger.Journal."Gen. Journal Account Type" |
Type of account involved in the one-to-many relationship. |
| RemainingAmount | Decimal |
Remaining amount contribution from this entry to the total match amount. |
Events
OnAddMatchCandidateOnAfterAssignBankStatementMatchingBufferValues
[IntegrationEvent(False,False)]
local procedure OnAddMatchCandidateOnAfterAssignBankStatementMatchingBufferValues(var BankStatementMatchingBuffer: Record "Bank Statement Matching Buffer"; var BankStatementMatchingBuffer2: Record "Bank Statement Matching Buffer")
Parameters
| Name | Type | Description |
|---|---|---|
| BankStatementMatchingBuffer | Table Microsoft.Bank.Reconciliation."Bank Statement Matching Buffer" | |
| BankStatementMatchingBuffer2 | Table Microsoft.Bank.Reconciliation."Bank Statement Matching Buffer" |
OnInsertOrUpdateOneToManyRuleOnBeforeInsert
[IntegrationEvent(False,False)]
local procedure OnInsertOrUpdateOneToManyRuleOnBeforeInsert(var BankStatementMatchingBuffer: Record "Bank Statement Matching Buffer"; TempLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary)
Parameters
| Name | Type | Description |
|---|---|---|
| BankStatementMatchingBuffer | Table Microsoft.Bank.Reconciliation."Bank Statement Matching Buffer" | |
| TempLedgerEntryMatchingBuffer | Table Microsoft.Bank.Reconciliation."Ledger Entry Matching Buffer" |