Codeunit 561 "IC Data Exchange API"
Base Application · Microsoft.Intercompany.DataExchange
Across versions
- BC23-24present
- BC252 events added
- BC26-27unchanged
- BC2810 events added, 1 procedures added
- BC29-30unchanged
Neighbourhood 8 connected objects and pages
Base Application · Microsoft.Intercompany.DataExchange · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | tabledata “IC Inbox Transaction” = i, tabledata “IC Inbox Jnl. Line” = i, tabledata “IC Inbox Purchase Header” = i, tabledata “IC Inbox Purchase Line” = i, tabledata “IC Inbox Sales Header” = i, tabledata “IC Inbox Sales Line” = i, tabledata “IC Inbox/Outbox Jnl. Line Dim.” = i, tabledata “IC Docume… |
Events published
OnPopulateTransactionDataFromICOutgoingNotification(IndividualObject: JsonObject; var Success: Boolean)(internal): Internal event for populating transaction data from intercompany outgoing notifications.- subscribers: Codeunit 561 “IC Data Exchange API” HandledOnPopulate
OnPostICPurchaseHeaderToICPartnerInboxOnBeforeBufferICInboxPurchaseHeaderInsert(var BufferICInboxPurchaseHeader: Record "Buffer IC Inbox Purch Header"; TempICPartnerICInboxPurchaseHeader: Record "IC Inbox Purchase Header" temporary; ICPartner: Record "IC Partner"; RegisteredPartner: Record "IC Partner" temporary)+ BC25 (integration): Integration event raised before inserting buffer IC inbox purchase header data.OnPostICSalesHeaderToICPartnerInboxOnBeforeBufferICInboxSalesHeaderInsert(var BufferICInboxSalesHeader: Record "Buffer IC Inbox Sales Header"; TempICPartnerICInboxSalesHeader: Record "IC Inbox Sales Header" temporary; ICPartner: Record "IC Partner"; RegisteredPartner: Record "IC Partner" temporary)+ BC25 (integration): Integration event raised before inserting buffer IC inbox sales header data.OnPostICSalesLineToICPartnerInboxOnBeforeBufferICInboxSalesLineInsert(var BufferICInboxSalesLine: Record "Buffer IC Inbox Sales Line"; TempICPartnerICInboxSalesLine: Record "IC Inbox Sales Line" temporary; ICPartner: Record "IC Partner")+ BC28 (integration)OnPopulateICInboxTransactionFromJsonOnBeforeInsert(var ICInboxTransaction: Record "IC Inbox Transaction"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICInboxJournalLineFromJsonOnBeforeInsert(var ICInboxJournalLine: Record "IC Inbox Jnl. Line"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICInboxPurchaseLineFromJsonOnBeforeInsert(var ICInboxPurchaseLine: Record "IC Inbox Purchase Line"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICInboxSalesHeaderFromJsonOnBeforeInsert(var ICInboxSalesHeader: Record "IC Inbox Sales Header"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICInboxSalesLineFromJsonOnBeforeInsert(var ICInboxSalesLine: Record "IC Inbox Sales Line"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICInboxOutboxJnlLineDimFromJsonOnBeforeInsert(var ICInboxOutboxJnlLineDim: Record "IC Inbox/Outbox Jnl. Line Dim."; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICDocumentDimensionFromJsonOnBeforeInsert(var ICDocumentDimension: Record "IC Document Dimension"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICInboxPurchaseHeaderFromJsonOnBeforeInsert(var ICInboxPurchaseHeader: Record "IC Inbox Purchase Header"; IndividualToken: JsonToken)+ BC28 (integration)OnPopulateICCommentLineFromJsonOnBeforeInsert(var ICCommentLine: Record "IC Comment Line"; IndividualToken: JsonToken)+ BC28 (integration)
Event subscriptions
- OnAfterICInboxTransactionMovedToBuffer subscribes to Report “Move IC Trans. to Partner Comp” OnICInboxTransactionCreated
- HandledOnPopulate subscribes to Codeunit “IC Data Exchange API” OnPopulateTransactionDataFromICOutgoingNotification
Procedures
GetICPartnerICGLAccount(ICPartner: Record "IC Partner"; var TempICPartnerICGLAccount: Record "IC G/L Account" temporary): Retrieves intercompany G/L accounts from a partner company via API connection. Populates temporary table with partner’s G/L account structure for mapping and synchronization.GetICPartnerICDimension(ICPartner: Record "IC Partner"; var TempICPartnerICDimension: Record "IC Dimension" temporary): Retrieves intercompany dimensions from a partner company via API connection. Populates temporary table with partner’s dimension structure for validation and mapping.GetICPartnerICDimensionValue(ICPartner: Record "IC Partner"; var TempICPartnerICDimensionValue: Record "IC Dimension Value" temporary): Retrieves intercompany dimension values from a partner company via API connection. Populates temporary table with partner’s dimension values for transaction validation.GetICPartnerFromICPartner(ICPartner: Record "IC Partner"; var TempRegisteredICPartner: Record "IC Partner" temporary): Retrieves intercompany partner data from the specified partner via API call. Uses current company’s IC Partner Code for authentication and partner identification.GetICPartnerFromICPartner(ICPartner: Record "IC Partner"; ICPartnerCode: Code[20]; var TempRegisteredICPartner: Record "IC Partner" temporary): Retrieves intercompany partner data using specified partner code for identification. Allows cross-partner data retrieval with explicit partner code specification.GetICPartnerICSetup(ICPartnerName: Text; var TempICPartnerICSetup: Record "IC Setup" temporary): Retrieves intercompany setup configuration from a partner company by name.GetICPartnerICSetup(ICPartner: Record "IC Partner"; var TempICPartnerICSetup: Record "IC Setup" temporary): Retrieves intercompany setup configuration from a partner company.GetICPartnerGeneralLedgerSetup(ICPartnerName: Text; var TempICPartnerGeneralLedgerSetup: Record "General Ledger Setup" temporary): Retrieves general ledger setup configuration from a partner company by name.GetICPartnerGeneralLedgerSetup(ICPartner: Record "IC Partner"; var TempICPartnerGeneralLedgerSetup: Record "General Ledger Setup" temporary): Retrieves general ledger setup configuration from a partner company.GetICPartnerCompanyInformation(ICPartnerName: Text; var TempICPartnerCompanyInformation: Record "Company Information" temporary): Retrieves company information from a partner company by name.GetICPartnerCompanyInformation(ICPartner: Record "IC Partner"; var TempICPartnerCompanyInformation: Record "Company Information" temporary): Retrieves company information from a partner company.GetICPartnerBankAccount(ICPartner: Record "IC Partner"; var TempICPartnerBankAccount: Record "Bank Account" temporary): Retrieves bank account information from a partner company.GetICPartnerICInboxTransaction(ICPartner: Record "IC Partner"; var TempICPartnerICInboxTransaction: Record "IC Inbox Transaction" temporary): Retrieves intercompany inbox transactions from a partner company.GetICPartnerHandledICInboxTransaction(ICPartner: Record "IC Partner"; var TempICPartnerHandledICInboxTransaction: Record "Handled IC Inbox Trans." temporary): Retrieves handled intercompany inbox transactions from a partner company.PostICTransactionToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxTransaction: Record "IC Inbox Transaction" temporary): Posts intercompany transaction data to partner’s inbox via API connection. Handles secure transmission of transaction headers with proper validation and telemetry tracking.PostICJournalLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxJnlLine: Record "IC Inbox Jnl. Line" temporary): Posts intercompany journal line data to partner’s inbox via API for transaction processing. Transfers journal entries between partner companies using staging buffer tables.PostICPurchaseHeaderToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxPurchaseHeader: Record "IC Inbox Purchase Header" temporary; var RegisteredPartner: Record "IC Partner" temporary): Posts intercompany purchase header data to partner’s inbox via API connection.PostICPurchaseLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxPurchaseLine: Record "IC Inbox Purchase Line" temporary): Posts intercompany purchase line data to partner’s inbox via API connection.PostICSalesHeaderToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxSalesHeader: Record "IC Inbox Sales Header" temporary; var RegisteredPartner: Record "IC Partner" temporary): Posts intercompany sales header data to partner’s inbox via API connection.PostICSalesLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxSalesLine: Record "IC Inbox Sales Line" temporary): Posts intercompany sales line data to partner’s inbox via API connection.PostICJournalLineDimensionToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxOutboxJnlLineDim: Record "IC Inbox/Outbox Jnl. Line Dim." temporary): Posts intercompany journal line dimension data to partner’s inbox via API connection.PostICDocumentDimensionToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICDocDim: Record "IC Document Dimension" temporary): Posts intercompany document dimension data to partner’s inbox via API connection.PostICCommentLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxCommentLine: Record "IC Comment Line" temporary): Posts intercompany comment line data to partner’s inbox via API connection.EnqueueAutoAcceptedICInboxTransaction(ICPartner: Record "IC Partner"; ICInboxTransaction: Record "IC Inbox Transaction"): Enqueues auto-accepted intercompany inbox transactions for asynchronous processing via job queue. Automatically processes transactions marked for auto-acceptance to streamline partner transaction flow.PopulateICInboxTransactionFromJson(IndividualToken: JsonToken; var TempICPartnerICInboxTransaction: Record "IC Inbox Transaction" temporary)(internal)PopulateTransactionDataFromICOutgoingNotification(IndividualObject: JsonObject)(internal)PopulateICInboxTransactionFromJson(IndividualToken: JsonToken)(internal)CreateJsonContentFromICIncomingNotification(var TempICIncomingNotification: Record "IC Incoming Notification" temporary; var ContentJsonText: Text)(internal)CreateJsonContentFromICOutgoingNotification(var TempICOutgoingNotification: Record "IC Outgoing Notification" temporary; var ContentJsonText: Text)(internal)InsertICIncomingNotification(var ICIncomingNotification: Record "IC Incoming Notification"): Creates and inserts a new incoming notification record for intercompany data exchange tracking. Initializes notification status and sets up job queue processing for partner communication.CleanupICOutgoingNotification(var ICOutgoingNotification: Record "IC Outgoing Notification"): Schedules cleanup of completed outgoing notification records via job queue processing. Removes processed notifications to maintain optimal system performance and data hygiene.
Plus 30 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 560 “CrossIntercompany Connector” (8 calls:
CreateJsonContentFromICIncomingNotification → RemoveCurlyBracketsAndUpperCases,CreateJsonContentFromICOutgoingNotification → RemoveCurlyBracketsAndUpperCases,GetICPartnerBankAccount → RequestICPartnerBankAccount, …) - Codeunit 428 “IC Mapping” (1 call:
PostICTransactionToICPartnerInbox → GetFeatureTelemetryName) - Codeunit 43 “Language” (1 call:
ExtractCurrentUserAndChangeToEnglish → GetDefaultApplicationLanguageId) - Codeunit 8703 “Feature Telemetry” (1 call:
PostICTransactionToICPartnerInbox → LogUsage)
Called by
- Codeunit 534 “IC Read Notification JR” (4 calls:
CleanupNotifications → CreateJsonContentFromICOutgoingNotification,GetICInboxTransaction → PopulateICInboxTransactionFromJson,ReadNotification → EnqueueAutoAcceptedICInboxTransaction, …) - Codeunit 533 “IC New Notification JR” (1 call:
SendNotification → CreateJsonContentFromICIncomingNotification) - Page 30415 “API IC Incoming Notification” (1 call:
OnInsertRecord → InsertICIncomingNotification) - Page 30425 “API IC Outgoing Notification” (1 call:
SyncronizationCompleted → CleanupICOutgoingNotification)
Implements
Recent changes
- 2026-08-26 #10631 Integration/main to releases 29.x 31a860b5 (releases/29.x, BC29, feature)
- 2026-08-21 #10488 Add integration event before inserting the outgoing IC sales line buffer (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: "IC Data Exchange API"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.