---
id: object/codeunit/5143
type: object
title: Codeunit 5143 "Contoso Item"
summary: Codeunit 5143 "Contoso Item" in ContosoCoffeeDemoDataset (Microsoft.DemoTool.Helpers). 29 public procedures. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - contosocoffeedemodataset
versions:
  introduced: "29"
  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: 527c2726c2f3dd00a6279ca4db12254cc0194eae141c3598fa7a640e5896c637
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso%20Helpers/ContosoItem.Codeunit.al
    title: src/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso Helpers/ContosoItem.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: 5143
name: Contoso Item
namespace: Microsoft.DemoTool.Helpers
app: ContosoCoffeeDemoDataset
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 30
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 26
  implements: 0
---

# Codeunit 5143 "Contoso Item"

> Codeunit 5143 "Contoso Item" in ContosoCoffeeDemoDataset (Microsoft.DemoTool.Helpers). 29 public procedures. Introduced in BC29, still in BC30.

ContosoCoffeeDemoDataset · Microsoft.DemoTool.Helpers · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/ContosoCoffeeDemoDataset/app/DemoTool/Contoso%20Helpers/ContosoItem.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Permissions | tabledata "Item" = rim, tabledata "Item Category" = rim, tabledata "Item Charge" = rim, tabledata "Item Unit of Measure" = r, tabledata "Item Tracking Code" = rim, tabledata "Item Variant" = rim, tabledata "Assembly Setup" = rim, tabledata "Item Journal Template" = rim, tabledata "Item Journal Batch... |

## Procedures

