bcquality/microsoft/knowledge/error-handling/declined-confirm-must-abort-not-partially-apply.good.al
Michael Dieringer a0d23a982c Add trigger-default and declined-Confirm knowledge with review cues
Three Microsoft-layer articles with good/bad samples:
- error-handling/declined-confirm-must-abort-not-partially-apply
- data-modeling/delete-master-data-with-trigger
- data-modeling/master-data-must-be-inserted-with-trigger

Wire targeted worklist cues into al-error-handling-review and
al-data-modeling-review and register the samples in review-fixtures.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 00:03:59 +02:00

47 lines
1.4 KiB
AL

table 50100 "Sample Mailbox Watch"
{
fields
{
field(1; "Code"; Code[20])
{
}
field(2; "Watched Email"; Text[250])
{
trigger OnValidate()
var
ReplaceWatchQst: Label 'Email %1 is being watched. Stop watching it and watch %2 instead?', Comment = '%1 = previous email address, %2 = new email address';
begin
if (xRec."Watched Email" <> '') and (xRec."Watched Email" <> "Watched Email") then begin
// Declining cancels the whole change: the field keeps its old value.
if not Confirm(ReplaceWatchQst, false, xRec."Watched Email", "Watched Email") then
Error('');
Unsubscribe("Subscription ID");
end;
"Subscription ID" := Subscribe("Watched Email");
end;
}
field(3; "Subscription ID"; Guid)
{
Editable = false;
}
}
keys
{
key(PK; "Code")
{
Clustered = true;
}
}
local procedure Subscribe(EmailAddress: Text[250]): Guid
begin
// Registers EmailAddress with the external watch service and returns its subscription.
exit(CreateGuid());
end;
local procedure Unsubscribe(SubscriptionId: Guid)
begin
// Removes the subscription from the external watch service.
end;
}