Skip to content

[NL][Codeunit][11000006][CBGStatementReconciliation][SplitAccountNumber] Add integration event OnBeforeSplitAccountNumber #30155

@KateDovgalova

Description

@KateDovgalova

Why do you need this change?

In 4PS Construct we need to build list of possible invoice number matching from payment description of 'Description and Sundries' type CBG Statement Line. We also need to skip the standard SplitAccountNumber logic which only extracts bank account numbers and discards anything that doesn't validate as one.

There are no other standard events which can be used for this purpose.

IsHandled parameter is needed because the base logic gate (CheckBankAccNo) would discard text that doesn't look like a bank account number — which is exactly the payment reference / invoice number text the subscriber needs. The two purposes (bank account lookup vs. document string accumulation) are mutually exclusive; allowing both to run would corrupt both.

Procedure SplitAccountNumber fires once per "Description and Sundries" CBGStatementLineAddInfo record — typically several times per statement line during batch reconciliation. The handler is pure in-memory string concatenation, no DB access. Negligible performance impact.

strBuf contains payment description text (partial IBANs, payment references, invoice numbers) already stored in CBG Statement Line Add. Info. and is passed by value — subscribers cannot modify the source. No broader exposure than existing table access.

The risk of future subscriber also appending to OnBeforeSplitAccountNumber with the same raw text and causing duplicate content is detectable at code review.

Describe the request

Dear ALAppExtensions team,

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

    procedure SplitAccountNumber(strBuf: Text[250])
    var
        AccNo: Text[30];
        IsHandled: Boolean; //new
    begin
        OnBeforeSplitAccountNumber(strBuf, IsHandled); //new
        if not IsHandled then //new
            if LocalFunctionalityMgt.CheckBankAccNo(CopyStr(strBuf, 1, 30), '', AccNo) then
                AddPossibleBankAccount(AccNo);
    end;
    [IntegrationEvent(false, false)]
    local procedure OnBeforeSplitAccountNumber(strBuf: Text[250]; var IsHandled: Boolean)
    begin
        //new
    end;

Metadata

Metadata

Assignees

No one assigned

    Labels

    missing-infoThe issue misses information that prevents it from completion.

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions