Codeunit 7250 "Bank Rec. AI Matching Impl."
BankAccRecWithAI · Microsoft.Bank.Reconciliation
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 15 connected objects and pages
BankAccRecWithAI · Microsoft.Bank.Reconciliation · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
Event subscriptions
- HandleOnFindBestMatches subscribes to Codeunit “Match Bank Rec. Lines” OnFindBestMatches
- HandleOnRegisterCopilotCapability subscribes to Page “Copilot AI Capabilities” OnRegisterCopilotCapability
- RegisterPerCompanyTags subscribes to Codeunit “Upgrade Tag” OnGetPerCompanyUpgradeTags
Procedures
BuildBankRecCompletionTask(IncludeFewShotExample: Boolean): SecretTextAddCompletionPromptLine(Completion: SecretText; NewPromptLine: Text): SecretText(internal)BuildBankRecCompletionPrompt(TaskPrompt: SecretText; StatementLines: Text; LedgerLines: Text): SecretTextBuildBankRecCompletionPromptUserMessage(StatementLines: Text; LedgerLines: Text): SecretTextBuildBankRecLedgerEntries(var LedgerLines: Text; var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; var CandidateLedgerEntryNos: List of [Integer]): TextBuildBankRecStatementLines(var StatementLines: Text; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"): TextRemoveShortWords(Text: Text[250]): Text[250]ComputeStringNearness(String1: Text[250]; String2: Text[250]): DecimalPromptSizeThreshold(): IntegerLedgerEntryInputThreshold(): IntegerMaxTokens(): IntegerGetAzureKeyVaultSecret(var SecretValue: SecretText; SecretName: Text): Boolean(internal)BuildLedgerEntriesFilter(TopLedgerEntries: array[5] of Record "Ledger Entry Matching Buffer"; TopSimilarityScore: array[5] of Decimal): TextCreateCompletionAndMatch(CompletionTaskTxt: SecretText; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; DaysTolerance: Integer): IntegerCreateCompletionAndMatch(CompletionTaskTxt: SecretText; UserMessageTxt: SecretText; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; DaysTolerance: Integer): IntegerProcessCompletionAnswer(var CompletionAnswerTxt: Text; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; var NumberOfFoundMatches: Integer)GenerateMatchProposals(var TempBankAccRecAIProposal: Record "Bank Acc. Rec. AI Proposal" temporary; var BankAccReconciliationLine: Record "Bank Acc. Reconciliation Line"; var TempBankAccLedgerEntryMatchingBuffer: Record "Ledger Entry Matching Buffer" temporary; var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary; DaysTolerance: Integer)HasReservedWords(Input: Text): BooleanApplyToProposedLedgerEntries(var TempBankAccRecAIProposal: Record "Bank Acc. Rec. AI Proposal" temporary; var TempBankStatementMatchingBuffer: Record "Bank Statement Matching Buffer" temporary): IntegerFeatureName(): TextRegisterCapability()FoundInputWithReservedWords(): Boolean
Plus 4 local procedures.
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 7773 “Copilot Capability” (3 calls:
RegisterCapability → IsCapabilityRegistered,RegisterCapability → ModifyCapability,RegisterCapability → RegisterCapability) - Codeunit 1252 “Match Bank Rec. Lines” (2 calls:
ApplyToProposedLedgerEntries → SaveManyToOneMatching,ApplyToProposedLedgerEntries → SaveOneToOneMatching) - Codeunit 7759 “AOAI Token” (2 calls:
FindDateFilterOnLedgerEntryBuffer → GetGPT4TokenCount,GenerateMatchProposals → GetGPT4TokenCount) - Codeunit 8703 “Feature Telemetry” (2 calls:
GenerateMatchProposals → LogUptake,GenerateMatchProposals → LogUsage) - Codeunit 9999 “Upgrade Tag” (2 calls:
RegisterCapability → HasUpgradeTag,RegisterCapability → SetUpgradeTag) - Codeunit 1251 “Record Match Mgt.” (1 call:
ComputeStringNearness → CalculateStringNearness) - Codeunit 2200 “Azure Key Vault” (1 call:
GetAzureKeyVaultSecret → GetAzureKeyVaultSecret) - Codeunit 457 “Environment Information” (1 call:
RegisterCapability → IsSaaSInfrastructure)
Called by
- Page 7250 “Bank Acc. Rec. AI Proposal” (9 calls:
ApplyToProposedLedgerEntries → ApplyToProposedLedgerEntries,ApplyToProposedLedgerEntries → FeatureName,AutoMatchWithCopilot → FeatureName, …) - Codeunit 7251 “Bank Acc. Rec. Trans. to Acc.” (7 calls:
BuildBankRecStatementLines → HasReservedWords,BuildGLAccounts → HasReservedWords,BuildMostAppropriateGLAccountPromptTask → AddCompletionPromptLine, …) - Page 7252 “Trans. To GL Acc. AI Proposal” (3 calls:
GenerateTransferToGLAccountProposals → FeatureName,OnQueryClosePage → FeatureName,PostNewPaymentsToProposedGLAccounts → FeatureName) - Page 7251 “Bank Acc. Rec. AI Proposal Sub” (2 calls:
OpenProposedRecord → FeatureName,SaveToTextToAccountMapping → FeatureName) - Codeunit 7252 “Bank Acc. Rec. AI Install” (1 call:
OnInstallAppPerDatabase → RegisterCapability) - Page extension 7253 “BankAccReconciliationExt” (1 call:
OnOpenPage → RegisterCapability) - Page extension 7254 “BankAccReconciliationListExt” (1 call:
OnOpenPage → RegisterCapability)
Recent changes
- 2026-08-11 #10090 [Bank Acc. Reconciliation with Copilot] Read the functional part of the prompt from .resources and safety clause from Key Vault (main, BC30, refactor)
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: "Bank Rec. AI Matching Impl."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.