---
id: object/codeunit/6113
type: object
title: Codeunit 6113 "Item Data Migration Facade"
summary: Codeunit 6113 "Item Data Migration Facade" in Base Application (System.Integration). 49 public procedures, 11 events. Present since at least BC23, still in BC30, changed in BC24-25, BC27-28.
tier: official
language: en
tags:
  - codeunit
  - 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: 17cd4a4f7b122865f6d9d869b969a012c04550942747815c5494fdecbe182f20
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/DataMigration/ItemDataMigrationFacade.Codeunit.al
    title: src/Layers/W1/BaseApp/System/DataMigration/ItemDataMigrationFacade.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: 6113
name: Item Data Migration Facade
namespace: System.Integration
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"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 68
  events: 11
  subscribers: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 9
  calls: 5
  called_by: 4
  implements: 0
---

# Codeunit 6113 "Item Data Migration Facade"

> Codeunit 6113 "Item Data Migration Facade" in Base Application (System.Integration). 49 public procedures, 11 events. Present since at least BC23, still in BC30, changed in BC24-25, BC27-28.

Base Application · System.Integration · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/DataMigration/ItemDataMigrationFacade.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| TableNo | Data Migration Parameters |

## Events published

- `OnMigrateItem(RecordIdToMigrate: RecordID)` (integration)
  - subscribers: [Codeunit 1920 "MigrationQB Item Migrator"](../codeunit/1920.md) OnMigrateItem, [Codeunit 4019 "GP Item Migrator"](../codeunit/4019.md) OnMigrateItem, [Codeunit 47026 "SL Item Migrator"](../codeunit/47026.md) OnMigrateItem
- `OnMigrateItemPrice(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemSalesLineDiscount(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemTrackingCode(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateCostingMethod(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemUnitOfMeasure(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemDiscountGroup(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemTariffNo(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemDimensions(RecordIdToMigrate: RecordID)` (integration)
- `OnMigrateItemPostingGroups(RecordIdToMigrate: RecordID; ChartOfAccountsMigrated: Boolean)` (integration)
  - subscribers: [Codeunit 1920 "MigrationQB Item Migrator"](../codeunit/1920.md) OnMigrateItemPostingGroups, [Codeunit 4019 "GP Item Migrator"](../codeunit/4019.md) OnMigrateItemPostingGroups, [Codeunit 47026 "SL Item Migrator"](../codeunit/47026.md) OnMigrateItemPostingGroups
- `OnMigrateInventoryTransactions(RecordIdToMigrate: RecordID; ChartOfAccountsMigrated: Boolean)` (integration)
  - subscribers: [Codeunit 1920 "MigrationQB Item Migrator"](../codeunit/1920.md) OnMigrateInventoryTransactions, [Codeunit 4019 "GP Item Migrator"](../codeunit/4019.md) OnMigrateInventoryTransactions, [Codeunit 47026 "SL Item Migrator"](../codeunit/47026.md) OnMigrateInventoryTransactions

## Procedures