- `SetOverwriteData(Overwrite: Boolean)`
- `InsertItem(ItemNo: Code[20]; ItemType: Enum "Item Type"; Description: Text[100]; UnitPrice: Decimal; LastDirectCost: Decimal; GenProdPostingGroup: Code[20]; TaxGroup: Code[20]; InventoryPostingGroup: Code[20]; CostingMethod: Enum "Costing Method"; BaseUnitOfMeasure: code[10]; ItemCategoryCode: Code[20]; ItemTrackingCode: Code[10]; NetWeight: Decimal; PutAwayTemplateCode: Code[10]; ServiceItemGroupCode: Code[10]; CostingLotSize: Decimal; ReplenishmentSystem: Enum "Replenishment System"; RoundPrecision: Decimal; VendorNo: Code[20]; VendorItemNo: Text[20]; FlushingMethod: Enum "Flushing Method"; ReorderingPolicy: Enum "Reordering Policy"; IncludeInventory: Boolean; TimeBucket: Code[20]; Picture: Codeunit "Temp Blob"; GTIN: Code[14])`
- `InsertItem(ItemNo: Code[20]; ItemType: Enum "Item Type"; Description: Text[100]; UnitPrice: Decimal; LastDirectCost: Decimal; GenProdPostingGroup: Code[20]; TaxGroup: Code[20]; InventoryPostingGroup: Code[20]; CostingMethod: Enum "Costing Method"; BaseUnitOfMeasure: code[10]; ItemCategoryCode: Code[20]; ItemTrackingCode: Code[10]; NetWeight: Decimal; PutAwayTemplateCode: Code[10]; ServiceItemGroupCode: Code[10]; CostingLotSize: Decimal; ReplenishmentSystem: Enum "Replenishment System"; RoundPrecision: Decimal; VendorNo: Code[20]; VendorItemNo: Text[20]; FlushingMethod: Enum "Flushing Method"; ReorderingPolicy: Enum "Reordering Policy"; IncludeInventory: Boolean; TimeBucket: Code[20]; Picture: Codeunit "Temp Blob"; GTIN: Code[14]; UnitCost: Decimal; ReorderPoint: Decimal; GrossWeight: Decimal; UnitVolume: Decimal; TariffNo: Code[20])`
- `InsertInventoryItem(ItemNo: Code[20]; Description: Text[100]; UnitPrice: Decimal; LastDirectCost: Decimal; GenProdPostingGroup: Code[20]; TaxGroup: Code[20]; InventoryPostingGroup: Code[20]; CostingMethod: Enum "Costing Method"; BaseUnitOfMeasure: Code[10]; ItemCategoryCode: Code[20]; ItemTrackingCode: Code[10]; NetWeight: Decimal; PutAwayTemplateCode: Code[10]; Picture: Codeunit "Temp Blob"; GTIN: Code[14])`
- `InsertInventoryItem(ItemNo: Code[20]; Description: Text[100]; UnitPrice: Decimal; LastDirectCost: Decimal; GenProdPostingGroup: Code[20]; TaxGroup: Code[20]; InventoryPostingGroup: Code[20]; CostingMethod: Enum "Costing Method"; BaseUnitOfMeasure: Code[10]; ItemCategoryCode: Code[20]; NetWeight: Decimal; ServiceItemGroupCode: Code[10]; Picture: Codeunit "Temp Blob")`
- `InsertInventoryItem(ItemNo: Code[20]; Description: Text[100]; BaseUnitofMeasure: Code[10]; InventoryPostingGroup: Code[20]; UnitPrice: Decimal; UnitCost: Decimal; VendorNo: Code[20]; ReorderPoint: Decimal; GrossWeight: Decimal; NetWeight: Decimal; UnitVolume: Decimal; TariffNo: Code[20]; GenProdPostingGroup: Code[20]; Picture: Codeunit "Temp Blob"; TaxGroupCode: Code[20]; VATProdPostingGroup: Code[20]; SalesUnitofMeasure: Code[10]; PurchUnitofMeasure: Code[10]; ItemCategoryCode: Code[20])`
- `InsertServiceItem(ItemNo: Code[20]; Description: Text[100]; UnitPrice: Decimal; LastDirectCost: Decimal; GenProdPostingGroup: Code[20]; TaxGroup: Code[20]; BaseUnitOfMeasure: Code[10]; ItemCategoryCode: Code[20]; Picture: Codeunit "Temp Blob")`
- `InsertNonInventoryItem(ItemNo: Code[20]; Description: Text[100]; UnitPrice: Decimal; LastDirectCost: Decimal; GenProdPostingGroup: Code[20]; TaxGroup: Code[20]; BaseUnitOfMeasure: Code[10]; ItemCategoryCode: Code[20]; Picture: Codeunit "Temp Blob")`
- `InsertItemCategory(ItemCategoryCode: Code[20]; Description: Text[100]; ParentCategory: Code[20])`
- `InsertItemCategory(Code: Code[20]; ParentCategory: Code[20]; Description: Text[100]; Indentation: Integer; PresentationOrder: Integer)`
- `InsertItemTrackingCode(TrackingCode: Code[10]; Description: Text[50]; SNSpecificTracking: Boolean; LotSpecificTracking: Boolean; ManWarrantyDateEntryReqd: Boolean; ManExpirDateEntryReqd: Boolean)`
- `InsertItemTrackingCode(TrackingCode: Code[10]; Description: Text[50]; SNSpecificTracking: Boolean; LotSpecificTracking: Boolean; ManWarrantyDateEntryReqd: Boolean; ManExpirDateEntryReqd: Boolean; SNSalesInboundTracking: Boolean; SNSalesOutboundTracking: Boolean)`
- `InsertItemVariant(ItemNo: Code[20]; VariantCode: Code[10]; Description: Text[30])`
- `InsertItemVariant(ItemNo: Code[20]; VariantCode: Code[10]; Description: Text[30]; Picture: Codeunit "Temp Blob")`
- `InsertItemJournalBatch(TemplateName: Code[10]; Name: Text[30]; Description: Text[100])`
- `InsertItemJournalTemplate(Name: Code[10]; Description: Text[80]; ItemJournalTemplateType: Enum "Item Journal Template Type"; Recurring: Boolean; SourceCode: Code[10])`
- `InsertItemJournalTemplate(Name: Code[10]; Description: Text[80]; ItemJournalTemplateType: Enum "Item Journal Template Type"; Recurring: Boolean; SourceCode: Code[10]; TestReportID: Integer; PageID: Integer; PostingReportID: Integer; NoSeries: Code[20]; WhseRegisterReportID: Integer)`
- `InsertItemJournalLine(TemplateName: Code[10]; BatchName: Code[10]; ItemNo: Code[20]; DocumentNo: Code[20]; EntryType: Enum "Item Ledger Entry Type"; Quantity: Decimal; LocationCode: Code[10]; PostingDate: Date)`
- `InsertItemJournalLine(TemplateName: Code[10]; BatchName: Code[10]; ItemNo: Code[20]; DocumentNo: Code[20]; EntryType: Enum "Item Ledger Entry Type"; Quantity: Decimal; LocationCode: Code[10]; PostingDate: Date; WithLineNoGap: Boolean)`
- `InsertItemReference(ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10]; ReferenceType: Enum "Item Reference Type"; ReferenceTypeNo: Code[20]; ReferenceNo: Code[50])`
- `InsertItemReference(ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10]; ReferenceType: Enum "Item Reference Type"; ReferenceTypeNo: Code[20]; ReferenceNo: Code[50]; Description: Text[100])`
- `InsertAssemblySetup(StockoutWarning: Boolean; AssemblyOrderNos: Code[20]; AssemblyQuoteNos: Code[20]; BlanketAssemblyOrderNos: Code[20]; PostedAssemblyOrderNos: Code[20]; CopyCommentswhenPosting: Boolean; CreateMovementsAutomatically: Boolean)`
- `InsertAssemblySetup(StockoutWarning: Boolean; AssemblyOrderNos: Code[20]; AssemblyQuoteNos: Code[20]; BlanketAssemblyOrderNos: Code[20]; PostedAssemblyOrderNos: Code[20]; CopyCommentswhenPosting: Boolean; CreateMovementsAutomatically: Boolean; DefaultGenBusPostGroup: Code[20])`
- `InsertInventorySetup(AutomaticCostPosting: Boolean; ItemNos: Code[20]; AutomaticCostAdjustment: Enum "Automatic Cost Adjustment Type"; TransferOrderNos: Code[20]; PostedTransferShptNos: Code[20]; PostedTransferRcptNos: Code[20]; NonstockItemNos: Code[20]; InvtReceiptNos: Code[20]; PostedInvtReceiptNos: Code[20]; InvtShipmentNos: Code[20]; PostedInvtShipmentNos: Code[20]; PostedDirectTransNos: Code[20]; PhysInvtOrderNos: Code[20]; PostedPhysInvtOrderNos: Code[20])`
- `InsertItemAttribute(Name: Text[250]; Blocked: Boolean; AttributeType: Option; UnitofMeasure: Text[30]): Record "Item Attribute"`
- `InsertItemAttributeValue(ItemAttribute: Record "Item Attribute"; Value: Text[250]; NumericValue: Decimal): Record "Item Attribute Value"`
- `InsertItemAttributeValueMapping(TableID: Integer; No: Code[20]; ItemAttributeID: Integer; ItemAttributeValueID: Integer)`
- `InsertItemCharge(No: Code[20]; Description: Text[100]; GenProdPostingGroup: Code[20]; VATProdPostingGroup: Code[20]; SearchDescription: Code[100])`
- `InsertItemSubstitution(ItemSubsitutionType: Enum "Item Substitution Type"; No: Code[20]; VariantCode: Code[10]; SubstituteType: Enum "Item Substitute Type"; SubstituteNo: Code[20]; SubstituteVariantCode: Code[10]; Description: Text[100]; Interchangeable: Boolean)`

