---
id: object/codeunit/6500
type: object
title: Codeunit 6500 "Item Tracking Management"
summary: Codeunit 6500 "Item Tracking Management" in Base Application (Microsoft.Inventory.Tracking). 91 public procedures, 129 events. Present since at least BC23, still in BC30, changed in BC24-29.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "29"
  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: 32a6546fb8b1f2cc27d3c16be31fd6f4cfe13cd19a02a6e1b00cabc2eb70f84a
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al
    title: src/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9898
    - change/bcapps/9754
    - change/bcapps/8905
object_type: codeunit
object_id: 6500
name: Item Tracking Management
namespace: Microsoft.Inventory.Tracking
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"
  - "26"
  - "27"
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 256
  events: 129
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 18
  calls: 9
  called_by: 132
  implements: 0
---

# Codeunit 6500 "Item Tracking Management"

> Codeunit 6500 "Item Tracking Management" in Base Application (Microsoft.Inventory.Tracking). 91 public procedures, 129 events. Present since at least BC23, still in BC30, changed in BC24-29.

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

## Properties

| Property | Value |
|---|---|
| Permissions | TableData "Item Entry Relation" = rd, TableData "Value Entry Relation" = rd, TableData "Whse. Item Tracking Line" = rimd, TableData "Tracking Specification" = rd |

## Events published

