Codeunit 1890 "Reminder Communication"
Base Application · Microsoft.Sales.Reminder
Across versions
- BC23not present
- BC24added
- BC252 procedures added, 1 events added
- BC26unchanged
- BC272 procedures added, 1 procedures removed
- BC282 events added
- BC295 procedures removed, 2 procedures added
- BC30unchanged
Neighbourhood 12 connected objects and pages
Base Application · Microsoft.Sales.Reminder · BC24-30 · source at ea08af5e · facts from BC29
Events published
OnBeforeExitReportIDOnReplaceHTMLText(ReportID: Integer; var RecordVariant: Variant; var ReportIDExit: Boolean)+ BC25 (integration)OnAfterSubstituteRelatedValues(var BodyTxt: Text; var IssuedReminderHeader: Record "Issued Reminder Header")+ BC27 (integration)OnTransferReminderTextOnBeforeInsertBeginningReminderAttachmentTextLine(var ReminderText: Record "Reminder Text"; var ReminderAttachmentTextLine: Record "Reminder Attachment Text Line")+ BC28 (integration)OnTransferReminderTextOnBeforeInsertEndingReminderAttachmentTextLine(var ReminderText: Record "Reminder Text"; var ReminderAttachmentTextLine: Record "Reminder Attachment Text Line")+ BC28 (integration)
Event subscriptions
- OnReplaceHTMLText subscribes to Table “Report Selections” OnAfterDoSaveReportAsHTMLInTempBlob
- OnBeforeGetEmailSubject subscribes to Codeunit “Document-Mailing” OnBeforeGetEmailSubject
- GetFilename subscribes to Codeunit “ReportManagement” OnGetFilename
- OnBeforeGetAttachmentFileName subscribes to Codeunit “Document-Mailing” OnBeforeGetAttachmentFileName
Procedures
FindDescriptionForLineFee(var ReminderLevel: Record "Reminder Level"; var CustLedgerEntry: Record "Cust. Ledger Entry"; var ReminderLine: Record "Reminder Line"; var GLAccount: Record "G/L Account"): Text[100]InsertBeginningText(var ReminderHeader: Record "Reminder Header"; var ReminderLevel: Record "Reminder Level"; var ReminderLine: Record "Reminder Line"): Inserts the beginning text lines into a reminder based on the reminder level and language.InsertEndingText(var ReminderHeader: Record "Reminder Header"; var ReminderLevel: Record "Reminder Level"; var ReminderLine: Record "Reminder Line"): Inserts the ending text lines into a reminder based on the reminder level and language.SubstituteInlineFeeDescription(FeeLineDescriptionText: Text[100]; var ReminderLevel: Record "Reminder Level"; var ReminderLine: Record "Reminder Line"): Text[100]: Substitutes placeholders in the inline fee description with actual values from the reminder.SubstituteBeginningOrEndingDescription(SourceDescriptionText: Text[100]; ReminderTotal: Decimal; MaxLength: Integer; var ReminderHeader: Record "Reminder Header"; var FinanceChargeTerms: Record "Finance Charge Terms"): Text[100]: Substitutes placeholders in beginning or ending description text with actual reminder values.GetListOfAttachmentLanguagesFromIdWithSeparator(SelectedGuid: Guid; SeparatorText: Text): Text: Gets a formatted text list of attachment language codes separated by the specified separator.GetListOfEmailLanguagesFromIdWithSeparator(SelectedGuid: Guid; SeparatorText: Text): Text: Gets a formatted text list of email language codes separated by the specified separator.GetListOfAttachmentLanguagesFromId(SelectedGuid: Guid): List of [Code[10]]: Gets a list of all language codes that have attachment text defined for the specified ID.GetListOfEmailLanguagesFromId(SelectedGuid: Guid): List of [Code[10]]: Gets a list of all language codes that have email text defined for the specified ID.SetDefaultContentForNewLanguage(SelectedId: Guid; LanguageCode: Code[10]; SourceType: Enum "Reminder Text Source Type"; SelectedSystemId: Guid): Creates default attachment and email text records for a new language.ExtractAttachmentAndEmailLanguages(var ReminderTerms: Record "Reminder Terms"): Text: Extracts and formats the available attachment and email languages for the reminder terms.ExtractAttachmentAndEmailLanguages(var ReminderLevel: Record "Reminder Level"): Text: Extracts and formats the available attachment and email languages for the reminder level.ExtractAttachmentAndEmailLanguages(SelectedId: Guid): Text: Extracts and formats the available attachment and email languages for the specified ID.PopulateEmailText(var IssuedReminderHeader: Record "Issued Reminder Header"; var CompanyInfo: Record "Company Information"; var GreetingTxt: Text; var AmtDueTxt: Text; var BodyTxt: Text; var ClosingTxt: Text; var DescriptionTxt: Text; NNC_TotalInclVAT: Decimal): Populates the email text components for an issued reminder based on language and template settings.CheckMissMatchBetweenLanguages(var ReminderTerms: Record "Reminder Terms"): Boolean(internal)TransferReminderText()(internal)TransferReminderTermsTranslations()(internal)TransferReminderTermsLineFeeDescription()(internal)TransferReminderLevelLineFeeDescription()(internal)
Plus 15 local procedures.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 10 “Type Helper” (7 calls:
OnReplaceHTMLText → LFSeparator,OnReplaceHTMLText → TryReadAsTextWithSeparator,SelectEmailBodyText → LFSeparator, …) - Codeunit 43 “Language” (6 calls:
GetCustomerLanguageOrDefaultUserLanguage → GetDefaultApplicationLanguageId,GetCustomerLanguageOrDefaultUserLanguage → GetLanguageCode,GetCustomerLanguageOrDefaultUserLanguage → GetUserLanguageCode, …) - Codeunit 4100 “Temp Blob” (2 calls:
OnReplaceHTMLText → CreateInStream,OnReplaceHTMLText → CreateOutStream) - Codeunit 45 “Auto Format” (2 calls:
SubstituteBeginningOrEndingDescription → ResolveAutoFormat,SubstituteRelatedValues → ResolveAutoFormat) - Codeunit 3960 “Regex” (1 call:
StripHtmlTags → Replace) - Codeunit 452 “Report Distribution Management” (1 call:
OnBeforeGetEmailSubject → GetIssuedReminderDocTypeTxt) - Codeunit 9520 “Mail Management” (1 call:
PopulateEmailText → IsHandlingGetEmailBody)
Called by
- Page 838 “Reminder Terms Setup” (2 calls:
OnAfterGetRecord → ExtractAttachmentAndEmailLanguages,OnQueryClosePage → CheckMissMatchBetweenLanguages) - Table 295 “Reminder Header” (2 calls:
InsertBeginTexts → InsertBeginningText,InsertEndTexts → InsertEndingText) - Page 1896 “Reminder Level Setup” (1 call:
OnAfterGetRecord → ExtractAttachmentAndEmailLanguages) - Page 1897 “Reminder Term Communication” (1 call:
SelectLanguageForSubpages → GetListOfAttachmentLanguagesFromIdWithSeparator) - Page 835 “Reminder Level Communication” (1 call:
SelectLanguageForSubpages → GetListOfAttachmentLanguagesFromIdWithSeparator)
Recent changes
- 2026-09-10 #11209 [29.x]-“The record in table Reminder Line already exists.” error appears if you Create Reminders for a Customer with all the Open Entries On Hold and no Reminder Free applied on the Reminder Terms used. (releases/29.x, BC29, fix)
- 2026-09-08 #11158 [Master]-“The record in table Reminder Line already exists.” error appears if you Create Reminders for a Customer with all the Open Entries On Hold and no Reminder Free applied on the Reminder Terms used (main, BC30, fix)
- 2026-08-31 #10504 [Reminders] Complete the communication texts model uptake (main, BC30, feature)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Reminder Communication"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.