- `CreateItemIfNeeded(ItemNoToSet: Code[20]; ItemDescriptionToSet: Text[50]; ItemDescription2ToSet: Text[50]; ItemTypeToSet: Option Inventory,Service): Boolean`
- `CreateLocationIfNeeded(LocationCode: Code[10]; LocationName: Text[50]): Boolean`
- `DoesItemExist(ItemNo: Code[20]): Boolean`
- `SetGlobalItem(ItemNo: Code[20]): Boolean`
- `ModifyItem(RunTrigger: Boolean)`
- `CreateSalesLineDiscountIfNeeded(SalesTypeToSet: Option Customer,"Customer Disc. Group","All Customers",Campaign; SalesCodeToSet: Code[20]; TypeToSet: Option Item,"Item Disc. Group"; CodeToSet: Code[20]; LineDiscountPercentToSet: Decimal): Boolean`
- `CreateSalesLineDiscountIfNeeded(SourceType: Enum "Price Source Type"; SourceNo: Code[20]; AssetType: Enum "Price Asset Type"; AssetNo: Code[20]; MinimumQuantity: Decimal; LineDiscountPercent: Decimal): Boolean`
- `CreateCustDiscGroupIfNeeded(CustDiscGroupCodeToSet: Code[20]; DescriptionToSet: Text[50]): Boolean`
- `CreateItemDiscGroupIfNeeded(DiscGroupCodeToSet: Code[20]; DescriptionToSet: Text[50]): Boolean`
- `CreateSalesPriceIfNeeded(SalesTypeToSet: Option Customer,"Customer Price Group","All Customers",Campaign; SalesCodeToSet: Code[20]; ItemNoToSet: Code[20]; UnitPriceToSet: Decimal; CurrencyCodeToSet: Code[10]; StartingDateToSet: Date; UnitOfMeasureToSet: Code[10]; MinimumQuantityToSet: Decimal; VariantCodeToSet: Code[10]): Boolean`
- `CreateSalesPriceIfNeeded(SourceType: Enum "Price Source Type"; SourceNo: Code[20]; CurrencyCode: Code[10]; StartingDate: Date; AssetNo: Code[20]; VariantCode: Code[10]; UnitOfMeasure: Code[10]; MinimumQuantity: Decimal; UnitPrice: Decimal): Boolean`
- `CreateTariffNumberIfNeeded(NoToSet: Code[20]; DescriptionToSet: Text[50]; SupplementaryUnitToSet: Boolean): Boolean`
- `CreateUnitOfMeasureIfNeeded(CodeToSet: Code[10]; DescriptionToSet: Text[10]): Boolean`
- `CreateItemTrackingCodeIfNeeded(CodeToSet: Code[10]; DescriptionToSet: Text[50]; LotSpecificTrackingToSet: Boolean; SNSpecificTrackingToSet: Boolean): Boolean`
- `CreateInventoryPostingSetupIfNeeded(InventoryPostingGroupCode: Code[20]; InventoryPostingGroupDescription: Text[50]; LocationCode: Code[10]): Boolean`
- `CreateGeneralProductPostingSetupIfNeeded(GeneralProdPostingGroupCode: Code[20]; GeneralProdPostingGroupDescription: Text[50]; GeneralBusPostingGroupCode: Code[20]): Boolean`
- `CreateItemJournalBatchIfNeeded(ItemJournalBatchCode: Code[10]; NoSeriesCode: Code[20]; PostingNoSeriesCode: Code[20])`
- `CreateItemJournalLine(ItemJournalBatchCode: Code[10]; DocumentNo: Code[20]; Description: Text[50]; PostingDate: Date; Qty: Decimal; Amount: Decimal; LocationCode: Code[10]; GenProdPostingGroupGode: Code[20])`
- `SetItemJournalLineItemTracking(SerialNo: Code[50]; LotNo: Code[50])`
- `SetItemJournalLineDimension(DimensionCode: Code[20]; DimensionDescription: Text[50]; DimensionValueCode: Code[20]; DimensionValueName: Text[50])`
- `CreateDefaultDimensionAndRequirementsIfNeeded(DimensionCode: Text[20]; DimensionDescription: Text[50]; DimensionValueCode: Code[20]; DimensionValueName: Text[50])`
- `CreateBOMComponent(ComponentItemNo: Code[20]; Quantity: Decimal; Position: Code[10]; BOMType: Option)`
- `SetItemTrackingCode(TrackingCodeToSet: Code[10])`
- `SetBaseUnitOfMeasure(BaseUnitOfMeasureToSet: Code[10])`
- `SetPurchUnitOfMeasure(PurchUnitOfMeasureToSet: Code[10])`
- `SetItemDiscGroup(ItemDiscGroupToSet: Code[20])`
- `SetTariffNo(TariffNoToSet: Code[20])`
- `SetCostingMethod(CostingMethodToSet: Option FIFO,LIFO,Specific,"Average",Standard)`
- `SetUnitCost(UnitCostToSet: Decimal)`
- `SetStandardCost(StandardCostToSet: Decimal)`
- `SetVendorItemNo(VendorItemNoToSet: Text[20])`
- `SetNetWeight(NetWeightToSet: Decimal)`
- `SetUnitVolume(UnitVolumeToSet: Decimal)`
- `SetBlocked(BlockedToSet: Boolean)`
- `SetStockoutWarning(IsStockoutWarning: Boolean)`
- `SetPreventNegativeInventory(IsPreventNegativeInventory: Boolean)`
- `SetReorderQuantity(ReorderQuantityToSet: Decimal)`
- `SetAlternativeItemNo(AlternativeItemNoToSet: Code[20])`
- `SetVendorNo(VendorNoToSet: Code[20]): Boolean`
- `SetUnitPrice(UnitPriceToSet: Decimal)`
- `SetUnitListPrice(UnitListPriceToSet: Decimal)`
- `SetLastDateModified(LastDateModifiedToSet: Date)`
- `SetLastModifiedDateTime(LastModifiedDateTimeToSet: DateTime)`
- `CreateCustomerPriceGroupIfNeeded(CodeToSet: Code[10]; DescriptionToSet: Text[50]; PriceIncludesVatToSet: Boolean): Code[10]`
- `SetInventoryPostingSetupInventoryAccount(InventoryPostingGroupCode: Code[20]; LocationCode: Code[10]; InventoryAccountCode: Code[20])`
- `SetGeneralPostingSetupInventoryAdjmntAccount(GeneralProdPostingGroupCode: Code[20]; GeneralBusPostingGroupCode: Code[10]; InventoryAdjmntAccountCode: Code[20])`
- `SetInventoryPostingGroup(InventoryPostingGroupCode: Code[20]): Boolean`
- `SetGeneralProductPostingGroup(GenProductPostingGroupCode: Code[20]): Boolean`
- `SetSearchDescription(SearchDescriptionToSet: Code[50])`

