---
id: object/table/77
type: object
title: Table 77 "Report Selections"
summary: Table 77 "Report Selections" in Base Application (Microsoft.Foundation.Reporting). 18 fields, 70 public procedures, 93 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 298fab14298d4a2f64085fc0a53a1faafc3e81a2055bf4558668e317f680aa25
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al
    title: src/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/across-report-selections
    - https://learn.microsoft.com/dynamics365/business-central/payables-manage-payables
    - https://learn.microsoft.com/dynamics365/business-central/payables-reports
    - https://learn.microsoft.com/dynamics365/business-central/production-about-production-orders
  objects: []
  features: []
  topics:
    - topic/business-central/analytics-business-intelligence-and-repo/built-in-reports/finance
    - topic/business-central/business-functionality/finance/financial-analytics/built-in-finance-reports
    - topic/business-central/business-functionality/finance/manage-payables
    - topic/business-central/business-functionality/manufacturing
    - topic/business-central/business-functionality/set-up-business-central
  localizations:
    - localization/ru
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 77
name: Report Selections
namespace: Microsoft.Foundation.Reporting
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries:
  - ru
ms_search_form_ids: []
counts:
  fields: 18
  procedures: 200
  events: 93
  subscribers: 0
relations:
  out: 4
  referenced_by: 0
  pages: 10
  extended_by: 0
  event_subscribers: 7
  calls: 15
  called_by: 0
  implements: 0
---

# Table 77 "Report Selections"

> Table 77 "Report Selections" in Base Application (Microsoft.Foundation.Reporting). 18 fields, 70 public procedures, 93 events. Present since at least BC23, still in BC30, changed in BC24-28.

