---
id: object/codeunit/428
type: object
title: Codeunit 428 "IC Mapping"
summary: Codeunit 428 "IC Mapping" in Base Application (Microsoft.Intercompany.GLAccount). 28 public procedures, 3 events. Introduced in BC26, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: "26"
  last_changed: null
  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: f6d7ae3ae76049e5a535d3add2eab7802ba3365b76bb90cef49a9b48e6ddb046
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Intercompany/GLAccount/ICMapping.Codeunit.al
    title: src/Layers/W1/BaseApp/Finance/Intercompany/GLAccount/ICMapping.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 428
name: IC Mapping
namespace: Microsoft.Intercompany.GLAccount
app: Base Application
extends: null
first_version: "26"
last_version: "30"
present_in:
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 34
  events: 3
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 22
  implements: 0
---

# Codeunit 428 "IC Mapping"

> Codeunit 428 "IC Mapping" in Base Application (Microsoft.Intercompany.GLAccount). 28 public procedures, 3 events. Introduced in BC26, still in BC30.

Base Application · Microsoft.Intercompany.GLAccount · BC26-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Intercompany/GLAccount/ICMapping.Codeunit.al) · facts from BC29

## Events published

- `OnAllowChangeCompanyForTempICAccounts(var IsChangeCompanyAllowed: Boolean; var TempPartnersICAccounts: Record "IC G/L Account" temporary)` (integration): Integration event raised before changing company context for IC account synchronization. Allows external code to prevent company context changes during account synchronization.
- `OnAllowChangeCompanyForTempICDimensions(var IsChangeCompanyAllowed: Boolean; var TempPartnersICDimensions: Record "IC Dimension" temporary; var TempPartnersICDimensionValues: Record "IC Dimension Value" temporary)` (integration): Integration event raised before changing company context for IC dimension synchronization. Allows external code to prevent company context changes during dimension synchronization.
- `OnAllowChangeCompanyForTempBankAccounts(var IsChangeCompanyAllowed: Boolean; var TempPartnersBankAccounts: Record "Bank Account" temporary)` (integration): Integration event raised before changing company context for bank account copying. Allows external code to prevent company context changes during bank account operations.

## Procedures

