Codeunit 5477 "Sales Invoice Aggregator"
Base Application · Microsoft.Integration.Entity
Across versions
- BC23present
- BC243 procedures added
- BC25-26unchanged
- BC27declaration changed
- BC28-30unchanged
Neighbourhood 30 connected objects and pages
Base Application · Microsoft.Integration.Entity · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | tabledata “Sales Invoice Header” = rimd, tabledata “Sales Invoice Entity Aggregate” = rimd |
Events published
OnBeforeSetStatusOptionFromSalesInvoiceHeader(var SalesInvoiceHeader: Record "Sales Invoice Header"; var SalesInvoiceEntityAggregate: Record "Sales Invoice Entity Aggregate"; var IsHandled: Boolean)(integration)OnBeforeTransferRecordIDs(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)(integration)
Event subscriptions
- OnAfterInsertSalesHeader subscribes to Table “Sales Header” OnAfterInsertEvent
- OnAfterModifySalesHeader subscribes to Table “Sales Header” OnAfterModifyEvent
- OnAfterDeleteSalesHeader subscribes to Table “Sales Header” OnAfterDeleteEvent
- OnAfterResetRecalculateInvoiceDisc subscribes to Codeunit “Sales - Calc Discount By Type” OnAfterResetRecalculateInvoiceDisc
- OnAfterInsertSalesLine subscribes to Table “Sales Line” OnAfterInsertEvent
- OnAfterModifySalesLine subscribes to Table “Sales Line” OnAfterModifyEvent
- OnAfterDeleteSalesLine subscribes to Table “Sales Line” OnAfterDeleteEvent
- OnAfterInsertSalesInvoiceHeader subscribes to Table “Sales Invoice Header” OnAfterInsertEvent
- OnAfterModifySalesInvoiceHeader subscribes to Table “Sales Invoice Header” OnAfterModifyEvent
- OnAfterRenameSalesInvoiceHeader subscribes to Table “Sales Invoice Header” OnAfterRenameEvent
- OnAfterDeleteSalesInvoiceHeader subscribes to Table “Sales Invoice Header” OnAfterDeleteEvent
- OnAfterCalculateSalesDiscountOnSalesHeader subscribes to Codeunit “Sales-Calc. Discount” OnAfterCalcSalesDiscount
- OnAfterInsertCustomerLedgerEntry subscribes to Table “Cust. Ledger Entry” OnAfterInsertEvent
- OnAfterModifyCustomerLedgerEntry subscribes to Table “Cust. Ledger Entry” OnAfterModifyEvent
- OnAfterRenameCustomerLedgerEntry subscribes to Table “Cust. Ledger Entry” OnAfterRenameEvent
- OnAfterDeleteCustomerLedgerEntry subscribes to Table “Cust. Ledger Entry” OnAfterDeleteEvent
- OnAfterInsertCancelledDocument subscribes to Table “Cancelled Document” OnAfterInsertEvent
- OnAfterModifyCancelledDocument subscribes to Table “Cancelled Document” OnAfterModifyEvent
- OnAfterRenameCancelledDocument subscribes to Table “Cancelled Document” OnAfterRenameEvent
- OnAfterDeleteCancelledDocument subscribes to Table “Cancelled Document” OnAfterDeleteEvent
- OnBeforeSalesInvHeaderInsert subscribes to Codeunit “Sales-Post” OnBeforeSalesInvHeaderInsert
Procedures
PropagateOnInsert(var SalesInvoiceEntityAggregate: Record "Sales Invoice Entity Aggregate"; var TempFieldBuffer: Record "Field Buffer" temporary)PropagateOnModify(var SalesInvoiceEntityAggregate: Record "Sales Invoice Entity Aggregate"; var TempFieldBuffer: Record "Field Buffer" temporary)ChangeOnlyContainsWhitelistedFields(var TempFieldBuffer: Record "Field Buffer"): Boolean+ BC24PropagateOnDelete(var SalesInvoiceEntityAggregate: Record "Sales Invoice Entity Aggregate")UpdateAggregateTableRecords()GetSalesInvoiceHeaderId(var SalesInvoiceHeader: Record "Sales Invoice Header"): GuidGetSalesInvoiceHeaderFromId(Id: text; var SalesInvoiceHeader: Record "Sales Invoice Header"): BooleanSetTaxGroupIdAndCode(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate"; TaxGroupCode: Code[20]; VATProductPostingGroupCode: Code[20]; VATIdentifier: Code[20])SetItemVariantId(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate"; ItemNo: Code[20]; VariantCode: Code[20])UpdateUnitOfMeasure(var Item: Record Item; JSONUnitOfMeasureTxt: Text)RedistributeInvoiceDiscounts(var SalesInvoiceEntityAggregate: Record "Sales Invoice Entity Aggregate")LoadLines(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate"; DocumentIdFilter: Text)TransferFromSalesLineToAggregateLine(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate"; var SalesLine: Record "Sales Line"; DocumentId: Guid; PricesIncludingVAT: Boolean)PropagateInsertLine(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate"; var TempFieldBuffer: Record "Field Buffer" temporary)PropagateModifyLine(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate"; var TempFieldBuffer: Record "Field Buffer" temporary)PropagateDeleteLine(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate")PropagateMultipleLinesUpdate(var TempNewSalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate" temporary)UpdateInvoiceDiscountAmount(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate")VerifyCanUpdateUOM(var SalesInvoiceLineAggregate: Record "Sales Invoice Line Aggregate")FixInvoicesCreatedFromOrders()GetIdFromDocumentIdAndSequence(DocumentId: Guid; Sequence: Integer): Text[50]
Plus 27 local procedures.
Triggers
OnRun
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 5465 “Graph Mgt - General Tools” (26 calls:
CheckValidLineRecord → IsApiEnabled,GetIdFromDocumentIdAndSequence → StripBrackets,OnAfterCalculateSalesDiscountOnSalesHeader → IsApiEnabled, …) - Codeunit 10 “Type Helper” (4 calls:
PropagateOnInsert → TransferFieldsWithValidate,PropagateOnModifyToSalesHeader → TransferFieldsWithValidate,PropagateOnModifyToSalesInvoiceHeader → TransferFieldsWithValidate, …) - Codeunit 57 “Document Totals” (2 calls:
AssignTotalsFromSalesInvoiceLine → CalculatePostedSalesInvoiceTotals,AssignTotalsFromSalesLine → CalculateSalesTotals) - Codeunit 9999 “Upgrade Tag” (2 calls:
FixInvoicesCreatedFromOrders → HasUpgradeTag,FixInvoicesCreatedFromOrders → SetUpgradeTag) - Codeunit 1409 “Sales Inv. Header - Edit” (1 call:
PropagateOnModifyToSalesInvoiceHeader → (object)) - Codeunit 5470 “Graph Collection Mgt - Item” (1 call:
UpdateUnitOfMeasure → UpdateOrCreateItemUnitOfMeasureFromSalesDocument) - Codeunit 5506 “Graph Mgt - Sales Quote Buffer” (1 call:
PropagateMultipleLinesUpdate → GetFieldSetBufferWithAllFieldsSet) - Codeunit 5532 “Disable Aggregate Table Update” (1 call:
CheckUpdatesDisabled → OnGetAggregateTablesUpdateEnabled) - Codeunit 56 “Sales - Calc Discount By Type” (1 call:
RedistributeInvoiceDiscounts → (object)) - Codeunit 9994 “API Data Upgrade” (1 call:
UpdateAggregateTableRecords → CountRecordsAndCommit) - Codeunit 9998 “Upgrade Tag Definitions” (1 call:
FixInvoicesCreatedFromOrders → GetFixAPISalesInvoicesCreatedFromOrders)
Called by
- Page 20012 “APIV1 - Sales Invoices” (12 calls:
Cancel → GetSalesInvoiceHeaderId,CancelAndSend → GetSalesInvoiceHeaderId,GetPostedInvoice → GetSalesInvoiceHeaderFromId, …) - Page 30012 “APIV2 - Sales Invoices” (12 calls:
Cancel → GetSalesInvoiceHeaderId,CancelAndSend → GetSalesInvoiceHeaderId,GetPostedInvoice → GetSalesInvoiceHeaderFromId, …) - Codeunit 5508 “Graph Mgt - Sal. Cr. Memo Buf.” (5 calls:
LoadSalesCreditMemoLines → GetIdFromDocumentIdAndSequence,LoadSalesCreditMemoLines → SetItemVariantId,LoadSalesCreditMemoLines → SetTaxGroupIdAndCode, …) - Page 20043 “APIV1 - Sales Invoice Lines” (4 calls:
OnDeleteRecord → PropagateDeleteLine,OnFindRecord → LoadLines,OnInsertRecord → PropagateInsertLine, …) - Page 30043 “APIV2 - Sales Invoice Lines” (4 calls:
OnDeleteRecord → PropagateDeleteLine,OnFindRecord → LoadLines,OnInsertRecord → PropagateInsertLine, …) - Codeunit 5496 “Graph Mgt - Sales Order Buffer” (3 calls:
TransferFromSalesLine → GetIdFromDocumentIdAndSequence,TransferFromSalesLine → SetItemVariantId,TransferFromSalesLine → SetTaxGroupIdAndCode) - Codeunit 5503 “Graph Mgt - Attachment Buffer” (3 calls:
FindParentDocumentSafe → GetSalesInvoiceHeaderFromId,FindParentDocumentWithDocumentTypeSafe → GetSalesInvoiceHeaderFromId,GetDocumentId → GetSalesInvoiceHeaderId) - Codeunit 5506 “Graph Mgt - Sales Quote Buffer” (3 calls:
TransferFromSalesLine → GetIdFromDocumentIdAndSequence,TransferFromSalesLine → SetItemVariantId,TransferFromSalesLine → SetTaxGroupIdAndCode) - Codeunit 5511 “Graph Mgt - Purch. Cr. Memo” (2 calls:
LoadPurchaseCreditMemoLines → GetIdFromDocumentIdAndSequence,TransferFromPurchaseLine → GetIdFromDocumentIdAndSequence) - Codeunit 5529 “Purch. Inv. Aggregator” (2 calls:
LoadPurchaseInvoiceLines → GetIdFromDocumentIdAndSequence,TransferFromPurchaseLine → GetIdFromDocumentIdAndSequence) - Codeunit 9994 “API Data Upgrade” (2 calls:
OnRun → FixInvoicesCreatedFromOrders,OnRun → UpdateAggregateTableRecords) - Table 81 “Gen. Journal Line” (2 calls:
UpdateAppliesToInvoiceID → GetSalesInvoiceHeaderId,UpdateAppliesToInvoiceNo → GetSalesInvoiceHeaderFromId) - Codeunit 104000 “Upgrade - BaseApp” (1 call:
UpgradeInvoicesCreatedFromOrders → FixInvoicesCreatedFromOrders) - Codeunit 5450 “Sales Invoice PDF Doc.Handler” (1 call:
GeneratePdfBlobWithDocumentType → GetSalesInvoiceHeaderFromId) - Codeunit 5467 “PDF Document Management” (1 call:
GeneratePdf → GetSalesInvoiceHeaderFromId) - Codeunit 5475 “Graph Mgt - Sales Invoice” (1 call:
HandleApiSetup → UpdateAggregateTableRecords) - Codeunit 5497 “Graph Mgt - Purch Order Buffer” (1 call:
TransferFromPurchaseLine → GetIdFromDocumentIdAndSequence) - Page 20028 “APIV1 - Sales Orders” (1 call:
ShipAndInvoice → GetSalesInvoiceHeaderId) - Page 20038 “APIV1 - Sales Credit Memos” (1 call:
SetInvoiceId → GetSalesInvoiceHeaderId) - Page 30028 “APIV2 - Sales Orders” (1 call:
ShipAndInvoice → GetSalesInvoiceHeaderId) - Page 30038 “APIV2 - Sales Credit Memos” (1 call:
SetInvoiceId → GetSalesInvoiceHeaderId)
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: "Sales Invoice Aggregator"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.