Skip to content

[NL][Codeunit][11000006][CBGStatementReconciliation][AddPossibleBankAccount] Add integration event OnBeforeAddPossibleBankAccount #30160

@KateDovgalova

Description

@KateDovgalova

Why do you need this change?

In 4PS Construct we need to redirect bank account collection from the standard codeunit's TempBankAccount into the custom (SingleInstance) codeunit's own parallel TempBankAccount. This is necessary because the subscriber codeunit owns the authoritative reconciliation state and its UpdateAccount must find data in its own temp table, not the base codeunit's.

There are no alternative events which fit the purpose.

IsHandled flag is needed to skip creating record TempBankAccount and avoid processing back account twice in procedure UpdateAccount (custom codeunit executes similar functionality using its own temporary TempBankAccount).

New event fires once per CBGStatementLine that has a CBGStatementLineAddInfo record of type "Account No. Balancing Account" ΓÇö typically 0ΓÇô1 time per line in an imported bank statement batch. The event body only performs an in-memory temp table insert, so performance impact is negligible.

Sensitive data exposure: AccountNumber: Text[80] carries an IBAN or bank account number, which is financially sensitive personal data under GDPR. Exposure is necessary because the event's sole purpose is transporting the account number to the subscriber's state store.

Multi-subscriber risk cannot be solved at the publisher level in AL and requires documentation and code review discipline.

Describe the request

Dear ALAppExtensions team,

On behalf of 4PS I would like to request integration event 'OnBeforeAddPossibleBankAccount' to be added to procedure AddPossibleBankAccount of codeunit 11000006 "CBG Statement Reconciliation".

    local procedure AddPossibleBankAccount(AccountNumber: Text[80])
    var
        IsHandled: Boolean; //new
    begin
        OnBeforeAddPossibleBankAccount(AccountNumber, IsHandled); //new
        if IsHandled then //new
            exit; //new
        TempBankAccount.Init();
        TempBankAccount.Validate(TempBankAccount."No.", Format(TempBankAccount.Count + 1));
        TempBankAccount.IBAN := LocalFunctionalityMgt.CharacterFilter(AccountNumber, BankAccountCharsToKeep);
        TempBankAccount.Insert();
    end;
    [IntegrationEvent(false, false)]
    local procedure OnBeforeAddPossibleBankAccount(AccountNumber: Text[80]; var IsHandled: Boolean)
    begin
        //new
    end;

Internal work item: AB#636780

Metadata

Metadata

Assignees

No one assigned

    Labels

    FinanceGitHub request for Finance areaevent-requestRequest for adding an event

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions