- notification-recall-needs-known-id: the defect is a Recall() whose Id
cannot be the sent one (fresh local Notification, new CreateGuid at
recall time) while neither the sent instance nor its Id is kept. A
retained global instance (CreateGuid once in OnOpenPage, or Id left for
Send to assign), a generated Id saved after Send and reassigned before
Recall, and correctly tracked per-record Ids are explicitly not findings.
Findings require evidence that the recalled identity differs from or
cannot recover the sent identity. Notification Lifecycle Mgt. is
recommended for per-record tracking, not mandatory. Cites VAT Bus. Post.
Grp. Part, Certificate, and Data Search Lines, and the lifecycle
helper's Send-then-read-Id sequence.
- good sample: adds a page with a retained global Notification (CreateGuid
in OnOpenPage, Send in an action, Recall in a later action and
OnClosePage) and a pageextension that saves the Send-assigned Id and
recalls it from a later action. Bad sample comments name the lost
identity.
- al-ui-review: notification cue requires that evidence and lists the
retained-instance, saved-Id, and direct per-record tracking controls as
exclusions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- notification-recall-needs-known-id: a fixed Id shared across records is
valid for one-at-a-time warnings (Sales Line blocked-item, Over-Receipt
Mgt. pass a fixed Id to SendNotification after Recall); the per-record
anti-pattern now requires several records' notifications to be visible
at once. Recall wording follows Learn (including its false-return
reasons) and cites Base App's recall-before-send practice.
- list-page-document-routing-uses-page-management: definition covers
opening a routed table directly or after Get; cite archive line lists,
Copy Document Mgt. ShowSalesDoc/ShowPurchDoc and Office handler; no
"document types added later" overclaim (GetSalesHeaderPageID has no
else for the extensible enum); full GetPageID resolution order; drop
the IRS single-page subscriber.
- al-ui-review: non-page files admitted by the notification clause are
checked only against notification knowledge; description updated;
drop the "Document Type" token; case-insensitive token matching; cues
aligned with both articles.
- Pin BCApps links to 837ef802485ee457e52310d2ecaa08b93d0122fd.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two ui articles with compiled good/bad samples:
- notification-recall-needs-known-id: a notification that the code also
recalls needs a fixed Id (single instance; recall before re-send) or
per-record tracking through codeunit "Notification Lifecycle Mgt."
(SendNotification[WithAdditionalContext] / RecallNotificationsForRecord,
HandleDelayedInsert semantics). Never-recalled notifications are exempt.
- list-page-document-routing-uses-page-management: open documents from a
mixed-type list with PageManagement.PageRun(Rec) instead of a hand-written
case "Document Type" / Page.Run; register new tables through
OnConditionalCardPageIDNotFound. Single-type opens and tables Page
Management does not route are exempt.
Wired into al-ui-review (entry gate now covers notification send/recall
outside pages, tokens, high-signal mappings) and registered both pairs in
the ui review-fixtures override.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>