bcquality/microsoft/knowledge/events/publish-thin-onbefore-onafter-integration-events.good.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

44 lines
1.3 KiB
AL

// Demonstration-only AL. Not compiled by CI; illustrates the article.
table 50224 "Reservation Entry Sample"
{
fields
{
field(1; "Entry No."; Integer) { }
field(2; "Item No."; Code[20]) { }
field(3; Quantity; Decimal) { }
field(4; Reserved; Boolean) { }
}
keys
{
key(PK; "Entry No.") { Clustered = true; }
}
}
codeunit 50225 "Reservation Post Good Sample"
{
procedure Reserve(var ReservationEntry: Record "Reservation Entry Sample")
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeReserve(ReservationEntry, IsHandled);
if not IsHandled then begin
ReservationEntry.Reserved := true;
ReservationEntry.Modify(true);
end;
// OnAfter reports completion whether a subscriber or the base body handled it.
OnAfterReserve(ReservationEntry);
end;
// Thin publishers: empty bodies, the calling routine owns the logic.
[IntegrationEvent(false, false)]
local procedure OnBeforeReserve(var ReservationEntry: Record "Reservation Entry Sample"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterReserve(var ReservationEntry: Record "Reservation Entry Sample")
begin
end;
}