bcquality/microsoft/knowledge/events/do-not-add-ishandled-to-an-existing-event.bad.al
Jesper Schulz-Wedde 5706959e4a
Fix lifecycle compatibility guidance (#93)
* Fix lifecycle compatibility guidance

Correct high-confidence Business Central guidance and samples for upgrade tags, collectible errors, trigger semantics, obsoletion, events, interfaces, API contracts, and test transactions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e05a43e7-6448-4d67-9c73-798523f5d945

* Address guidance review findings

Gate SecretText guidance to BC23 and clarify that the collectible-error sample intentionally emits a message-only blocking aggregate.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e05a43e7-6448-4d67-9c73-798523f5d945

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
2026-07-14 11:26:16 +02:00

21 lines
763 B
AL

// Demonstration-only AL. Not compiled by CI; illustrates the article.
codeunit 50291 "New OnBefore Bad Sample"
{
procedure CalculateTotal(var SalesHeader: Record "Sales Header")
var
Total: Decimal;
IsHandled: Boolean;
begin
Total := 100;
// Anti-pattern: IsHandled was bolted onto the existing OnAfter event.
// Regardless of compiler compatibility, this changes a notification
// into an override contract that existing subscribers did not expect.
OnAfterCalculateTotal(SalesHeader, Total, IsHandled);
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCalculateTotal(var SalesHeader: Record "Sales Header"; Total: Decimal; var IsHandled: Boolean)
begin
end;
}