From 833a002095960506ed4cb4919c2e4a20ed14dd1b Mon Sep 17 00:00:00 2001 From: Michael Dieringer <65093775+MichaelDieringer@users.noreply.github.com> Date: Tue, 29 Sep 2026 17:53:13 +0200 Subject: [PATCH] Clarify TrySendToEMail comment in print/email good sample Make explicit that TrySendToEMail is also correct *because* it never reads the customer's assigned profile (local record, E-Mail option set by the helper itself), and name Get/GetDefaultForCustomer + Send as the anti-pattern. Matches the article's Best Practice and BaseApp's own Sales Invoice Header.EmailRecords. Co-Authored-By: Claude Opus 5.5 --- ...-email-actions-call-report-selections-directly.good.al | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/microsoft/knowledge/data-modeling/document-print-and-email-actions-call-report-selections-directly.good.al b/microsoft/knowledge/data-modeling/document-print-and-email-actions-call-report-selections-directly.good.al index 737e09b..c68724b 100644 --- a/microsoft/knowledge/data-modeling/document-print-and-email-actions-call-report-selections-directly.good.al +++ b/microsoft/knowledge/data-modeling/document-print-and-email-actions-call-report-selections-directly.good.al @@ -25,8 +25,12 @@ page 50101 "Sample Posted Invoice Card" // depends only on this customer's registered report/layout, // not on any Document Sending Profile setting. Calling // DocumentSendingProfile.TrySendToEMail(...) instead would - // be equally correct: it never Get's the customer's - // actually assigned profile, only a local, hardcoded one. + // also be correct, because it never reads the customer's + // assigned profile: it only uses a local record that it + // never retrieves with Get, and sets its "E-Mail" option + // itself. The + // anti-pattern is Get/GetDefaultForCustomer followed by + // Send, which makes the outcome depend on that profile. // "S.Invoice" resolves to a report on "Sales Invoice // Header", which is the record passed here. SalesInvoiceHeader := Rec;