- `OnAfterCopyHandledItemTrkgToInvLine(FromSalesLine: Record "Sales Line"; var ToSalesLine: Record "Sales Line")` (integration)
- `OnBeforeCopyItemLedgEntryTrkgToPurchLn(var ItemLedgerEntryBuffer: Record "Item Ledger Entry"; ToPurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyItemLedgEntryTrkgToSalesLn(var TempItemLedgerEntryBuffer: Record "Item Ledger Entry" temporary; ToSalesLine: Record "Sales Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeTestExpDateOnTrackingSpec(var TempTrackingSpecification: Record "Tracking Specification" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeSplitPostedWhseReceiptLine(PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary; var IsHandled: Boolean)` (integration)
- `OnSplitPostedWhseReceiptLineOnNotFindWhseItemEntryRelation(PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseReceiptLine: Record "Posted Whse. Receipt Line" temporary; var IsHandled: Boolean)` (integration)
- `OnAfterCreateTrackingSpecification(var TrackingSpecification: Record "Tracking Specification"; ReservationEntry: Record "Reservation Entry")` (integration)
- `OnAfterGetWhseExpirationDate(ItemNo: Code[20]; VariantCode: Code[20]; Location: Record Location; LotNo: Code[50]; SerialNo: Code[50]; var ExpDate: Date; var ExpDateFound: Boolean)` (integration)
- `OnAfterInsertReservEntryForPurchLine(var ReservEntry: Record "Reservation Entry"; PurchLine: Record "Purchase Line")` (integration)
- `OnAfterInsertReservEntryForSalesLine(var ReservEntry: Record "Reservation Entry"; SalesLine: Record "Sales Line")` (integration)
- `OnAfterInsertWhseItemTrkgLinesLoop(var PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; var WhseItemEntryRelation: Record "Whse. Item Entry Relation"; var WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
- `OnAfterItemTrkgTypeIsManagedByWhse(Type: Integer; var TypeIsManagedByWhse: Boolean)` (integration)
  - subscribers: [Codeunit 6483 "Serv. Item Tracking Mgt."](../codeunit/6483.md) OnAfterItemTrkgTypeIsManagedByWhse
- `OnAfterRetrieveAppliedExpirationDate(var TempItemLedgEntry: Record "Item Ledger Entry" temporary; ItemApplicationEntry: Record "Item Application Entry")` (integration)
- `OnAfterSynchronizeItemTracking(var ReservationEntry: Record "Reservation Entry"; ToRowID: Text[250])` (integration)
- `OnBeforeCalcQtyToHandleForTrackedQtyOnDocumentLine(var ReservationEntry: Record "Reservation Entry"; var IsHandled: Boolean; SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer; var Result: Decimal)` (integration)
- `OnBeforeCheckWhseItemTrkg(var TempWhseItemTrkgLine: Record "Whse. Item Tracking Line" temporary; WhseWkshLine: Record "Whse. Worksheet Line"; var Checked: Boolean)` (integration)
- `OnBeforeCheckItemTrkgInfBeforePost(var TempGlobalWhseItemTrkgLine: Record "Whse. Item Tracking Line" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateWhseItemTrkgForReceipt(var WhseItemTrackingLine: Record "Whse. Item Tracking Line"; WhseWkshLine: Record "Whse. Worksheet Line"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeCreateWhseItemTrkgForResEntry(var WhseItemTrackingLine: Record "Whse. Item Tracking Line"; SourceReservEntry: Record "Reservation Entry"; WhseWkshLine: Record "Whse. Worksheet Line")` (integration)
- `OnBeforeExistingExpirationDate(ItemNo: Code[20]; Variant: Code[20]; LotNo: Code[50]; SerialNo: Code[50]; TestMultiple: Boolean; var EntriesExist: Boolean; var ExpDate: Date; var IsHandled: Boolean; var ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeExistingExpirationDateAndQty(ItemNo: Code[20]; Variant: Code[20]; LotNo: Code[50]; SerialNo: Code[50]; SumOfEntries: Decimal; var ExpDate: Date; var IsHandled: Boolean)` (integration)
- `OnBeforeFindTempHandlingSpecification(var TempTrackingSpecification: Record "Tracking Specification" temporary; ReservEntry: Record "Reservation Entry")` (integration)
- `OnBeforeInitItemTrackingForTempWhseWorksheetLine(WhseDocNo: Code[20]; WhseDocLineNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeItemTrkgIsManagedByWhse(Type: Integer; Subtype: Integer; ID: Code[20]; ProdOrderLine: Integer; RefNo: Integer; LocationCode: Code[10]; ItemNo: Code[20]; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertReservEntryForPurchLine(var ReservEntry: Record "Reservation Entry"; PurchLine: Record "Purchase Line"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeInsertReservEntryForSalesLine(var ReservEntry: Record "Reservation Entry"; SalesLine: Record "Sales Line"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeInsertSplitPostedWhseRcptLine(var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary; PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; WhseItemEntryRelation: Record "Whse. Item Entry Relation"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeInsertSplitInternalPutAwayLine(var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary; PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
- `OnBeforeModifySplitPostedWhseRcptLine(var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary; PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; WhseItemEntryRelation: Record "Whse. Item Entry Relation"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeRegisterNewItemTrackingLines(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeSumUpItemTracking(var ReservEntry: Record "Reservation Entry"; var TempHandlingSpecification: Record "Tracking Specification" temporary; var SumPerLine: Boolean; var SumPerTracking: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeTempTrackingSpecSummedUpModify(var TempTrackingSpecSummedUp: Record "Tracking Specification" temporary; var TempInvoicingTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeTempWhseJnlLine2Insert(var TempWhseJnlLineTo: Record "Warehouse Journal Line" temporary; TempWhseJnlLineFrom: Record "Warehouse Journal Line" temporary; var TempSplitTrackingSpec: Record "Tracking Specification" temporary; TransferTo: Boolean; WhseSNRequired: Boolean; WhseLNRequired: Boolean)` (integration)
- `OnBeforeTempHandlingSpecificationInsert(var TempTrackingSpecification: Record "Tracking Specification" temporary; ReservationEntry: Record "Reservation Entry"; var ItemTrackingCode: Record "Item Tracking Code"; var EntriesExist: Boolean)` (integration)
- `OnBeforeWhseExistingExpirationDate(ItemNo: Code[20]; Variant: Code[20]; Location: Record Location; LotNo: Code[50]; SerialNo: Code[50]; var EntriesExist: Boolean; var ExpDate: Date; var IsHandled: Boolean)` (integration)
- `OnBeforeWhseItemTrackingLineInsert(var WhseItemTrackingLine: Record "Whse. Item Tracking Line"; SourceReservEntry: Record "Reservation Entry")` (integration)
- `OnCalcWhseItemTrkgLineOnAfterCalcBaseQuantities(var WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
- `OnCalcQtyToHandleForTrackedQtyOnDocumentLineOnAfterReservEntrySetFilters(var ReservEntry: Record "Reservation Entry")` (integration)
- `OnCopyHandledItemTrkgToInvLineOnBeforeInsertProspectReservEntry(var ToSalesLine: Record "Sales Line")` (integration)
- `OnCopyLotNoInformationOnBeforeNewLotNoInfoInsert(var NewLotNoInfo: Record "Lot No. Information"; LotNoInfo: Record "Lot No. Information")` (integration)
- `OnSyncActivItemTrkgOnBeforeInsertTempReservEntry(var TempReservEntry: Record "Reservation Entry" temporary; WhseActivLine: Record "Warehouse Activity Line")` (integration)
- `OnSyncActivItemTrkgOnBeforeTempTrackingSpecModify(var TrackingSpecification: Record "Tracking Specification"; var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnBeforeLookupTrackingNoInfo(ItemNo: Code[20]; Variant: Code[20]; ItemTrackingType: Enum "Item Tracking Type"; ItemTrackingNo: Code[50]; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertWhseItemTrkgLines(var WhseItemTrkgLine: Record "Whse. Item Tracking Line"; PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; WhseItemEntryRelation: Record "Whse. Item Entry Relation"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeModifyWhseItemTrkgLines(var WhseItemTrkgLine: Record "Whse. Item Tracking Line"; PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; WhseItemEntryRelation: Record "Whse. Item Entry Relation"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnBeforeRegisterItemTrackingLinesLoop(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeRetrieveAppliedExpirationDate(var TempItemLedgEntry: Record "Item Ledger Entry" temporary)` (integration)
- `OnBeforeInsertWhseItemTrkgLinesLoop(var PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; var WhseItemEntryRelation: Record "Whse. Item Entry Relation"; var WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
- `OnCopyItemTracking3OnAfterSwapSign(var TempReservEntry: Record "Reservation Entry" temporary; ReservEntry: Record "Reservation Entry")` (integration)
- `OnCopyItemTracking3OnAfterTempReservEntryInsert(var TempReservEntry: Record "Reservation Entry" temporary; ReservEntry: Record "Reservation Entry")` (integration)
- `OnCheckItemTrkgInfBeforePostOnBeforeTempItemLotInfoInsert(var TempLotNoInfo: Record "Lot No. Information" temporary; WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
- `OnCheckQtyToInvoiceMatchItemTrackingOnAfterTempTrackingSpecSummedUpSetFilters(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnCopyItemLedgEntryTrkgToDocLine(var ItemLedgerEntry: Record "Item Ledger Entry"; var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnCopyItemLedgEntryTrkgToSalesLnOnBeforeTempItemLedgEntryBufFindSet(var TempItemLedgEntryBuf: Record "Item Ledger Entry" temporary; ToSalesLine: Record "Sales Line"; FillExactCostRevLink: Boolean; var MissingExCostRevLink: Boolean; FromPricesInclVAT: Boolean; ToPricesInclVAT: Boolean; FromShptOrRcpt: Boolean)` (integration)
- `OnCopyItemLedgEntryTrkgToSalesLnOnbeforeToSalesLineInsert(var ToSalesLine: Record "Sales Line"; var TempItemLedgEntryBuf: Record "Item Ledger Entry" temporary)` (integration)
- `OnCreateWhseItemTrackingBatchOnBeforeCreateWhseItemTrackingLines(WhseWkshLine: Record "Whse. Worksheet Line"; var SourceReservEntry: Record "Reservation Entry"; SourceType: Integer; var IsHandled: Boolean)` (integration)
- `OnIsOrderNetworkEntity(Type: Integer; Subtype: Integer; var IsNetworkEntity: Boolean)` (integration)
  - subscribers: [Codeunit 6483 "Serv. Item Tracking Mgt."](../codeunit/6483.md) OnIsOrderNetworkEntity
- `OnInitReservEntryOnBeforeCopyTrackingFromItemLedgEntry(var ReservEntry: Record "Reservation Entry"; var ItemLedgEntryBuf: Record "Item Ledger Entry"; var EntriesExist: Boolean)` (integration)
- `OnInitTrackingSpecificationOnBeforeCalcWhseItemTrackingLines(var WhseWorksheetLine: Record "Whse. Worksheet Line"; var WhseItemTrackingLine: Record "Whse. Item Tracking Line"; var IsHandled: Boolean)` (integration)
- `OnInsertReservationEntryFromTrackingSpecOnBeforeInsert(var ReservEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterGetItemTrackingSettings(var ItemTrackingCode: Record "Item Tracking Code")` (integration)
- `OnAfterGetItemTrackingSetup(var ItemTrackingCode: Record "Item Tracking Code"; var ItemTrackingSetup: Record "Item Tracking Setup"; EntryType: Enum "Item Ledger Entry Type"; Inbound: Boolean)` (integration)
- `OnAfterInitReservEntry(var ReservEntry: Record "Reservation Entry"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnAfterReserveEntryFilter(ItemJournalLine: Record "Item Journal Line"; var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnBeforeSplitInternalPutAwayLine(PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary; var IsHandled: Boolean)` (integration)
- `OnRetrieveItemTrackingFromReservEntryFilter(var ReservEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line")` (integration)
- `OnRetrieveItemTrackingFromReservEntryOnAfterDeleteReservEntries(var TempTrackingSpecification: Record "Tracking Specification" temporary; ItemJnlLine: Record "Item Journal Line"; var ReservEntry: Record "Reservation Entry")` (integration)
- `OnAfterSynchronizeItemTracking2(FromReservEntry: Record "Reservation Entry"; ReservEntry2: Record "Reservation Entry")` (integration)
- `OnAfterSplitWhseJnlLine(var TempWhseJnlLine: Record "Warehouse Journal Line" temporary; var TempWhseJnlLine2: Record "Warehouse Journal Line" temporary)` (integration)
- `OnAfterSplitPostedWhseReceiptLine(PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary)` (integration)
- `OnSynchronizeWhseActivItemTrkgOnAfterSetExpirationDate(var WarehouseActivityLine: Record "Warehouse Activity Line"; var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnSynchronizeWhseActivItemTrkgOnAfterSetToRowID(var WarehouseActivityLine: Record "Warehouse Activity Line"; var ToRowID: Text[250])` (integration)
  - subscribers: [Codeunit 20575 "Subc. Invt. Put-away Ext"](../codeunit/20575.md) RedirectSubcLastOperationTrackingToProdOrderLine_OnSynchronizeWhseActivItemTrkgOnAfterSetToRowID
- `OnTempPostedWhseRcptLineSetFilters(var PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; ItemLedgerEntry: Record "Item Ledger Entry"; WhseItemEntryRelation: Record "Whse. Item Entry Relation")` (integration)
- `OnSplitWhseJnlLineOnAfterCheckWhseItemTrkgSetup(var TempWhseJnlLine: Record "Warehouse Journal Line" temporary; var TempWhseSplitTrackingSpec: Record "Tracking Specification" temporary; var WhseSNRequired: Boolean; var WhseLNRequired: Boolean; var TempWhseJnlLine2: Record "Warehouse Journal Line" temporary; var IsHandled: Boolean)` (integration)
- `OnSplitWhseJnlLineOnBeforeCheckSerialNo(var TempWhseTrackingSpecification: Record "Tracking Specification" temporary; var IsHandled: Boolean)` (integration)
- `OnAfterGetWhseItemTrkgSetupOnAfterItemTrackingCodeGet(var ItemTrackingCode: Record "Item Tracking Code"; var WhseItemTrackingSetup: Record "Item Tracking Setup")` (integration)
- `OnSplitWhseJnlLineOnAfterSetFilters(var TempWhseSplitTrackingSpec: Record "Tracking Specification" temporary; var TempWhseJnlLine: Record "Warehouse Journal Line" temporary)` (integration)
- `OnBeforeCollectItemEntryRelation(var TempItemLedgerEntry: Record "Item Ledger Entry" temporary; SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; TotalQty: Decimal; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyItemTracking3(var ReservEntry: Record "Reservation Entry"; ToRowID: Text[250]; SwapSign: Boolean; SkipReservation: Boolean)` (integration)
- `OnBeforeCopyHandledItemTrkgToInvLine(FromSalesLine: Record "Sales Line"; var ToSalesInvLine: Record "Sales Line"; var IsHandled: Boolean)` (integration)
- `OnRegisterNewItemTrackingLinesOnAfterClearItemTrackingLines(var ItemTrackingLines: Page "Item Tracking Lines")` (integration)
- `OnRegisterNewItemTrackingLinesOnBeforeRegisterItemTrackingLines(var TempTrackingSpecification: Record "Tracking Specification"; var ItemTrackingLines: Page "Item Tracking Lines")` (integration)
- `OnSplitWhseJnlLineOnAfterCopyTrackingByToTransfer(var TempWhseSplitTrackingSpec: Record "Tracking Specification"; var TempWhseJnlLine2: Record "Warehouse Journal Line"; ToTransfer: Boolean)` (integration)
- `OnCollectItemTrkgInfWhseJnlLineOnAfterSetFilters(var WhseItemTrackingLine: Record "Whse. Item Tracking Line"; WhseJnlLine: Record "Warehouse Journal Line")` (integration)
- `OnAfterCreateSNInformation(var SerialNoInfo: Record "Serial No. Information"; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterCreateLotInformation(var LotNoInfo: Record "Lot No. Information"; var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnSynchronizeWhseActivItemTrkgOnAfterAssignAbsQty(var TempTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeGetWhseItemTrkgSetup(ItemNo: Code[20]; var WhseItemTrackingSetup: Record "Item Tracking Setup"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeFindLastItemLedgerEntry(ItemNo: Code[20]; VariantCode: Code[20]; ItemTrackingSetup: Record "Item Tracking Setup"; var ItemLedgEntry: Record "Item Ledger Entry"; var EntryFound: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeGetQtyBaseFromShippedQtyNotReturned(ShippedQtyNotReturned: Decimal; ToSalesLine: Record "Sales Line"; var Result: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeModifyTempReservEntrySetIfTransfer(var TempReservEntry: Record "Reservation Entry"; var IsHandled: Boolean)` (integration)
- `OnInsertReservEntryForSalesLineOnBeforeInitReservEntry(var ItemLedgEntryBuf: Record "Item Ledger Entry"; SalesLine: Record "Sales Line")` (integration)
- `OnRemoveItemTrkgFromReservEntryOnAfterReservEntryLoop(var ReservEntry: Record "Reservation Entry"; OriginalReservEntry: Record "Reservation Entry")` (integration)
- `OnBeforeSynchronizeWhseItemTracking(var TempTrackingSpecification: Record "Tracking Specification" temporary; RegPickNo: Code[20]; Deletion: Boolean)` (integration)
- `OnSynchronizeWhseItemTrackingOnAfterTempTrackingSpecificationLoop(var TempTrackingSpecification: Record "Tracking Specification" temporary; RegPickNo: Code[20]; Deletion: Boolean)` (integration)
- `OnSynchronizeWhseItemTrackingOnBeforeReservEntryModify(var ReservEntry: Record "Reservation Entry"; var TempTrackingSpecification: Record "Tracking Specification" temporary; RegPickNo: Code[20]; Deletion: Boolean)` (integration)
- `OnSynchronizeWhseItemTrackingOnAfterZeroQtyToHandleLoop(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnSynchronizeWhseItemTrackingOnAfterUpdateReservEntryForPick(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnSynchronizeItemTracking2OnAfterCalcShouldInsertTrkgSpec(var TempTrkgSpec1: Record "Tracking Specification" temporary; var TempTrkgSpec2: Record "Tracking Specification" temporary; var TempTrkgSpec3: Record "Tracking Specification" temporary; SignFactor1: Integer; SignFactor2: Integer; var ShouldInsertTrkgSpec: Boolean)` (integration)
- `OnSynchronizeItemTracking2OnAfterSyncBothTrackingSpec(var TempTrkgSpec3: Record "Tracking Specification" temporary; TempTrkgSpec2: Record "Tracking Specification" temporary; TempSourceSpec: Record "Tracking Specification" temporary; var TempTrkgSpec1: Record "Tracking Specification" temporary)` (integration)
- `OnSynchronizeItemTracking2OnAfterAssignNewTrackingSpec(var TempTrkgSpec3: Record "Tracking Specification" temporary; TempTrkgSpec1: Record "Tracking Specification" temporary; TempSourceSpec: Record "Tracking Specification" temporary)` (integration)
- `OnSynchronizeItemTracking2OnBeforeDeleteSyncedTrackingSpec(var TempTrkgSpec3: Record "Tracking Specification" temporary; TempTrkgSpec1: Record "Tracking Specification" temporary; TempTrkgSpec2: Record "Tracking Specification" temporary; SignFactor1: Integer; SignFactor2: Integer; var LastEntryNo: Integer)` (integration)
- `OnSynchronizeItemTrkgTransferOnAfterTempToReservEntrySetFilters(var TempToReservEntry: Record "Reservation Entry" temporary; TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnSynchronizeItemTrkgTransferOnBeforeToReservEntryModifyAll(var ToReservEntry: Record "Reservation Entry"; TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnItemTrackingExistsOnDocumentLineOnBeforeExit(var TrackingSpecification: Record "Tracking Specification"; var ReservEntry: Record "Reservation Entry")` (integration)
- `OnAfterTestExpDateOnTrackingSpecNew(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeTestExpDateOnTrackingSpecNew(var TempTrackingSpecification: Record "Tracking Specification" temporary; var IsHandled: Boolean)` (integration)
- `OnWhseItemTrkgLineExistsOnBeforeExit(var WhseItemTrkgLine: Record "Whse. Item Tracking Line")` (integration)
- `OnSumUpItemTrackingOnBeforeTempHandlingSpecificationModify(var TempHandlingSpecification: Record "Tracking Specification" temporary; ReservEntry: Record "Reservation Entry")` (integration)
- `OnCopyHandledItemTrkgToPurchLineOnAfterFilterItemEntryRelation(var ItemEntryRelation: Record "Item Entry Relation"; var FromPurchLine: Record "Purchase Line"; var ToPurchLine: Record "Purchase Line")` (integration)
- `OnRetrieveInvoiceSpecificationOnBeforeFindTrackingSpecification(var TempInvoicingSpecification: Record "Tracking Specification" temporary; var TempTrackingSpecSummedUp: Record "Tracking Specification" temporary; TrackingSpecification: Record "Tracking Specification"; SourceSpecification: Record "Tracking Specification"; var OK: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyHandledItemTrkgToPurchLine(FromPurchLine: Record "Purchase Line"; var ToPurchLine: Record "Purchase Line"; CheckLineQty: Boolean; var IsHandled: Boolean)` (integration)
- `OnCopyItemTracking3OnBeforeReservEntry1Insert(var ReservEntry1: Record "Reservation Entry")` (integration)
- `OnRetrieveInvoiceSpecificationOnAfterTrackingSpecificationSetFilters(SourceSpecification: Record "Tracking Specification"; var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnSplitInternalPutAwayLineOnNotFindWhseItemTrackingLine(PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary; var IsHandled: Boolean)` (integration)
- `OnRegisterNewItemTrackingLinesOnBeforeCannotMatchItemTrackingError(var TempTrackingSpecification: Record "Tracking Specification" temporary; var QtyToHandleToNewRegister: Decimal; var QtyToHandleInItemTracking: Decimal; var QtyToHandleOnSourceDocLine: Decimal; var IsHandled: Boolean; var AllowWhseOverpick: Boolean)` (integration)
  - subscribers: [Codeunit 20575 "Subc. Invt. Put-away Ext"](../codeunit/20575.md) FixSourceDocLineQtyForSubcLastOperation_OnRegisterNewItemTrackingLinesOnBeforeCannotMatchItemTrackingError, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnRegisterNewItemTrackingLinesOnBeforeCannotMatchItemTrackingError
- `OnSynchronizeItemTracking2OnBeforeRegisterItemTrackingLines(var ItemTrackingLines: Page "Item Tracking Lines"; var TempSourceSpec: Record "Tracking Specification" temporary; var TempTrkgSpec3: Record "Tracking Specification" temporary; var FromReservEntry: Record "Reservation Entry"; ReservEntry2: Record "Reservation Entry")` (integration)
- `OnFindInInventoryOnAfterItemLedgerEntrySetFilters(var ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnInsertReservEntryToOutboundTransferLineOnBeforeReservationEntryInsert(var ReservationEntry: Record "Reservation Entry"; var ItemLedgerEntryBuf: Record "Item Ledger Entry"; var TransferLine: Record "Transfer Line"; QtyBase: Decimal; var EntriesExist: Boolean)` (integration)
- `OnAfterInitWhseWorksheetLine(var WhseWorksheetLine: Record "Whse. Worksheet Line"; WhseDocType: Enum "Warehouse Worksheet Document Type"; SourceSubtype: Integer; SourceNo: Code[20]; SourceLineNo: Integer; SourceSublineNo: Integer)` (integration)
  - subscribers: [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnAfterInitWhseWorksheetLine
- `OnAfterIsResEntryReservedAgainstInventory(ReservationEntry: Record "Reservation Entry"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnAfterIsResEntryReservedAgainstInventory
- `OnBeforeRetrieveItemTrackingFromReservEntry(ItemJnlLine: Record "Item Journal Line"; var ReservEntry: Record "Reservation Entry"; var TempTrackingSpec: Record "Tracking Specification" temporary; var Result: Boolean; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnBeforeRetrieveItemTrackingFromReservEntry
- `OnSynchronizeWhseActivItemTrkgAssembly(var WhseActivLine: Record "Warehouse Activity Line"; var ToRowID: Text[250])` (integration)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnSynchronizeWhseActivItemTrkgAssembly
- `OnInitTrackingSpecificationByDocumentType(var WhseWorksheetLine: Record "Whse. Worksheet Line"; SourceType: Integer)` (integration)
  - subscribers: [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnInitTrackingSpecificationByDocumentType
- `OnInitTrackingSpecificationOnCreateNew(var WhseWorksheetLine: Record "Whse. Worksheet Line"; SourceType: Integer)` (integration)
  - subscribers: [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnInitTrackingSpecificationOnCreateNew
- `OnCalcWhseItemTrkgLineOnSetSourceTypeFilter(var WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
  - subscribers: [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnCalcWhseItemTrkgLineOnSetSourceTypeFilter
- `OnGetItemTrackingSetupOnSetSerialNoRequired(var ItemTrackingSetup: Record "Item Tracking Setup"; ItemTrackingCode: Record "Item Tracking Code"; EntryType: Enum "Item Ledger Entry Type"; Inbound: Boolean)` (internal)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnGetItemTrackingSetupOnSetSerialNoRequired, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnGetItemTrackingSetupOnSetSerialNoRequired
- `OnGetItemTrackingSetupOnSetLotNoRequired(var ItemTrackingSetup: Record "Item Tracking Setup"; ItemTrackingCode: Record "Item Tracking Code"; EntryType: Enum "Item Ledger Entry Type"; Inbound: Boolean)` (internal)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnGetItemTrackingSetupOnSetLotNoRequired, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnGetItemTrackingSetupOnSetLotNoRequired
- `OnGetItemTrackingSetupOnSetPackageNoRequired(var ItemTrackingSetup: Record "Item Tracking Setup"; ItemTrackingCode: Record "Item Tracking Code"; EntryType: Enum "Item Ledger Entry Type"; Inbound: Boolean)` (internal)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnGetItemTrackingSetupOnSetPackageNoRequired, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnGetItemTrackingSetupOnSetPackageNoRequired

## Procedures

- `SetPointerFilter(var TrackingSpecification: Record "Tracking Specification")`
- `LookupTrackingNoInfo(ItemNo: Code[20]; VariantCode: Code[20]; ItemTrackingType: Enum "Item Tracking Type"; ItemTrackingNo: Code[50])`
- `CreateTrackingSpecification(var FromReservEntry: Record "Reservation Entry"; var ToTrackingSpecification: Record "Tracking Specification")`
- `GetItemTrackingSetup(var ItemTrackingCode: Record "Item Tracking Code"; EntryType: Enum "Item Ledger Entry Type"; Inbound: Boolean; var ItemTrackingSetup: Record "Item Tracking Setup")`
- `RetrieveInvoiceSpecification(SourceSpecification: Record "Tracking Specification"; var TempInvoicingSpecification: Record "Tracking Specification" temporary): Boolean`
- `RetrieveInvoiceSpecWithService(SourceSpecification: Record "Tracking Specification"; var TempInvoicingSpecification: Record "Tracking Specification" temporary; Consume: Boolean): Boolean`
- `RetrieveItemTracking(ItemJnlLine: Record "Item Journal Line"; var TempHandlingSpecification: Record "Tracking Specification" temporary): Boolean`
- `RetrieveItemTrackingFromReservEntry(ItemJnlLine: Record "Item Journal Line"; var ReservEntry: Record "Reservation Entry"; var TempTrackingSpec: Record "Tracking Specification" temporary): Boolean`
- `SumUpItemTracking(var ReservEntry: Record "Reservation Entry"; var TempHandlingSpecification: Record "Tracking Specification" temporary; SumPerLine: Boolean; SumPerTracking: Boolean): Boolean`
- `SumUpItemTrackingOnlyInventoryOrATO(var ReservationEntry: Record "Reservation Entry"; var TrackingSpecification: Record "Tracking Specification"; SumPerLine: Boolean; SumPerLotSN: Boolean): Boolean`
- `DecomposeRowID(IDtext: Text[250]; var StrArray: array[6] of Text[100])`
- `ComposeRowID(Type: Integer; Subtype: Integer; ID: Code[20]; BatchName: Code[10]; ProdOrderLine: Integer; RefNo: Integer): Text[250]`
- `CopyItemTracking(FromRowID: Text[250]; ToRowID: Text[250]; SwapSign: Boolean)`
- `CopyItemTracking(FromRowID: Text[250]; ToRowID: Text[250]; SwapSign: Boolean; SkipReservation: Boolean; NewReservationStatus: Enum "Reservation Status")` (obsolete 29.0: Removed and will be deleted in future release.)
- `CopyItemTracking(FromRowID: Text[250]; ToRowID: Text[250]; SwapSign: Boolean; SkipReservation: Boolean)`
- `CopyItemTracking(var ReservEntry: Record "Reservation Entry"; ToRowID: Text[250]; SwapSign: Boolean)`
- `CopyHandledItemTrkgToInvLine(FromSalesLine: Record "Sales Line"; ToSalesInvLine: Record "Sales Line")`
- `CopyHandledItemTrkgToInvLine(FromPurchLine: Record "Purchase Line"; ToPurchLine: Record "Purchase Line")`
- `CopyHandledItemTrkgToPurchLineWithLineQty(FromPurchLine: Record "Purchase Line"; ToPurchLine: Record "Purchase Line")`
- `CopyMatchedItemTrkgToPurchLine(FromPurchLine: Record "Purchase Line"; ToPurchLine: Record "Purchase Line"; MatchedOrderLine: Record "Matched Order Line"; CheckLineQty: Boolean)` (internal)
- `CollectItemEntryRelation(var TempItemLedgEntry: Record "Item Ledger Entry" temporary; SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; TotalQty: Decimal): Boolean`
- `IsOrderNetworkEntity(Type: Integer; Subtype: Integer): Boolean`
- `DeleteItemEntryRelation(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; DeleteAllDocLines: Boolean)`
- `DeleteValueEntryRelation(RowID: Text[100])`
- `FindInInventory(ItemNo: Code[20]; VariantCode: Code[20]; SerialNo: Code[50]): Boolean`
- `SplitWhseJnlLine(TempWhseJnlLine: Record "Warehouse Journal Line" temporary; var TempWhseJnlLine2: Record "Warehouse Journal Line" temporary; var TempWhseSplitTrackingSpec: Record "Tracking Specification" temporary; ToTransfer: Boolean)`
- `SplitPostedWhseRcptLine(PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary)`
- `SplitInternalPutAwayLine(PostedWhseRcptLine: Record "Posted Whse. Receipt Line"; var TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary)`
- `DeleteWhseItemTrkgLines(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; LocationCode: Code[10]; RelatedToLine: Boolean)`
- `DeleteWhseItemTrkgLinesWithRunDeleteTrigger(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; LocationCode: Code[10]; RelatedToLine: Boolean; RunDeleteTrigger: Boolean)`
- `SetDeleteReservationEntries(DeleteEntries: Boolean)`
- `InitTrackingSpecification(WhseWkshLine: Record "Whse. Worksheet Line")`
- `CreateWhseItemTrkgForResEntry(SourceReservEntry: Record "Reservation Entry"; WhseWkshLine: Record "Whse. Worksheet Line")`
- `CalcWhseItemTrkgLine(var WhseItemTrkgLine: Record "Whse. Item Tracking Line")`
- `InitItemTrackingForTempWhseWorksheetLine(WhseDocType: Enum "Warehouse Worksheet Document Type"; WhseDocNo: Code[20]; WhseDocLineNo: Integer; SourceType: Integer; SourceSubtype: Integer; SourceNo: Code[20]; SourceLineNo: Integer; SourceSublineNo: Integer)`
- `InitWhseWorksheetLine(var WhseWorksheetLine: Record "Whse. Worksheet Line"; WhseDocType: Enum "Warehouse Worksheet Document Type"; WhseDocNo: Code[20]; WhseDocLineNo: Integer; SourceType: Integer; SourceSubtype: Integer; SourceNo: Code[20]; SourceLineNo: Integer; SourceSublineNo: Integer)`
- `UpdateWhseItemTrkgLines(var TempWhseItemTrackingLine: Record "Whse. Item Tracking Line" temporary)`
- `ItemTrkgIsManagedByWhse(Type: Integer; Subtype: Integer; ID: Code[20]; ProdOrderLine: Integer; RefNo: Integer; LocationCode: Code[10]; ItemNo: Code[20]): Boolean`
- `GetWhseItemTrkgSetup(ItemNo: Code[20]): Boolean`
- `GetWhseItemTrkgSetup(ItemNo: Code[20]; var WhseItemTrackingSetup: Record "Item Tracking Setup"): Boolean`
- `CheckWhseItemTrkgSetup(ItemNo: Code[20])`
- `SetGlobalParameters(SourceSpecification2: Record "Tracking Specification" temporary; var TempTrackingSpecification2: Record "Tracking Specification" temporary; DueDate2: Date)`
- `AdjustQuantityRounding(NonDistrQuantity: Decimal; var QtyToBeHandled: Decimal; NonDistrQuantityBase: Decimal; QtyToBeHandledBase: Decimal)`
- `SynchronizeItemTrackingByPtrs(FromReservEntry: Record "Reservation Entry"; ToReservEntry: Record "Reservation Entry")`
- `SynchronizeItemTracking(FromRowID: Text[250]; ToRowID: Text[250]; DialogText: Text[250])`
- `SynchronizeItemTracking2(var FromReservEntry: Record "Reservation Entry"; ToRowID: Text[250]; DialogText: Text[250])`
- `SetRegistering(Registering2: Boolean)`
- `SynchronizeWhseItemTracking(var TempTrackingSpecification: Record "Tracking Specification" temporary; RegPickNo: Code[20]; Deletion: Boolean)`
- `CopyLotNoInformation(LotNoInfo: Record "Lot No. Information"; NewLotNo: Code[50])`
- `CopySerialNoInformation(SerialNoInfo: Record "Serial No. Information"; NewSerialNo: Code[50])`
- `FindLastItemLedgerEntry(ItemNo: Code[20]; VariantCode: Code[20]; ItemTrackingSetup: Record "Item Tracking Setup"; var ItemLedgEntry: Record "Item Ledger Entry"): Boolean`
- `WhseItemTrackingLineExists(TemplateName: Code[10]; BatchName: Code[10]; LocationCode: Code[10]; LineNo: Integer; var WhseItemTrackingLine: Record "Whse. Item Tracking Line"): Boolean`
- `ExistingExpirationDate(ItemNo: Code[20]; VariantCode: Code[20]; ItemTrackingSetup: Record "Item Tracking Setup"; TestMultiple: Boolean; var EntriesExist: Boolean): Date`
- `ExistingExpirationDate(WarehouseActivityLine: Record "Warehouse Activity Line"; TestMultiple: Boolean; var EntriesExist: Boolean): Date`
- `ExistingExpirationDate(TrackingSpecification: Record "Tracking Specification"; TestMultiple: Boolean; var EntriesExist: Boolean): Date`
- `ExistingExpirationDate(ItemLedgerEntry: Record "Item Ledger Entry"; TestMultiple: Boolean; var EntriesExist: Boolean): Date`
- `ExistingExpirationDateAndQty(ItemNo: Code[20]; VariantCode: Code[20]; ItemTrackingSetup: Record "Item Tracking Setup"; var SumOfEntries: Decimal): Date`
- `ExistingWarrantyDate(ItemNo: Code[20]; VariantCode: Code[20]; ItemTrackingSetup: Record "Item Tracking Setup"; var EntriesExist: Boolean): Date`
- `WhseExistingExpirationDate(ItemNo: Code[20]; VariantCode: Code[20]; Location: Record Location; WhseItemTrackingSetup: Record "Item Tracking Setup"; var EntriesExist: Boolean): Date`
- `GetWhseExpirationDate(ItemNo: Code[20]; VariantCode: Code[20]; Location: Record Location; ItemTrackingSetup: Record "Item Tracking Setup"; var ExpiryDate: Date): Boolean`
- `GetWhseWarrantyDate(ItemNo: Code[20]; VariantCode: Code[20]; Location: Record Location; ItemTrackingSetup: Record "Item Tracking Setup"; var Warrantydate: Date): Boolean`
- `SumNewLotOnTrackingSpec(var TempTrackingSpecification: Record "Tracking Specification" temporary): Decimal`
- `TestExpDateOnTrackingSpec(var TempTrackingSpecification: Record "Tracking Specification" temporary)`
- `TestExpDateOnTrackingSpecNew(var TempTrackingSpecification: Record "Tracking Specification" temporary)`
- `CalcQtyBaseRegistered(var RegisteredWhseActivityLine: Record "Registered Whse. Activity Line"): Decimal`
- `CopyItemLedgEntryTrkgToSalesLn(var TempItemLedgEntryBuf: Record "Item Ledger Entry" temporary; ToSalesLine: Record "Sales Line"; FillExactCostRevLink: Boolean; var MissingExCostRevLink: Boolean; FromPricesInclVAT: Boolean; ToPricesInclVAT: Boolean; FromShptOrRcpt: Boolean)`
- `CopyItemLedgEntryTrkgToPurchLn(var ItemLedgEntryBuf: Record "Item Ledger Entry"; ToPurchLine: Record "Purchase Line"; FillExactCostRevLink: Boolean; var MissingExCostRevLink: Boolean; FromPricesInclVAT: Boolean; ToPricesInclVAT: Boolean; FromShptOrRcpt: Boolean)`
- `CopyItemLedgEntryTrkgToTransferLine(var ItemLedgEntryBuf: Record "Item Ledger Entry"; ToTransferLine: Record "Transfer Line")`
- `SynchronizeWhseActivItemTrkg(WhseActivLine: Record "Warehouse Activity Line")`
- `SynchronizeWhseActivItemTrkg(WhseActivLine: Record "Warehouse Activity Line"; BlockCommit: Boolean)` (internal)
- `RetrieveAppliedExpirationDate(var TempItemLedgEntry: Record "Item Ledger Entry" temporary)`
- `InitCollectItemTrkgInformation()`
- `CollectItemTrkgInfWhseJnlLine(WhseJnlLine: Record "Warehouse Journal Line")`
- `CheckItemTrkgInfBeforePost()`
- `SetPick(IsPick2: Boolean)`
- `StrictExpirationPosting(ItemNo: Code[20]): Boolean`
- `WhseItemTrkgLineExists(SourceId: Code[20]; SourceType: Integer; SourceSubtype: Integer; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; LocationCode: Code[10]; ItemTrackingSetup: Record "Item Tracking Setup"): Boolean`
- `CalcWhseItemTrkgLineQtyBase(SourceType: Integer; SourceSubtype: Integer; SourceId: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; LocationCode: Code[10]; ItemTrackingSetup: Record "Item Tracking Setup"): Decimal`
- `InsertProspectReservEntryFromItemEntryRelationAndSourceData(var ItemEntryRelation: Record "Item Entry Relation"; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer)`
- `UpdateQuantities(WhseWorksheetLine: Record "Whse. Worksheet Line"; var TotalWhseItemTrackingLine: Record "Whse. Item Tracking Line"; var SourceQuantityArray: array[2] of Decimal; var UndefinedQtyArray: array[2] of Decimal; SourceType: Integer): Boolean`
- `CalculateSums(WhseWorksheetLine: Record "Whse. Worksheet Line"; var TotalWhseItemTrackingLine: Record "Whse. Item Tracking Line"; SourceQuantityArray: array[2] of Decimal; var UndefinedQtyArray: array[2] of Decimal; SourceType: Integer): Boolean`
- `UpdateUndefinedQty(TotalWhseItemTrackingLine: Record "Whse. Item Tracking Line"; SourceQuantityArray: array[2] of Decimal; var UndefinedQtyArray: array[2] of Decimal): Boolean`
- `InsertReservEntryFromTrackingSpec(TrackingSpecification: Record "Tracking Specification"; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer; QtyBase: Decimal)`
- `DeleteInvoiceSpecFromHeader(SourceType: Integer; SourceSubtype: Option; SourceID: Code[20])`
- `DeleteInvoiceSpecFromLine(SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer)`
- `ItemTrackingExistsOnDocumentLine(SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer): Boolean`
- `CalcQtyToHandleForTrackedQtyOnDocumentLine(SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer): Decimal`
- `CopyExpirationDateForLot(var TrackingSpecification: Record "Tracking Specification")`
- `UpdateExpirationDateForLot(var TrackingSpecification: Record "Tracking Specification")`
- `CreateSerialNoInformation(TrackingSpecification: Record "Tracking Specification")`
- `CreateLotNoInformation(TrackingSpecification: Record "Tracking Specification")`

Plus 36 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 5402 "Unit of Measure Management"](../codeunit/5402.md) (8 calls: `AdjustQuantityRounding → QtyRndPrecision`, `CheckQtyToInvoiceMatchItemTracking → QtyRndPrecision`, `CheckWhseItemTrkg → QtyRndPrecision`, …)
- [Codeunit 99000845 "Reservation Management"](../codeunit/99000845.md) (6 calls: `CopyItemLedgEntryTrkgToPurchLn → DeleteReservEntries`, `CopyItemLedgEntryTrkgToPurchLn → SetReservSource`, `CopyItemLedgEntryTrkgToSalesLn → DeleteReservEntries`, …)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (3 calls: `CopyLotNoInformation → GetResponseOrDefault`, `CopySerialNoInformation → GetResponseOrDefault`, `SynchronizeItemTracking2 → GetResponseOrDefault`)
- [Codeunit 5775 "Whse. Management"](../codeunit/5775.md) (3 calls: `CreateWhseItemTrackingBatch → GetSourceType`, `CreateWhseItemTrkgForResEntry → GetSourceType`, `InitTrackingSpecification → GetSourceType`)
- [Codeunit 9500 "Sequence No. Mgt."](../codeunit/9500.md) (3 calls: `CheckWhseItemTrkg → AllocateSeqNoBuffer`, `CreateWhseItemTrackingForReceipt → AllocateSeqNoBuffer`, `InsertWhseItemTrkgLines → AllocateSeqNoBuffer`)
- [Codeunit 6620 "Copy Document Mgt."](../codeunit/6620.md) (2 calls: `CopyItemLedgEntryTrkgToPurchLn → CalculateRevPurchLineAmount`, `CopyItemLedgEntryTrkgToSalesLn → CalculateRevSalesLineAmount`)
- [Codeunit 6520 "Item Tracing Mgt."](../codeunit/6520.md) (1 call: `ExistingExpirationDate → IsSpecificTracking`)
- [Codeunit 99000830 "Create Reserv. Entry"](../codeunit/99000830.md) (1 call: `SynchronizeItemTracking2 → SignFactor`)
- [Codeunit 99000831 "Reservation Engine Mgt."](../codeunit/99000831.md) (1 call: `CopyItemLedgEntryTrkgToSalesLn → UpdateOrderTracking`)

## Called by

- [Codeunit 22 "Item Jnl.-Post Line"](../codeunit/22.md) (15 calls: `CheckExpirationDate → ExistingExpirationDate`, `CheckExpirationDate → SumNewLotOnTrackingSpec`, `CheckExpirationDate → TestExpDateOnTrackingSpec`, …)
- [Codeunit 7307 "Whse.-Activity-Register"](../codeunit/7307.md) (12 calls: `AutoReserveForSalesLine → GetWhseItemTrkgSetup`, `CheckBinContent → GetWhseItemTrkgSetup`, `CheckWhseItemTrkgLine → GetWhseItemTrkgSetup`, …)
- [Codeunit 90 "Purch.-Post"](../codeunit/90.md) (11 calls: `AdjustQuantityRoundingForReceipt → AdjustQuantityRounding`, `CheckTrackingExists → ItemTrackingExistsOnDocumentLine`, `CheckTrackingSpecification → GetItemTrackingSetup`, …)
- [Page 6510 "Item Tracking Lines"](../page/6510.md) (10 calls: `AddToGlobalRecordSet → ExistingExpirationDate`, `AssignSerialNoBatch → CreateSerialNoInformation`, `CreateCustomizedSNBatch → CreateSerialNoInformation`, …)
- [Table 5767 "Warehouse Activity Line"](../table/5767.md) (10 calls: `CheckReservedItemTrkgForLotNo → GetWhseItemTrkgSetup`, `CheckReservedItemTrkgForSerialNo → GetWhseItemTrkgSetup`, `CleanupJobWhseItemTrackingLineOnDelete → DeleteWhseItemTrkgLines`, …)
- [Codeunit 6620 "Copy Document Mgt."](../codeunit/6620.md) (9 calls: `CopyItemLedgEntryTrackingToSalesLine → CopyItemLedgEntryTrkgToSalesLn`, `CopyItemTrackingEntries → CopyItemLedgEntryTrkgToPurchLn`, `CopyPurchCrMemoLinesToDoc → CopyItemLedgEntryTrkgToPurchLn`, …)
- [Codeunit 80 "Sales-Post"](../codeunit/80.md) (9 calls: `CheckTrackingExists → ItemTrackingExistsOnDocumentLine`, `CheckTrackingSpecification → GetItemTrackingSetup`, `GetTrackingQuantities → CalcQtyToHandleForTrackedQtyOnDocumentLine`, …)
- [Codeunit 7304 "Whse. Jnl.-Register Batch"](../codeunit/7304.md) (7 calls: `CheckLines → CheckItemTrkgInfBeforePost`, `CheckLines → CollectItemTrkgInfWhseJnlLine`, `CheckLines → GetWhseItemTrkgSetup`, …)
- [Codeunit 7322 "Create Inventory Pick/Movement"](../codeunit/7322.md) (7 calls: `CreateATOPickLine → SumUpItemTracking`, `CreatePickOrMoveLine → GetWhseItemTrkgSetup`, `CreatePickOrMoveLine → SumUpItemTrackingOnlyInventoryOrATO`, …)
- [Codeunit 7312 "Create Pick"](../codeunit/7312.md) (6 calls: `CalcPickBin → GetWhseItemTrkgSetup`, `CalcQtyCanBePicked → GetWhseItemTrkgSetup`, `CreateWhseDocLine → GetWhseItemTrkgSetup`, …)
- [Codeunit 99000830 "Create Reserv. Entry"](../codeunit/99000830.md) (6 calls: `CreateWhseItemTrkgLines → CalcWhseItemTrkgLineQtyBase`, `CreateWhseItemTrkgLines → CreateWhseItemTrkgForResEntry`, `CreateWhseItemTrkgLines → InitWhseWorksheetLine`, …)
- [Page 6550 "Whse. Item Tracking Lines"](../page/6550.md) (6 calls: `CalculateSums → CalculateSums`, `SetSource → CheckWhseItemTrkgSetup`, `SetSource → UpdateQuantities`, …)
- [Codeunit 5760 "Whse.-Post Receipt"](../codeunit/5760.md) (5 calls: `CheckWhseItemTrackingSetupSNRequired → GetWhseItemTrkgSetup`, `CreatePutAwayDoc → GetWhseItemTrkgSetup`, `CreatePutAwayDoc → InitItemTrackingForTempWhseWorksheetLine`, …)
- [Codeunit 7321 "Create Inventory Put-away"](../codeunit/7321.md) (5 calls: `CreateWarehouseActivityLine → GetWhseItemTrkgSetup`, `FindReservationEntry → SumUpItemTracking`, `FindReservationFromPurchaseLine → GetWhseItemTrkgSetup`, …)
- [Codeunit 7324 "Whse.-Activity-Post"](../codeunit/7324.md) (5 calls: `CheckItemTracking → GetWhseItemTrkgSetup`, `CheckItemTracking → StrictExpirationPosting`, `InsertTempWhseActivLine → SynchronizeWhseActivItemTrkg`, …)
- [Table 7311 "Warehouse Journal Line"](../table/7311.md) (5 calls: `CheckExpirationDateExists → GetWhseExpirationDate`, `DeleteWhseItemTracking → DeleteWhseItemTrkgLines`, `InitExpirationDate → ExistingExpirationDate`, …)
- [Table 7321 "Warehouse Shipment Line"](../table/7321.md) (5 calls: `CreateWhseItemTrackingLines → GetWhseItemTrkgSetup`, `CreateWhseItemTrackingLines → InitItemTrackingForTempWhseWorksheetLine`, `DeleteWhseItemTrackingLines → DeleteWhseItemTrkgLinesWithRunDeleteTrigger`, …)
- [Codeunit 363 "PostSales-Delete"](../codeunit/363.md) (4 calls: `DeleteSalesCrMemoLines → DeleteItemEntryRelation`, `DeleteSalesInvLines → DeleteValueEntryRelation`, `DeleteSalesRcptLines → DeleteItemEntryRelation`, …)
- [Codeunit 364 "PostPurch-Delete"](../codeunit/364.md) (4 calls: `DeletePurchCrMemoLines → DeleteItemEntryRelation`, `DeletePurchInvLines → DeleteValueEntryRelation`, `DeletePurchRcptLines → DeleteItemEntryRelation`, …)
- [Codeunit 5763 "Whse.-Post Shipment"](../codeunit/5763.md) (4 calls: `CheckItemTrkgPicked → GetWhseItemTrkgSetup`, `PostUpdateWhseDocuments → DeleteWhseItemTrkgLines`, `PostUpdateWhseDocuments → SetDeleteReservationEntries`, …)
- [Codeunit 5817 "Undo Posting Management"](../codeunit/5817.md) (4 calls: `AdjustQuantityRounding → AdjustQuantityRounding`, `CheckMissingItemLedgers → CollectItemEntryRelation`, `TransferTracking → ComposeRowID`, …)
- [Codeunit 900 "Assembly-Post"](../codeunit/900.md) (4 calls: `PostCorrectionItemJnLine → ExistingExpirationDate`, `PostWhseJnlLine → GetWhseItemTrkgSetup`, `PostWhseJnlLine → SplitWhseJnlLine`, …)
- [Codeunit 99000832 "Sales Line-Reserve"](../codeunit/99000832.md) (4 calls: `CallItemTracking → ComposeRowID`, `DeleteInvoiceSpecFromHeader → DeleteInvoiceSpecFromHeader`, `DeleteInvoiceSpecFromLine → DeleteInvoiceSpecFromLine`, …)
- [Codeunit 99000834 "Purch. Line-Reserve"](../codeunit/99000834.md) (4 calls: `CallItemTracking → ComposeRowID`, `DeleteInvoiceSpecFromHeader → DeleteInvoiceSpecFromHeader`, `DeleteInvoiceSpecFromLine → DeleteInvoiceSpecFromLine`, …)
- [Report 7305 "Whse.-Source - Create Document"](../report/7305.md) (4 calls: `CreatePutAwayFromDiffSource → SplitInternalPutAwayLine`, `CreatePutAwayFromDiffSource → SplitPostedWhseRcptLine`, `OnPostReport → UpdateWhseItemTrkgLines`, …)
- [Codeunit 5826 "Matched Order Line Mgmt."](../codeunit/5826.md) (3 calls: `GetOrderLinesForPurchaseInvoice → CopyMatchedItemTrkgToPurchLine`, `GetPurchaseOrderLines → CopyMatchedItemTrkgToPurchLine`, `GetPurchaseReceiptLines → CopyMatchedItemTrkgToPurchLine`)
- [Codeunit 5856 "TransferOrder-Post Transfer"](../codeunit/5856.md) (3 calls: `InsertShptEntryRelation → GetWhseItemTrkgSetup`, `PostItemJnlLine → RetrieveItemTracking`, `PostWhseJnlLine → SplitWhseJnlLine`)
- [Codeunit 5985 "Serv-Item Tracking Rsrv. Mgt."](../codeunit/5985.md) (3 calls: `AdjustQuantityRounding → AdjustQuantityRounding`, `CheckTrackingSpecification → GetItemTrackingSetup`, `SplitWhseJnlLine → SplitWhseJnlLine`)
- [Codeunit 6503 "Item Tracking Doc. Management"](../codeunit/6503.md) (3 calls: `AddTempRecordToSet → RetrieveAppliedExpirationDate`, `CreateLineTrkgFromReservation → GetItemTrackingSetup`, `FindInvoiceEntries → ComposeRowID`)
- [Codeunit 7308 "Replenishment"](../codeunit/7308.md) (3 calls: `PickAccordingToFEFO → ExistingExpirationDate`, `PickAccordingToFEFO → GetWhseItemTrkgSetup`, `PickAccordingToFEFO → WhseExistingExpirationDate`)
- [Codeunit 99000842 "Service Line-Reserve"](../codeunit/99000842.md) (3 calls: `DeleteInvoiceSpecFromHeader → DeleteInvoiceSpecFromHeader`, `DeleteInvoiceSpecFromLine → DeleteInvoiceSpecFromLine`, `RetrieveInvoiceSpecification → RetrieveInvoiceSpecWithService`)
- [Codeunit 99000845 "Reservation Management"](../codeunit/99000845.md) (3 calls: `CalcIsAvailTrackedQtyInBin → GetWhseItemTrkgSetup`, `SetQtyToReserveDownToTrackedQuantity → SumUpItemTracking`, `SetReservedQtyDownToTrackedQuantity → SumUpItemTracking`)
- [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) (3 calls: `RetrieveConsumpItemTracking → SumUpItemTracking`, `RetrieveSubcontrItemTracking → SumUpItemTracking`, `SplitProdOrderLineForOutputPutAway → GetWhseItemTrkgSetup`)
- [Table 336 "Tracking Specification"](../table/336.md) (3 calls: `InitExpirationDate → CopyExpirationDateForLot`, `InitExpirationDate → ExistingExpirationDate`, `InitExpirationDate → ExistingWarrantyDate`)
- [Table 7347 "Internal Movement Line"](../table/7347.md) (3 calls: `CheckQtyItemTrackingLines → GetWhseItemTrkgSetup`, `CheckQtyItemTrackingLines → UpdateQuantities`, `OnDelete → DeleteWhseItemTrkgLines`)
- [Codeunit 1004 "Job Transfer Line"](../codeunit/1004.md) (2 calls: `FromPlanningLineToJnlLine → CopyItemTracking`, `FromWarehouseActivityLineToJnlLine → CopyItemTracking`)
- [Codeunit 427 "ICInboxOutboxMgt"](../codeunit/427.md) (2 calls: `UpdatePurchLineReceiptShipment → CopyHandledItemTrkgToInvLine`, `UpdatePurchLineReceiptShipment → CopyHandledItemTrkgToPurchLineWithLineQty`)
- [Codeunit 5406 "Output Jnl.-Expl. Route"](../codeunit/5406.md) (2 calls: `AssignNextTrackingEntry → CopyItemTracking`, `OnRun → CopyItemTracking`)
- [Codeunit 5510 "Production Journal Mgt"](../codeunit/5510.md) (2 calls: `InsertConsumptionItemJnlLine → CopyItemTracking`, `InsertOutputItemJnlLine → CopyItemTracking`)
- [Codeunit 5704 "TransferOrder-Post Shipment"](../codeunit/5704.md) (2 calls: `InsertShptEntryRelation → GetWhseItemTrkgSetup`, `PostWhseJnlLine → SplitWhseJnlLine`)
- [Codeunit 5705 "TransferOrder-Post Receipt"](../codeunit/5705.md) (2 calls: `PostWhseJnlLine → SplitWhseJnlLine`, `WriteDownDerivedLines → SumUpItemTracking`)
- [Codeunit 7301 "Whse. Jnl.-Register Line"](../codeunit/7301.md) (2 calls: `CheckExpiration → GetWhseExpirationDate`, `DeleteFromBinContent → GetWhseItemTrkgSetup`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (2 calls: `CheckDecreaseBinContent → GetWhseItemTrkgSetup`, `TransferWhseItemTracking → GetWhseItemTrkgSetup`)
- [Codeunit 7311 "Whse. Worksheet-Create"](../codeunit/7311.md) (2 calls: `CreateWhseWkshLine → GetWhseItemTrkgSetup`, `CreateWhseWkshLine → InitTrackingSpecification`)
- [Codeunit 7326 "Whse. Item Tracking FEFO"](../codeunit/7326.md) (2 calls: `CreateEntrySummaryFEFO → StrictExpirationPosting`, `SummarizeAdjustmentBinFEFO → WhseExistingExpirationDate`)
- [Codeunit 905 "Assembly Line Management"](../codeunit/905.md) (2 calls: `CreateWhseItemTrkgForAsmLines → GetWhseItemTrkgSetup`, `CreateWhseItemTrkgForAsmLines → InitItemTrackingForTempWhseWorksheetLine`)
- [Codeunit 939 "Asm. Whse.-Activity-Register"](../codeunit/939.md) (2 calls: `AutoReserveForAssemblyLine → GetWhseItemTrkgSetup`, `OnUpdateWhseDocHeaderByWhseDocumentType → DeleteWhseItemTrkgLines`)
- [Codeunit 99000792 "Create Prod. Order from Sale"](../codeunit/99000792.md) (2 calls: `CreateProductionOrder → ComposeRowID`, `CreateProductionOrder → CopyItemTracking`)
- [Codeunit 99000878 "Mfg. Create Inventory Put-Away"](../codeunit/99000878.md) (2 calls: `FindReservationFromProdOrderComponent → GetWhseItemTrkgSetup`, `FindReservationFromProdOrderLine → GetWhseItemTrkgSetup`)
- [Codeunit 99000893 "Mfg. Create Put-away"](../codeunit/99000893.md) (2 calls: `CreateWhsePutAwayForProdOrderOutputLine → GetWhseItemTrkgSetup`, `CreateWhsePutAwayForProdOrderOutputLine → InitItemTrackingForTempWhseWorksheetLine`)
- and 82 more: data/code/graph/29/calls.json

## Recent changes

- 2026-08-04 [#9898 [Main]-The Reservation Entry does not exist error when creating a Purchase Order from a Sales Order](../../changes/bcapps/9898.md) (main, BC30, fix)
- 2026-07-30 [#9754 [Extensibility Request] issue 30380: add OnSplitPostedWhseReceiptLineOnNotFindWhseItemEntryRelation event](../../changes/bcapps/9754.md) (main, BC30, feature)
- 2026-07-17 [#8905 [Master] Different source reference on reservation entries created directly from Job Planning Line and via a warehouse pick.](../../changes/bcapps/8905.md) (main, BC30, fix)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-29

## Deprecations

- procedure CopyItemTracking: Pending 29.0 (#if not CLEAN29), "Removed and will be deleted in future release."

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 Tracking Management")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
