Add P0 event and interface compatibility knowledge (#98)

* Add P0 extensibility compatibility knowledge

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

Copilot-Session: 645349fd-1892-48f3-8a84-db77d6abd1c3

* Correct event compatibility guidance

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

Copilot-Session: 645349fd-1892-48f3-8a84-db77d6abd1c3

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
This commit is contained in:
Jesper Schulz-Wedde 2026-07-14 12:51:59 +02:00 committed by GitHub
parent 078b869e33
commit 363f08f47e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 331 additions and 32 deletions

View file

@ -1,4 +1,4 @@
// Demonstration-only AL. Not compiled by CI; illustrates the article.
// Demonstration-only AL. Version 1 had SalesHeader and IsHandled parameters.
codeunit 50250 "Param Append Good Sample"
{
procedure PostDocument(var SalesHeader: Record "Sales Header"; CalledFromBatch: Boolean)
@ -6,15 +6,24 @@ codeunit 50250 "Param Append Good Sample"
IsHandled: Boolean;
begin
IsHandled := false;
// The new 'CalledFromBatch' parameter was appended at the end of the
// existing signature, so existing subscribers needed no re-mapping.
OnBeforePostDocument(SalesHeader, IsHandled, CalledFromBatch);
// Subscribers bind by name, so the new parameter can sit between the
// existing parameters without breaking subscribers that omit it.
OnBeforePostDocument(SalesHeader, CalledFromBatch, IsHandled);
if IsHandled then
exit;
end;
[IntegrationEvent(false, false)]
local procedure OnBeforePostDocument(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean; CalledFromBatch: Boolean)
local procedure OnBeforePostDocument(var SalesHeader: Record "Sales Header"; CalledFromBatch: Boolean; var IsHandled: Boolean)
begin
end;
}
codeunit 50252 "Existing Param Subscriber"
{
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Param Append Good Sample", 'OnBeforePostDocument', '', false, false)]
local procedure OnBeforePostDocument(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
begin
IsHandled := SalesHeader."No." = '';
end;
}