Plus 1 local procedures.

## Called by

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 4770 "Create Mfg Item"](../codeunit/4770.md) (5 calls: `CreateBOMAndRoutingItems → InsertItem`, `CreateFlushingItems → InsertItem`, `CreateItemTrackingItems → InsertItem`, …)
- [Codeunit 5393 "Create Item Attribute"](../codeunit/5393.md) (3 calls: `OnRun → InsertItemAttribute`, `OnRun → InsertItemAttributeValue`, `OnRun → InsertItemAttributeValueMapping`)
- [Codeunit 4765 "Create Mfg Item Journal Setup"](../codeunit/4765.md) (2 calls: `OnRun → InsertItemJournalBatch`, `OnRun → InsertItemJournalTemplate`)
- [Codeunit 4793 "Create Whse Item"](../codeunit/4793.md) (2 calls: `CreateItemReferences → InsertItemReference`, `CreateWhseItems → InsertInventoryItem`)
- [Codeunit 5104 "Create Svc Item"](../codeunit/5104.md) (2 calls: `CreateItems → InsertInventoryItem`, `CreateItems → InsertServiceItem`)
- [Codeunit 5154 "Create Svc Item Journal"](../codeunit/5154.md) (2 calls: `OnRun → InsertItemJournalBatch`, `OnRun → InsertItemJournalTemplate`)
- [Codeunit 5192 "Create Job Item"](../codeunit/5192.md) (2 calls: `OnRun → InsertInventoryItem`, `OnRun → InsertServiceItem`)
- [Codeunit 5198 "Create Job Item Journal"](../codeunit/5198.md) (2 calls: `OnRun → InsertItemJournalBatch`, `OnRun → InsertItemJournalTemplate`)
- [Codeunit 5537 "Create Item"](../codeunit/5537.md) (2 calls: `CreateItem → InsertInventoryItem`, `CreateItemSubstitution → InsertItemSubstitution`)
- [Codeunit 4766 "Create Mfg Item Category"](../codeunit/4766.md) (1 call: `OnRun → InsertItemCategory`)
- [Codeunit 4779 "Create Mfg Item Jnl Line"](../codeunit/4779.md) (1 call: `OnRun → InsertItemJournalLine`)
- [Codeunit 5106 "Create Svc Item Category"](../codeunit/5106.md) (1 call: `OnRun → InsertItemCategory`)
- [Codeunit 5110 "Create Svc Item Jnl Lines"](../codeunit/5110.md) (1 call: `OnRun → InsertItemJournalLine`)
- [Codeunit 5144 "Create Common Item Tracking"](../codeunit/5144.md) (1 call: `OnRun → InsertItemTrackingCode`)
- [Codeunit 5145 "Create Whse Item Category"](../codeunit/5145.md) (1 call: `OnRun → InsertItemCategory`)
- [Codeunit 5189 "Create Job Item Jnl Lines"](../codeunit/5189.md) (1 call: `OnRun → InsertItemJournalLine`)
- [Codeunit 5254 "Create Sust. Item"](../codeunit/5254.md) (1 call: `OnRun → InsertNonInventoryItem`)
- [Codeunit 5255 "Create Sust Item Category"](../codeunit/5255.md) (1 call: `OnRun → InsertItemCategory`)
- [Codeunit 5273 "Create Inventory Setup"](../codeunit/5273.md) (1 call: `OnRun → InsertInventorySetup`)
- [Codeunit 5301 "Create Assembly Setup"](../codeunit/5301.md) (1 call: `OnRun → InsertAssemblySetup`)
- [Codeunit 5380 "Create Item Category"](../codeunit/5380.md) (1 call: `OnRun → InsertItemCategory`)
- [Codeunit 5386 "Create Item Charge"](../codeunit/5386.md) (1 call: `OnRun → InsertItemCharge`)
- [Codeunit 5388 "Create Item Tracking Code"](../codeunit/5388.md) (1 call: `OnRun → InsertItemTrackingCode`)
- [Codeunit 5423 "Create Item Journal Template"](../codeunit/5423.md) (1 call: `OnRun → InsertItemJournalTemplate`)
- [Codeunit 5538 "Create Item Jnl Line"](../codeunit/5538.md) (1 call: `OnRun → InsertItemJournalLine`)
- [Codeunit 5664 "Create Item Reference"](../codeunit/5664.md) (1 call: `OnRun → InsertItemReference`)

## Across versions

- Present in: BC29-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: "Contoso Item")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