Base Application · Microsoft.Foundation.Reporting · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 347 "Report Selection - Purchase"](../page/347.md) (3 Learn pages), [Page 99000917 "Report Selection - Prod. Order"](../page/99000917.md) (2), [Page 306 "Report Selection - Sales"](../page/306.md) (1), [Page 307 "Report Selection - Job"](../page/307.md) (1), [Page 385 "Report Selection - Bank Acc."](../page/385.md) (1), [Page 524 "Report Selection - Reminder"](../page/524.md) (1), [Page 5932 "Report Selection - Service"](../page/5932.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Report Selections |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Usage | Enum "Report Selection Usage" | — | enum [Enum 77 "Report Selection Usage"](../enum/77.md) |
| 2 | Sequence | Code[10] | Specifies a number that indicates where this report is in the printing order. |  |
| 3 | Report ID | Integer | Specifies the object ID of the report. | TableRelation AllObjWithCaption."Object ID" where("Object Type" = const(Report)) |
| 4 | Report Caption | Text[250] | Specifies the display name of the report. | FlowField: lookup("Report Metadata".Caption where(ID = field("Report ID"))); not editable |
| 7 | Custom Report Layout Code | Code[20] | — | TableRelation [Table 9650 "Custom Report Layout"](../table/9650.md) ("Custom Report Layout".Code where(Code = field("Custom Report Layout Code"), "Built-In" = const(false))); not editable |
| 19 | Use for Email Attachment | Boolean | Specifies that the related document will be attached to the email. |  |
| 20 | Use for Email Body | Boolean | Specifies that summarized information, such as invoice number, due date, and payment service link, will be inserted in the body of the email that you send. |  |
| 21 | Email Body Layout Code | Code[20] | Specifies the ID of the custom email body layout that is used. | TableRelation [Table 2114 "O365 HTML Template"](../table/2114.md), [Table 9650 "Custom Report Layout"](../table/9650.md) (if ("Email Body Layout Type" = const("Custom Report Layout")) "Custom Report Layout".Code where(Code = field("Email Body Layout Code"), "Report ID" = field("Report ID"), "Built-In" = const(false)) else if ("Email Body Layout Type" = const("HTML Layout")) "O365 HTML Template".Code) |
| 22 | Email Body Layout Description | Text[250] | Specifies a description of the custom email body layout that is used. | FlowField: lookup("Custom Report Layout".Description where(Code = field("Email Body Layout Code"))); not editable |
| 25 | Email Body Layout Type | Enum "Email Body Layout Type" | — | enum [Enum 87 "Email Body Layout Type"](../enum/87.md) |
| 26 | Email Body Layout Name | Text[250] | Specifies the name of the email body layout that is used. | TableRelation "Report Layout List".Name where("Report ID" = field("Report ID")) |
| 27 | Email Body Layout AppID | Guid | — | TableRelation "Report Layout List"."Application ID" where("Report ID" = field("Report ID")) |
| 28 | Email Body Layout Publisher | Text[250] | Specifies the publisher of the email body layout that is used. | FlowField: lookup("Report Layout List"."Layout Publisher" where("Report ID" = field("Report ID"), Name = field("Email Body Layout Name"))); not editable |
| 29 | Email Body Layout Caption | Text[250] | Specifies the email body layout that is used. <small>via [Page 306 "Report Selection - Sales"](../page/306.md)</small> | FlowField: lookup("Report Layout List".Caption where("Report ID" = field("Report ID"), Name = field("Email Body Layout Name"))) |
| 30 | Report Layout Name | Text[250] | Specifies the name of the report layout that is used. | TableRelation "Report Layout List".Name where("Report ID" = field("Report ID")) |
| 31 | Report Layout AppID | Guid | Report Layout App ID <small>caption</small> | not editable |
| 32 | Report Layout Caption | Text[250] | Specifies the name of the report layout that is used. | FlowField: lookup("Report Layout List".Caption where("Report ID" = field("Report ID"), Name = field("Report Layout Name"))) |
| 33 | Report Layout Publisher | Text[250] | Specifies the publisher of the report layout that is used. | FlowField: lookup("Report Layout List"."Layout Publisher" where("Report ID" = field("Report ID"), "Application ID" = field("Report Layout AppID"))); not editable |

## Keys

- Key1: Usage, Sequence (clustered)

## Events published

- `OnAfterGetCustomReportSelectionForTable(var CustomReportSelection: Record "Custom Report Selection"; TableNo: Integer)` (integration)
- `OnAfterGetCustomReportSelection(var CustomReportSelection: Record "Custom Report Selection"; AccountNo: Code[20]; TableNo: Integer)` (integration)
- `OnAfterSetEmailBodyUsageFilters(var ReportSelections: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage")` (integration)
- `OnAfterSetEmailAttachmentUsageFilters(var ReportSelections: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage")` (integration)
- `OnAfterSetEmailUsageFilters(var ReportSelections: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage")` (integration)
- `OnAfterSaveReportAsPDF(ReportID: Integer; RecordVariant: Variant; LayoutCode: Code[20]; FilePath: Text[250]; SaveToBlob: Boolean; var TempBlob: Codeunit "Temp Blob"; var ReportSelections: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage")` (integration)
- `OnAfterCanSaveReportAsPDF(ReportId: Integer; var Result: Boolean)` (integration)
- `OnBeforeCheckEmailBodyUsage(var ReportSelections: Record "Report Selections"; var IsHandled: Boolean)` (integration)
- `OnBeforeDoSaveReportAsHTML(ReportID: Integer; var FilePath: Text[250]; var RecordVariant: Variant; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnBeforeDoSaveReportAsHTMLInTempBlob(ReportID: Integer; var TemBlob: Codeunit "Temp Blob"; var RecordVariant: Variant; var IsHandled: Boolean)` (integration)
- `OnBeforeGetCustEmailAddress(BillToCustomerNo: Code[20]; var ToAddress: Text; ReportUsage: Option; var IsHandled: Boolean)` (integration)
- `OnBeforeGetHtmlReport(var DocumentContent: Text; ReportUsage: Integer; RecordVariant: Variant; CustNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetVendorEmailAddress(BuyFromVendorNo: Code[20]; var ToAddress: Text; ReportUsage: Option; var IsHandled: Boolean; RecVar: Variant)` (integration)
- `OnBeforeGetEmailAddress(ReportUsage: Option; RecordVariant: Variant; var TempBodyReportSelections: Record "Report Selections" temporary; var EmailAddress: Text[250]; var IsHandled: Boolean; CustNo: Code[20])` (integration)
- `OnBeforeGetEmailAddressIgnoringLayout(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; var TempBodyReportSelections: Record "Report Selections" temporary; CustNo: Code[20]; var EmailAddress: Text[250]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetCustomReportSelectionForTable(var ReportSelections: Record "Report Selections"; var CustomReportSelection: Record "Custom Report Selection"; TableNo: Integer; var ReturnValue: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeGetCustomReportSelection(var ReportSelections: Record "Report Selections"; var CustomReportSelection: Record "Custom Report Selection"; AccountNo: Code[20]; TableNo: Integer; var ReturnValue: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforePrint(ReportUsage: Integer; RecordVariant: Variant; CustomerNoFieldNo: Integer; var Handled: Boolean)` (integration)
- `OnBeforePrintForUsage(var ReportUsage: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforePrintWithCheck(ReportUsage: Integer; RecordVariant: Variant; CustomerNoFieldNo: Integer; var Handled: Boolean)` (integration)
- `OnBeforePrintWithCheckForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; VendorNoFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforePrintWithGUIYesNoWithCheck(ReportUsage: Integer; RecordVariant: Variant; IsGUI: Boolean; CustomerNoFieldNo: Integer; var Handled: Boolean)` (integration)
- `OnBeforePrintWithGUIYesNoWithCheckVendor(ReportUsage: Integer; RecordVariant: Variant; IsGUI: Boolean; VendorNoFieldNo: Integer; var Handled: Boolean)` (integration)
- `OnBeforePrintWithGUIYesNo(ReportUsage: Integer; RecordVariant: Variant; IsGUI: Boolean; CustomerNoFieldNo: Integer; var Handled: Boolean)` (integration)
- `OnBeforePrintWithGUIYesNoVendor(ReportUsage: Integer; RecordVariant: Variant; IsGUI: Boolean; VendorNoFieldNo: Integer; var Handled: Boolean)` (integration)
- `OnBeforeSaveReportAsPDF(var ReportID: Integer; RecordVariant: Variant; var LayoutCode: Code[20]; var IsHandled: Boolean; FilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; SaveToBlob: Boolean; var TempBlob: Codeunit "Temp Blob"; var ReportSelections: Record "Report Selections")` (integration)
  - subscribers: [Codeunit 8812 "Customer Statement Subscr"](../codeunit/8812.md) OnBeforeSaveReportAsPDF
- `OnBeforeSetReportLayout(RecordVariant: Variant; ReportUsage: Integer)` (integration)
- `OnBeforeSendEmailToCust(ReportUsage: Integer; RecordVariant: Variant; DocNo: Code[20]; DocName: Text[150]; var ShowDialog: Boolean; CustNo: Code[20]; var Handled: Boolean)` (integration)
- `OnBeforeSendEmailToVendor(ReportUsage: Integer; RecordVariant: Variant; DocNo: Code[20]; DocName: Text[150]; var ShowDialog: Boolean; VendorNo: Code[20]; var Handled: Boolean)` (integration)
- `OnEnqueueMailingJobOnBeforeRunJobQueueEnqueue(RecordIdToProcess: RecordID; ParameterString: Text; Description: Text; var JobQueueEntry: Record "Job Queue Entry"; var IsHandled: Boolean)` (integration)
- `OnFindReportSelectionsForTable(var FilterReportSelections: Record "Report Selections"; var IsHandled: Boolean; var ReturnReportSelections: Record "Report Selections"; TableNo: Integer)` (integration)
- `OnFindReportSelections(var FilterReportSelections: Record "Report Selections"; var IsHandled: Boolean; var ReturnReportSelections: Record "Report Selections"; AccountNo: Code[20]; TableNo: Integer)` (integration)
- `OnBeforeGetEmailBodyCustomer(ReportUsage: Integer; RecordVariant: Variant; var TempBodyReportSelections: Record "Report Selections" temporary; CustNo: Code[20]; var CustEmailAddress: Text[250]; var EmailBodyText: Text; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnAfterGetEmailBodyCustomer(var CustomerEmailAddress: Text[250]; ServerEmailBodyFilePath: Text[250]; RecordVariant: Variant; var Result: Boolean; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnAfterGetEmailBodyCustomerProcedure(var CustomerEmailAddress: Text[250]; var EmailBody: Codeunit "Temp Blob"; RecordVariant: Variant; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeGetEmailBodyVendor(ReportUsage: Integer; RecordVariant: Variant; var TempBodyReportSelections: Record "Report Selections" temporary; VendorNo: Code[20]; var VendorEmailAddress: Text[250]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetPurchaseOrderEmailAddress(BuyFromVendorNo: Code[20]; RecVar: Variant; ReportUsage: Enum "Report Selection Usage"; var OrderAddress: Record "Order Address"; var EmailAddress: Text[250]; var IsHandled: Boolean)` (integration)
- `OnAfterGetEmailBodyVendor(var VendorEmailAddress: Text[250]; ServerEmailBodyFilePath: Text[250]; RecordVariant: Variant; var Result: Boolean; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnAfterGetEmailBodyVendorProcedure(var VendorEmailAddress: Text[250]; var EmailBody: Codeunit "Temp Blob"; RecordVariant: Variant; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterSendEmailDirectly(ReportUsage: Integer; RecordVariant: Variant; var AllEmailsWereSuccessful: Boolean)` (integration)
- `OnAfterPrintDocument(TempReportSelections: Record "Report Selections" temporary; IsGUI: Boolean; RecVarToPrint: Variant; PrintDocumentWasHandled: Boolean)` (integration)
- `OnAfterPrintDocumentsWithCheckGUIYesNoCommon(ReportUsage: Integer; RecVarToPrint: Variant)` (integration)
- `OnBeforeDownloadAttachmentFromStream(var TempReportSelections: Record "Report Selections" temporary; RecordVariant: Variant; var AttachmentInStream: InStream; ClientAttachmentFileName: Text; var IsHandled: Boolean)` (integration)
- `OnBeforeSaveDocumentAttachmentFromRecRef(RecRef: RecordRef; var TempAttachReportSelections: Record "Report Selections"; DocumentNo: Code[20]; AccountNo: Code[20]; var TempBlob: Codeunit "Temp Blob"; var IsHandled: Boolean; var NumberOfReportsAttached: Integer)` (integration)
  - subscribers: [Codeunit 5584 "Dig. Voucher Manual Subscriber"](../codeunit/5584.md) AttachDigitalVoucherOnBeforeSaveDocumentAttachmentFromRecRe
- `OnBeforePrintDocument(TempReportSelections: Record "Report Selections" temporary; IsGUI: Boolean; var RecVarToPrint: Variant; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 385 "Bank Acc.Rec.Test Rep. Visible"](../codeunit/385.md) OnBeforePrintDocumentReportSelections
- `OnBeforeSendEmailDirectly(var ReportSelections: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; var DocNo: Code[20]; var DocName: Text[150]; FoundBody: Boolean; FoundAttachment: Boolean; ServerEmailBodyFilePath: Text[250]; var DefaultEmailAddress: Text[250]; ShowDialog: Boolean; var TempAttachReportSelections: Record "Report Selections" temporary; var CustomReportSelection: Record "Custom Report Selection"; var AllEmailsWereSuccessful: Boolean; var IsHandled: Boolean; var SourceTableIDs: List of [Integer]; var SourceIDs: List of [Guid]; var SourceRelationTypes: List of [Integer])` (integration, obsolete 27.0)
- `OnSendEmailDirectlyOnBeforeSend(var ReportSelections: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; var DocNo: Code[20]; var DocName: Text[150]; FoundBody: Boolean; FoundAttachment: Boolean; var EmailBody: Codeunit "Temp Blob"; var DefaultEmailAddress: Text[250]; ShowDialog: Boolean; var TempAttachReportSelections: Record "Report Selections" temporary; var CustomReportSelection: Record "Custom Report Selection"; var AllEmailsWereSuccessful: Boolean; var IsHandled: Boolean; var SourceTableIDs: List of [Integer]; var SourceIDs: List of [Guid]; var SourceRelationTypes: List of [Integer])` (integration)
- `OnCheckEmailBodyUsageOnAfterCalcShowEmailBodyDefinedError(var Rec: Record "Report Selections"; var ReportSelections: Record "Report Selections"; var ShowEmailBodyDefinedError: Boolean)` (integration)
- `OnCopyToReportSelectionOnBeforInsertToReportSelections(var ReportSelections: Record "Report Selections"; CustomReportSelection: Record "Custom Report Selection")` (integration)
- `OnGetEmailAddressOnAfterGetEmailAddressForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; var TempBodyReportSelections: Record "Report Selections" temporary; var EmailAddress: Text[250]; CustNo: Code[20])` (integration)
- `OnGetEmailBodyCustomerTextOnAfterNotFindEmailBodyUsage(ReportUsage: Integer; RecordVariant: Variant; CustNo: Code[20]; var TempBodyReportSelections: Record "Report Selections" temporary; var IsHandled: Boolean; var EmailBodyUsageFound: Boolean)` (integration)
- `OnGetEmailBodyVendorTextOnAfterNotFindEmailBodyUsage(ReportUsage: Integer; RecordVariant: Variant; CustNo: Code[20]; var TempBodyReportSelections: Record "Report Selections" temporary; var IsHandled: Boolean; var EmailBodyUsageFound: Boolean)` (integration)
- `OnPrintDocumentsOnAfterSelectTempReportSelectionsToPrint(RecordVariant: Variant; var TempReportSelections: Record "Report Selections" temporary; var TempNameValueBuffer: Record "Name/Value Buffer" temporary; var WithCheck: Boolean; ReportUsage: Integer; TableNo: Integer)` (integration)
- `OnSendEmailDirectlyOnBeforeSendFileLoop(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocNo: Code[20]; var DocName: Text[150]; var DefaultEmailAddress: Text[250]; ShowDialog: Boolean; var TempAttachReportSelections: Record "Report Selections" temporary; var CustomReportSelection: Record "Custom Report Selection"; var IsHandled: Boolean; var ServerEmailBodyFilePath: Text[250])` (integration, obsolete 27.0)
- `OnSendEmailDirectlyOnBeforeSendSingleFile(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocNo: Code[20]; var DocName: Text[150]; var DefaultEmailAddress: Text[250]; ShowDialog: Boolean; var TempAttachReportSelections: Record "Report Selections" temporary; var CustomReportSelection: Record "Custom Report Selection"; var IsHandled: Boolean; var EmailBody: Codeunit "Temp Blob")` (integration)
- `OnSendEmailDirectlyOnBeforeSendFiles(ReportUsage: Integer; RecordVariant: Variant; var DefaultEmailAddress: Text[250]; var TempAttachReportSelections: Record "Report Selections" temporary; var CustomReportSelection: Record "Custom Report Selection"; var ReportSelections: Record "Report Selections")` (integration)
- `OnSendEmailDirectlyOnBeforeEmailWithAttachment(RecordVariant: Variant; ReportSelection: Record "Report Selections"; var TempBlob: Codeunit "Temp Blob"; var DocumentMailing: Codeunit "Document-Mailing"; DocumentNo: Code[20]; DocumentName: Text[150]; EmailAddress: Text[250])` (integration)
- `OnSendEmailDirectlyOnBeforeSaveReportAsPDFInTempBlob(ReportSelection: Record "Report Selections"; RecordVariant: Variant; ReportUsage: Enum "Report Selection Usage"; var TempBlob: Codeunit "Temp Blob"; var IsHandled: Boolean)` (integration)
- `OnSendEmailInBackgroundOnAfterGetJobQueueParameters(var RecRef: RecordRef; var ParamString: Text)` (integration)
- `OnSendEmailToCustOnAfterSetParameterString(var RecRef: RecordRef; var ParameterString: Text)` (integration)
- `OnSendEmailToVendorOnAfterSetParameterString(var RecRef: RecordRef; var ParameterString: Text)` (integration)
- `OnSendToDiskForCustOnBeforeSendFileLoop(var ReportSelections: Record "Report Selections" temporary; var RecordVariant: Variant)` (integration)
- `OnSendToDiskForVendOnBeforeSendFileLoop(var ReportSelections: Record "Report Selections" temporary; var RecordVariant: Variant)` (integration)
- `OnSendToZipForCustOnBeforeSendFileLoop(var ReportSelections: Record "Report Selections" temporary; var RecordVariant: Variant)` (integration)
- `OnSendToZipForVendOnBeforeSendFileLoop(var ReportSelections: Record "Report Selections" temporary; var RecordVariant: Variant)` (integration)
- `OnSaveAsDocumentAttachmentOnBeforeShowNotification(RecordVariant: Variant; NumberOfReportsAttached: Integer; ShowNotificationAction: Boolean; var IsHandled: Boolean)` (integration)
- `OnSaveReportAsHTMLOnBeforeSetTempLayoutSelected(RecordVariant: Variant; ReportUsage: Enum "Report Selection Usage"; var ReportID: Integer; var LayoutCode: Code[20]; var LayoutName: Text[250])` (integration)
- `OnGetNextEmailAddressFromCustomReportSelectionOnAfterCustomReportSelectionSetFilters(var CustomReportSelection: Record "Custom Report Selection")` (integration)
- `OnAfterSendToZipForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; var DataCompression: Codeunit "Data Compression")` (integration)
- `OnAfterSendToZipForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; var DataCompression: Codeunit "Data Compression")` (integration)
- `OnBeforeSaveAsDocumentAttachment(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocumentNo: Code[20]; AccountNo: Code[20]; ShowNotificationAction: Boolean)` (integration)
- `OnSaveAsDocumentAttachmentOnBeforeCanSaveReportAsPDF(var TempAttachReportSelections: Record "Report Selections" temporary; RecRef: RecordRef; DocumentNo: Code[20]; AccountNo: Code[20]; NumberOfReportsAttached: Integer)` (integration)
- `OnGetAccountNoFilterForCustomReportLayoutOnAfterSetCustomReportSelectionFilters(var CustomReportSelection: Record "Custom Report Selection"; var TempReportSelections: Record "Report Selections" temporary)` (integration)
- `OnBeforeNewRecord(var ReportSelections: Record "Report Selections"; var ReportSelections2: Record "Report Selections")` (integration)
- `OnBeforeCopyCustomReportSectionToReportSelectionForTable(var ReportSelectionsOrg: Record "Report Selections"; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnBeforeCopyCustomReportSectionToReportSelection(var ReportSelectionsOrg: Record "Report Selections"; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnGetLastSequenceNoOnBeforeFillEmptySequence(var TempReportSelections: Record "Report Selections"; var IsHandled: Boolean)` (integration)
- `OnGetEmailBodyTextForCustOnBeforeFindEmailBodyUsageForCust(var ReportSelectionsOrg: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var ReportSelections: Record "Report Selections"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnGetHtmlReportForCustOnBeforeFindReportUsage(var ReportSelectionsOrg: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var ReportSelectionsPart: Record "Report Selections"; var IsHandled: Boolean)` (integration)
- `OnSendToZipForCustOnBeforeFindReportUsageForCust(var ReportSelectionsOrg: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var ReportSelectionsPart: Record "Report Selections"; var IsHandled: Boolean)` (integration)
- `OnSendToDiskForCustOnBeforeFindReportUsage(var ReportSelectionsOrg: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var ReportSelectionsPart: Record "Report Selections"; var IsHandled: Boolean)` (integration)
- `OnSendEmailToCustDirectlyOnBeforeFindEmailAttachmentUsageForCust(var ReportSelectionsOrg: Record "Report Selections"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var ReportSelectionsPart: Record "Report Selections"; var FoundAttachment: Boolean; var IsHandled: Boolean)` (integration)
- `OnGetSendToCustomerDirectly(ReportUsageEnum: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var ShowDialog: Boolean; var SendToCustomerDirectly: Boolean; var Handled: Boolean)` (integration)
  - subscribers: [Codeunit 6753 "Send Reminder Event Handler"](../codeunit/6753.md) HandleGetSendToCustomerDirectly
- `OnReplaceHTMLText(ReportID: Integer; var FilePath: Text[250]; var RecordVariant: Variant; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnAfterDoSaveReportAsHTMLInTempBlob(ReportID: Integer; var TempBlob: Codeunit "Temp Blob"; var RecordVariant: Variant)` (integration)
  - subscribers: [Codeunit 1890 "Reminder Communication"](../codeunit/1890.md) OnReplaceHTMLText
- `OnAfterIsCustomerAccount(DocumentTableId: Integer; var IsCustomer: Boolean)` (integration)
  - subscribers: [Codeunit 6461 "Serv. Document Print"](../codeunit/6461.md) OnAfterIsCustomerAccount
- `OnAfterIsVendorAccount(DocumentTableId: Integer; var IsVendor: Boolean)` (integration)
- `OnSendEmailDirectlyOnAfterSetFieldName(DocumentTableID: Integer; var FieldName: Text)` (integration)
  - subscribers: [Codeunit 6461 "Serv. Document Print"](../codeunit/6461.md) OnSendEmailDirectlyOnAfterSetFieldName
- `OnBeforeConvertReportUsageToSalesDocumentType(var ReportSelections: Record "Report Selections"; var DocumentType: Enum "Sales Document Type"; ReportUsage: Enum "Report Selection Usage"; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnSendEmailDirectlyOnAfterEmailWithAttachment(RecordVariant: Variant; var TempReportSelections: Record "Report Selections" temporary; var TempBlob: Codeunit "Temp Blob"; var DocumentMailing: Codeunit "Document-Mailing"; DocumentNo: Code[20]; DocumentName: Text[150]; EmailAddress: Text[250]; AllEmailsWereSuccessful: Boolean)` (integration)
- `OnAfterCopyReportSelectionToReportSelection(ReportSelections: Record "Report Selections"; var TempToReportSelections: Record "Report Selections" temporary)` (integration)
- `OnSendEmailDirectlyOnAfterAddRelatedReminderInvoiceSource(var SourceTableIDs: List of [Integer]; var SourceRelationTypes: List of [Integer]; var SourceIDs: List of [Guid]; ReminderLines: Record "Issued Reminder Line")` (integration)
- `OnSendToDiskForCustOnBeforeDownloadAttachment(var TempReportSelections: Record "Report Selections" temporary; RecordVariant: Variant; DocumentNo: Code[20]; DocumentName: Text; Extension: Code[3]; var ClientAttachmentFileName: Text)` (integration)

## Procedures

- `NewRecord()`
- `InsertRecord(NewUsage: Enum "Report Selection Usage"; NewSequence: Code[10]; NewReportID: Integer)`
- `DrillDownToSelectLayout(var SelectedLayoutName: Text[250]; var SelectedLayoutAppID: Guid)`
- `SetEmailUsageFilters(ReportUsage: Enum "Report Selection Usage")`
- `SetEmailBodyUsageFilters(ReportUsage: Enum "Report Selection Usage")`
- `SetEmailAttachmentUsageFilters(ReportUsage: Enum "Report Selection Usage")`
- `FindReportUsageForTable(ReportUsage: Enum "Report Selection Usage"; var ReportSelections: Record "Report Selections" temporary; TableNo: Integer)`: Finds the report usage for a specific table.
- `FindReportUsageForCust(ReportUsage: Enum "Report Selection Usage"; CustNo: Code[20]; var ReportSelections: Record "Report Selections" temporary)`
- `FindReportUsageForVend(ReportUsage: Enum "Report Selection Usage"; VendorNo: Code[20]; var ReportSelections: Record "Report Selections" temporary)`
- `FindEmailAttachmentUsageForCust(ReportUsage: Enum "Report Selection Usage"; CustNo: Code[20]; var TempReportSelections: Record "Report Selections" temporary): Boolean`
- `FindEmailAttachmentUsageForVend(ReportUsage: Enum "Report Selection Usage"; VendorNo: Code[20]; var TempReportSelections: Record "Report Selections" temporary): Boolean`
- `FindEmailBodyUsageForCust(ReportUsage: Enum "Report Selection Usage"; CustNo: Code[20]; var TempReportSelections: Record "Report Selections" temporary): Boolean`
- `FindEmailBodyUsageForVend(ReportUsage: Enum "Report Selection Usage"; VendorNo: Code[20]; var TempReportSelections: Record "Report Selections" temporary): Boolean`
- `PrintWithCheckForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustomerNoFieldNo: Integer)`
- `PrintWithDialogWithCheckForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; IsGUI: Boolean; CustomerNoFieldNo: Integer)`
- `PrintWithCheckForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; VendorNoFieldNo: Integer)`
- `PrintWithDialogWithCheckForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; IsGUI: Boolean; VendorNoFieldNo: Integer)`
- `PrintReport(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant)`
- `PrintForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustomerNoFieldNo: Integer)`
- `PrintWithDialogForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; IsGUI: Boolean; CustomerNoFieldNo: Integer)`
- `PrintWithDialogForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; IsGUI: Boolean; VendorNoFieldNo: Integer)`
- `GetFilteredRecordRef(var RecRefToPrint: RecordRef; RecRefSource: RecordRef; AccountNoFieldNo: Integer; AccountNoFilter: Text)`
- `GetAccountNoFilterForCustomReportLayout(var TempReportSelections: Record "Report Selections" temporary; var TempNameValueBuffer: Record "Name/Value Buffer" temporary; TableNo: Integer): Text`
- `SelectTempReportSelections(var TempReportSelections: Record "Report Selections" temporary; AccountNo: Code[20]; WithCheck: Boolean; ReportUsage: Enum "Report Selection Usage"; TableNo: Integer)`
- `SelectTempReportSelectionsToPrint(var TempReportSelections: Record "Report Selections" temporary; var TempNameValueBuffer: Record "Name/Value Buffer" temporary; WithCheck: Boolean; ReportUsage: Enum "Report Selection Usage"; TableNo: Integer)`
- `GetHtmlReportForCust(var DocumentContent: Text; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20])`
- `GetPdfReportForTable(var ServerEmailBodyFilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; TableNo: Integer)`: Gets File Path to the PDF report for a table
- `GetPdfReportForTable(var TempBlob: Codeunit "Temp Blob"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; TableNo: Integer)`: Gets the PDF report for a table to TempBlob
- `GetPdfReportForCust(var ServerEmailBodyFilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20])`
- `GetPdfReportForCust(var TempBlob: Codeunit "Temp Blob"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20])`
- `GetPdfReportForVend(var ServerEmailBodyFilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; VendNo: Code[20])`: Gets File Path to the PDF report for a vendor
- `GetPdfReportForVend(var TempBlob: Codeunit "Temp Blob"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; VendNo: Code[20])`: Gets the PDF report for a vendor to TempBlob
- `GetEmailBodyForCust(var ServerEmailBodyFilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var CustEmailAddress: Text[250]): Boolean` (obsolete 27.0: Replaced with GetEmailBodyForCust that accepts a TempBlob as parameter.)
- `GetEmailBodyTextForCust(var ServerEmailBodyFilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var CustEmailAddress: Text[250]; EmailBodyText: Text): Boolean` (obsolete 27.0: Replaced with GetEmailBodyTextForCust that accepts a TempBlob as parameter.)
- `GetEmailBodyForCust(var EmailBody: Codeunit "Temp Blob"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var CustEmailAddress: Text[250]): Boolean`: Gets the email body for a customer into tempblob.
- `GetEmailBodyTextForCust(var EmailBody: Codeunit "Temp Blob"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]; var CustEmailAddress: Text[250]; EmailBodyText: Text): Boolean`: Gets the email body for a customer into tempblob.
- `GetEmailAddressIgnoringLayout(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]): Text[250]`
- `GetEmailAddressExt(ReportUsage: Integer; RecordVariant: Variant; CustNo: Code[20]; var TempBodyReportSelections: Record "Report Selections" temporary): Text[250]`
- `GetEmailBodyForVend(var ServerEmailBodyFilePath: Text[250]; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; VendorNo: Code[20]; var VendorEmailAddress: Text[250]): Boolean` (obsolete 27.0: Replaced with GetEmailBodyForVend that accepts a TempBlob as parameter.)
- `GetEmailBodyForVend(var EmailBody: Codeunit "Temp Blob"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; VendorNo: Code[20]; var VendorEmailAddress: Text[250]): Boolean`
- `SendEmailInBackground(JobQueueEntry: Record "Job Queue Entry")`
- `GetJobQueueParameters(var ParameterString: Text; var ReportUsage: Integer; var DocNo: Code[20]; var DocName: Text[150]; var CustNo: Code[20]): Boolean`
- `RunGetNextJobQueueParam(var Parameter: Text): Text`
- `EnqueueMailingJob(RecordIdToProcess: RecordID; ParameterString: Text; Description: Text)`
- `GetMailingJobCategory(): Code[10]`
- `SaveAsDocumentAttachment(ReportUsage: Integer; RecordVariant: Variant; DocumentNo: Code[20]; AccountNo: Code[20]; ShowNotificationAction: Boolean)`
- `SendEmailToCust(ReportUsage: Integer; RecordVariant: Variant; DocNo: Code[20]; DocName: Text[150]; ShowDialog: Boolean; CustNo: Code[20])`
- `ShouldSendToCustDirectly(ReportUsageEnum: Enum "Report Selection Usage"; RecordVariant: Variant; CustNo: Code[20]): Boolean`
- `SendEmailToVendor(ReportUsage: Integer; RecordVariant: Variant; DocNo: Code[20]; DocName: Text[150]; ShowDialog: Boolean; VendorNo: Code[20])`
- `SendToDiskForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocNo: Code[20]; DocName: Text; CustNo: Code[20])`
- `SendToDiskForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocNo: Code[20]; DocName: Text; VendorNo: Code[20])`
- `SendToZipForCust(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocNo: Code[20]; CustNo: Code[20]; var DataCompression: Codeunit "Data Compression")`
- `SendToZipForVend(ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; DocNo: Code[20]; VendorNo: Code[20]; var DataCompression: Codeunit "Data Compression")`
- `GetEmailAddressForDoc(DocumentNo: Code[20]; ReportUsage: Enum "Report Selection Usage"): Text[250]`
- `GetEmailAddressForCust(BillToCustomerNo: Code[20]; ReportUsage: Enum "Report Selection Usage"): Text[250]`
- `GetEmailAddressForVend(BuyFromVendorNo: Code[20]; RecVar: Variant; ReportUsage: Enum "Report Selection Usage"): Text[250]`
- `SaveReportAsPDFInTempBlob(var TempBlob: Codeunit "Temp Blob"; ReportID: Integer; RecordVariant: Variant; LayoutCode: Code[20]; ReportUsage: Enum "Report Selection Usage")`
- `FindReportSelections(var TempReportSelections: Record "Report Selections" temporary; TableNo: Integer): Boolean`: Finds the report selections for the specified table number and loads them into the provided temporary record.
- `FindReportSelections(var TempReportSelections: Record "Report Selections" temporary; AccountNo: Code[20]; TableNo: Integer): Boolean`
- `CopyCustomReportSectionToReportSelection(var TempToReportSelections: Record "Report Selections" temporary; TableNo: Integer): Boolean`: Copies the custom report selection for the specific table to the report selection.
- `CopyCustomReportSectionToReportSelection(AccountNo: Code[20]; var TempToReportSelections: Record "Report Selections" temporary; TableNo: Integer): Boolean`
- `CopyReportSelectionToReportSelection(var TempToReportSelections: Record "Report Selections" temporary): Boolean`
- `GetCustomReportSelectionByUsageOption(var CustomReportSelection: Record "Custom Report Selection"; AccountNo: Code[20]; ReportUsage: Enum "Report Selection Usage"; TableNo: Integer): Boolean`
- `GetUniqueAccountNos(var TempNameValueBuffer: Record "Name/Value Buffer" temporary; RecRef: RecordRef; AccountNoFieldNo: Integer)`
- `PrintReportsForUsage(ReportUsage: Enum "Report Selection Usage")`
- `ShowNoBodyNoAttachmentError(ReportUsage: Enum "Report Selection Usage"; FoundBody: Boolean; FoundAttachment: Boolean)`
- `ConvertReportUsageToSalesDocumentType(var DocumentType: Enum "Sales Document Type"; ReportUsage: Enum "Report Selection Usage"): Boolean`
- `SendEmailInForeground(DocRecordID: RecordID; DocNo: Code[20]; DocName: Text[150]; ReportUsage: Integer; SourceIsCustomer: Boolean; SourceNo: Code[20]): Boolean`
- `IsSalesDocument(RecordRef: RecordRef): Boolean`
- `DoesAnyCustomLayotExist(): Boolean` (internal)

Plus 37 local procedures.

## Triggers

OnInsert, OnModify

## Relations

- Email Body Layout Code: TableRelation [Table 2114 "O365 HTML Template"](../table/2114.md) (conditional)
- Email Body Layout Description: CalcFormula [Table 9650 "Custom Report Layout"](../table/9650.md)
- Custom Report Layout Code: TableRelation [Table 9650 "Custom Report Layout"](../table/9650.md)
- Email Body Layout Code: TableRelation [Table 9650 "Custom Report Layout"](../table/9650.md) (conditional)

## Pages and codeunits on this table

- [Page 20442 "Qlty. Report Selection - QM"](../page/20442.md) (source table)
- [Page 306 "Report Selection - Sales"](../page/306.md) (source table)
- [Page 307 "Report Selection - Job"](../page/307.md) (source table)
- [Page 347 "Report Selection - Purchase"](../page/347.md) (source table)
- [Page 385 "Report Selection - Bank Acc."](../page/385.md) (source table)
- [Page 524 "Report Selection - Reminder"](../page/524.md) (source table)
- [Page 5754 "Report Selection - Inventory"](../page/5754.md) (source table)
- [Page 584 "Report Selection - VAT Stmt."](../page/584.md) (source table)
- [Page 5932 "Report Selection - Service"](../page/5932.md) (source table)
- [Page 99000917 "Report Selection - Prod. Order"](../page/99000917.md) (source table)

## 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 419 "File Management"](../codeunit/419.md) (15 calls: `DoSaveReportAsHTMLInTempBlob → BLOBExportToServerFile`, `DoSaveReportAsHTMLInTempBlob → BLOBImportFromServerFile`, `DoSaveReportAsHTMLInTempBlob → ServerTempFileName`, …)
- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (12 calls: `DoSaveReportAsHTMLInTempBlob → CreateOutStream`, `GetEmailBodyForVend → HasValue`, `GetEmailBodyTextForCust → HasValue`, …)
- [Codeunit 1173 "Document Attachment Mgmt"](../codeunit/1173.md) (4 calls: `SaveAsDocumentAttachment → ShowNotification`, `SaveDocumentAttachmentFromRecRef → IsPurchaseDocumentFlow`, `SaveDocumentAttachmentFromRecRef → IsSalesDocumentFlow`, …)
- [Codeunit 425 "Data Compression"](../codeunit/425.md) (2 calls: `SendToZipForCust → AddEntry`, `SendToZipForVend → AddEntry`)
- [Codeunit 452 "Report Distribution Management"](../codeunit/452.md) (2 calls: `SaveDocumentAttachmentFromRecRef → GetDocumentLanguageCode`, `SaveDocumentAttachmentFromRecRef → GetReportCaption`)
- [Codeunit 701 "Data Type Management"](../codeunit/701.md) (2 calls: `GetEmailAddress → FindFieldByName`, `SendEmailDirectly → FindFieldByName`)
- [Codeunit 10 "Type Helper"](../codeunit/10.md) (1 call: `GetHtmlReportForCust → ReadAsTextWithSeparator`)
- [Codeunit 1629 "Office Attachment Manager"](../codeunit/1629.md) (1 call: `SendEmailDirectly → IncrementCount`)
- [Codeunit 1630 "Office Management"](../codeunit/1630.md) (1 call: `OfficeMgtAvailable → IsAvailable`)
- [Codeunit 2114 "O365 HTML Templ. Mgt."](../codeunit/2114.md) (1 call: `GetEmailBodyTextForCust → CreateEmailBodyFromReportSelections`)
- [Codeunit 260 "Document-Mailing"](../codeunit/260.md) (1 call: `SendEmailDirectly → EmailFile`)
- [Codeunit 44 "ReportManagement"](../codeunit/44.md) (1 call: `DrillDownToSelectLayout → OnSelectReportLayout`)
- [Codeunit 453 "Job Queue - Enqueue"](../codeunit/453.md) (1 call: `EnqueueMailingJob → (object)`)
- [Codeunit 8800 "Custom Layout Reporting"](../codeunit/8800.md) (1 call: `SaveReportAsPDFInTempBlob → GetReportRequestPageParameters`)
- [Codeunit 9520 "Mail Management"](../codeunit/9520.md) (1 call: `MailManagementEnabled → IsEnabled`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-28

## Countries that replace it

[RU](../../localizations/ru.md)

## Deprecations

- procedure GetEmailBodyForCust: Pending 27.0 (#if not CLEAN27), "Replaced with GetEmailBodyForCust that accepts a TempBlob as parameter."
- procedure GetEmailBodyForVend: Pending 27.0 (#if not CLEAN27), "Replaced with GetEmailBodyForVend that accepts a TempBlob as parameter."
- procedure GetEmailBodyTextForCust: Pending 27.0 (#if not CLEAN27), "Replaced with GetEmailBodyTextForCust that accepts a TempBlob as parameter."
- procedure OnAfterGetEmailBodyCustomer: Pending 27.0 (#if not CLEAN27), "Use new Event OnAfterGetEmailBodyCustomerProcedure instead."
- procedure OnAfterGetEmailBodyVendor: Pending 27.0 (#if not CLEAN27), "Use new Event OnAfterGetEmailBodyVendorProcedure instead."
- procedure OnBeforeDoSaveReportAsHTML: Pending 27.0 (#if not CLEAN27), "This event will be removed. Please use Event OnBeforeDoSaveReportAsHTMLInTempBlob instead."
- procedure OnBeforeSendEmailDirectly: Pending 27.0 (#if not CLEAN27), "Use new Event OnSendEmailDirectlyOnBeforeSend instead."
- procedure OnReplaceHTMLText: Pending 27.0 (#if not CLEAN27), "This event will be removed. Please use Event OnBeforeDoSaveReportAsHTMLInTempBlob instead."
- procedure OnSendEmailDirectlyOnBeforeSendFileLoop: Pending 27.0 (#if not CLEAN27), "Use new Event OnSendEmailDirectlyOnBeforeSendSingleFile instead."

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## 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: "table", object_name: "Report Selections")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