- `GetFeatureTelemetryName(): Text`: Returns the telemetry feature name for intercompany functionality tracking.
- `MapICAccounts(var ICAccounts: Record "IC G/L Account")`: Maps multiple intercompany G/L accounts to corresponding local G/L accounts. Creates automatic account mappings based on account number and type matching.
- `MapCompanyAccounts(var GLAccounts: Record "G/L Account")`: Maps multiple local G/L accounts to corresponding intercompany G/L accounts. Updates local accounts with intercompany account references for transaction mapping.
- `RemoveICMapping(var ICAccounts: Record "IC G/L Account")`: Removes mapping references from multiple intercompany G/L accounts. Clears the Map-to G/L Acc. No. field for specified intercompany accounts.
- `RemoveCompanyMapping(var GLAccounts: Record "G/L Account")`: Removes intercompany mapping references from multiple local G/L accounts. Clears the Default IC Partner G/L Acc. No field for specified G/L accounts.
- `MapAccounts(ICAccount: Record "IC G/L Account")`: Maps a single intercompany G/L account to corresponding local G/L account. Creates mapping when account numbers and types match between intercompany and local accounts.
- `MapAccounts(GLAccount: Record "G/L Account")`: Maps a single local G/L account to corresponding intercompany G/L account. Creates mapping when account numbers and types match between local and intercompany accounts.
- `RemoveMapAccounts(ICAccount: Record "IC G/L Account")`: Removes mapping reference from a single intercompany G/L account. Clears the Map-to G/L Acc. No. field if currently mapped.
- `RemoveMapAccounts(GLAccount: Record "G/L Account")`: Removes intercompany mapping reference from a single local G/L account. Clears the Default IC Partner G/L Acc. No field if currently mapped.
- `SynchronizeAccounts(DeleteExistingEntries: Boolean; PartnerCode: Code[20])`: Synchronizes intercompany G/L account structure with specified partner company. Downloads partner's account structure and updates local intercompany chart of accounts.
- `MapICDimensions(var ICDimensions: Record "IC Dimension")`: Maps multiple intercompany dimensions to corresponding local dimensions. Creates automatic dimension mappings based on dimension code matching.
- `MapCompanyDimensions(var Dimensions: Record Dimension)`: Maps multiple local dimensions to corresponding intercompany dimensions. Updates local dimensions with intercompany dimension references for transaction mapping.
- `RemoveICMapping(var ICDimension: Record "IC Dimension")`: Removes mapping references from multiple intercompany dimensions. Clears the Map-to Dimension Code field for specified intercompany dimensions.
- `RemoveCompanyMapping(var Dimensions: Record Dimension)`: Removes intercompany mapping references from multiple local dimensions. Clears the Map-to IC Dimension Code field for specified dimensions.
- `MapICDimensionValues(var ICDimensionValues: Record "IC Dimension Value")`: Maps multiple intercompany dimension values to corresponding local dimension values. Creates automatic dimension value mappings based on dimension and value code matching.
- `MapCompanyDimensionValues(var DimensionValues: Record "Dimension Value")`: Maps multiple local dimension values to corresponding intercompany dimension values. Updates local dimension values with intercompany references for transaction mapping.
- `RemoveICMapping(var ICDimensionValue: Record "IC Dimension Value")`: Removes mapping references from multiple intercompany dimension values. Clears mapping fields for specified intercompany dimension values.
- `RemoveCompanyMapping(var DimensionValues: Record "Dimension Value")`: Removes intercompany mapping references from multiple local dimension values. Clears mapping fields for specified dimension values.
- `MapIncomingICDimensions(ICDimension: Record "IC Dimension")`: Maps a single incoming intercompany dimension to corresponding local dimension. Creates mapping when dimension codes match between intercompany and local dimensions.
- `MapOutgoingICDimensions(Dimension: Record Dimension)`: Maps a single outgoing local dimension to corresponding intercompany dimension. Creates mapping when dimension codes match between local and intercompany dimensions.
- `MapIncomingICDimensionValues(var ICDimensionValue: Record "IC Dimension Value")`: Maps incoming intercompany dimension values to corresponding local dimension values. Creates mapping when dimension and value codes match with compatible types.
- `MapOutgoingICDimensionValues(var DimensionValue: Record "Dimension Value")`: Maps outgoing local dimension values to corresponding intercompany dimension values. Creates mapping when dimension and value codes match with compatible types.
- `RemoveMapDimensions(ICDimensions: Record "IC Dimension")`: Removes mapping references from a single intercompany dimension and its dimension values. Clears Map-to Dimension Code field and all related dimension value mappings.
- `RemoveMapDimensions(CompanyDimension: Record Dimension)`: Removes intercompany mapping references from a single local dimension and its dimension values. Clears Map-to IC Dimension Code field and all related dimension value mappings.
- `RemoveMapDimensionValues(var ICDimensionValues: Record "IC Dimension Value")`: Removes mapping reference from a single intercompany dimension value. Clears the Map-to Dimension Value Code field if currently mapped.
- `RemoveMapDimensionValues(var CompanyDimensionValue: Record "Dimension Value")`: Removes intercompany mapping reference from a single local dimension value. Clears the Map-to IC Dimension Value Code field if currently mapped.
- `SynchronizeDimensions(DeleteExistingEntries: Boolean; PartnerCode: Code[20])`: Synchronizes intercompany dimension structure with specified partner company. Downloads partner's dimension and dimension value structure for local synchronization.
- `CopyBankAccountsFromPartner(PartnerCode: Code[20])` (internal)

Plus 3 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 8703 "Feature Telemetry"](../codeunit/8703.md) (8 calls: `MapCompanyAccounts → LogUptake`, `MapCompanyDimensions → LogUptake`, `MapCompanyDimensionValues → LogUptake`, …)

## Called by