Plus 8 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 1798 "Data Migration Parameters"](../table/1798.md)

## 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 1797 "Data Migration Facade Helper"](../codeunit/1797.md) (7 calls: `CreateCustomerPriceGroupIfNeeded → CreateCustomerPriceGroupIfNeeded`, `CreateDefaultDimensionAndRequirementsIfNeeded → CreateOnlyDefaultDimensionIfNeeded`, `CreateDefaultDimensionAndRequirementsIfNeeded → GetOrCreateDimension`, …)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (2 calls: `CreateSalesLineDiscountIfNeeded → IsExtendedPriceCalculationEnabled`, `CreateSalesPriceIfNeeded → IsExtendedPriceCalculationEnabled`)
- [Codeunit 7009 "CopyFromToPriceListLine"](../codeunit/7009.md) (2 calls: `InsertPriceListLine → InitLineNo`, `InsertPriceListLine → SetGenerateHeader`)
- [Codeunit 99000830 "Create Reserv. Entry"](../codeunit/99000830.md) (2 calls: `CreateItemTracking → CreateEntry`, `CreateItemTracking → CreateReservEntryFor`)
- [Codeunit 6101 "Data Migration Status Facade"](../codeunit/6101.md) (1 call: `OnRun → HasMigratedChartOfAccounts`)

## Called by

- [Codeunit 47026 "SL Item Migrator"](../codeunit/47026.md) (24 calls: `MigrateInventoryPostingGroup → CreateGeneralProductPostingSetupIfNeeded`, `MigrateInventoryPostingGroup → CreateInventoryPostingSetupIfNeeded`, `MigrateInventoryPostingGroup → DoesItemExist`, …)
- [Codeunit 4019 "GP Item Migrator"](../codeunit/4019.md) (23 calls: `CreateDefaultInventoryPostingGroup → CreateInventoryPostingSetupIfNeeded`, `CreateDefaultInventoryPostingGroup → SetInventoryPostingSetupInventoryAccount`, `CreateGeneralPostingSetup → CreateGeneralProductPostingSetupIfNeeded`, …)
- [Codeunit 1920 "MigrationQB Item Migrator"](../codeunit/1920.md) (11 calls: `MigrateItemDetails → CreateItemIfNeeded`, `MigrateItemDetails → ModifyItem`, `MigrateItemDetails → SetBaseUnitOfMeasure`, …)
- [Codeunit 47006 "SL Project Migrator"](../codeunit/47006.md) (1 call: `CreateResource → CreateUnitOfMeasureIfNeeded`)

## Across versions

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

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: "Item Data Migration Facade")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