- [Codeunit 427 "ICInboxOutboxMgt"](../codeunit/427.md) (26 calls: `CreateHandledInbox → GetFeatureTelemetryName`, `CreateJournalLines → GetFeatureTelemetryName`, `CreateOutboxJnlLine → GetFeatureTelemetryName`, …)
- [Codeunit 534 "IC Read Notification JR"](../codeunit/534.md) (3 calls: `CleanupNotifications → GetFeatureTelemetryName`, `LogError → GetFeatureTelemetryName`, `ReadNotification → GetFeatureTelemetryName`)
- [Codeunit 431 "IC Outbox Export"](../codeunit/431.md) (2 calls: `OnRun → GetFeatureTelemetryName`, `RunOutboxTransactions → GetFeatureTelemetryName`)
- [Page 600 "IC Dimensions"](../page/600.md) (2 calls: `ExportToXML → GetFeatureTelemetryName`, `ImportFromXML → GetFeatureTelemetryName`)
- [Table 410 "IC G/L Account"](../table/410.md) (2 calls: `OnInsert → GetFeatureTelemetryName`, `OnModify → GetFeatureTelemetryName`)
- [Table 413 "IC Partner"](../table/413.md) (2 calls: `PropagateCustomerICPartner → GetFeatureTelemetryName`, `PropagateVendorICPartner → GetFeatureTelemetryName`)
- [Codeunit 435 "IC Inbox Import"](../codeunit/435.md) (1 call: `OnRun → GetFeatureTelemetryName`)
- [Codeunit 489 "IC Partner Change Monitor"](../codeunit/489.md) (1 call: `RegisterActivity → GetFeatureTelemetryName`)
- [Codeunit 532 "IC Data Exchange Database"](../codeunit/532.md) (1 call: `PostICTransactionToICPartnerInbox → GetFeatureTelemetryName`)
- [Codeunit 533 "IC New Notification JR"](../codeunit/533.md) (1 call: `SendNotification → GetFeatureTelemetryName`)
- [Codeunit 535 "IC Sync. Completed JR"](../codeunit/535.md) (1 call: `CleanSyncronizedData → GetFeatureTelemetryName`)
- [Codeunit 536 "IC Auto Accept JR"](../codeunit/536.md) (1 call: `OnRun → GetFeatureTelemetryName`)
- [Codeunit 561 "IC Data Exchange API"](../codeunit/561.md) (1 call: `PostICTransactionToICPartnerInbox → GetFeatureTelemetryName`)
- [Codeunit 790 "IC Inbox Outbox Subscribers"](../codeunit/790.md) (1 call: `AcceptOnAfterInsertICInboxTransaction → GetFeatureTelemetryName`)
- [Page 605 "IC Chart of Accounts"](../page/605.md) (1 call: `OnOpenPage → GetFeatureTelemetryName`)
- [Page 629 "IC Chart of Accounts Setup"](../page/629.md) (1 call: `OnClosePage → SynchronizeAccounts`)
- [Page 678 "IC Dimensions Setup"](../page/678.md) (1 call: `OnClosePage → SynchronizeDimensions`)
- [Page 705 "IC Dimensions Selector"](../page/705.md) (1 call: `CopyFromDimensionsToICDim → GetFeatureTelemetryName`)
- [Page 706 "IC Dim Values Selector"](../page/706.md) (1 call: `CopyFromDimValuesToICDimValues → GetFeatureTelemetryName`)
- [Table 412 "IC Dimension Value"](../table/412.md) (1 call: `OnInsert → GetFeatureTelemetryName`)
- [XMLport 10 "IC G/L Account Import/Export"](../xmlport/10.md) (1 call: `OnPostXmlPort → GetFeatureTelemetryName`)
- [XMLport 11 "IC Dimension Import/Export"](../xmlport/11.md) (1 call: `OnPostXmlPort → GetFeatureTelemetryName`)

## Across versions

- Present in: BC26-30
- Changed (declaration) in: none

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: "codeunit", object_name: "IC Mapping")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
