---
id: object/page/6510
type: object
title: Page 6510 "Item Tracking Lines"
summary: Page 6510 "Item Tracking Lines" in Base Application (Microsoft.Inventory.Tracking). 59 public procedures, 110 events. Present since at least BC23, still in BC30, changed in BC24-29.
tier: official
language: en
tags:
  - page
  - 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: 10d1d1d1814c96feae68af46970eed86e0a70450d1f4e998740254308aedb318
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingLines.Page.al
    title: src/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingLines.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 6510
name: Item Tracking Lines
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: 218
  events: 110
  subscribers: 0
  controls: 39
  actions: 19
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 2
  event_subscribers: 7
  calls: 11
  called_by: 0
  implements: 0
---

# Page 6510 "Item Tracking Lines"

> Page 6510 "Item Tracking Lines" in Base Application (Microsoft.Inventory.Tracking). 59 public procedures, 110 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/ItemTrackingLines.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Item Tracking Lines |
| SourceTable | Tracking Specification |
| PageType | Worksheet |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| Content | BarcodeControl | add-in CameraBarcodeScannerProviderAddIn | — |
| Source | CurrentSourceCaption | `CurrentSourceCaption` | — |
|  | Quantity | `SourceQuantityArray[1]` | Specifies the quantity of the item that corresponds to the document line, which is indicated by 0 in the Undefined fields. |
|  | Qty. to Handle | `SourceQuantityArray[2]` | Specifies the item-tracked quantity to be handled. The quantities must correspond to those of the document line. |
|  | Qty. to Invoice | `SourceQuantityArray[3]` | Specifies the item-tracked quantity to be invoiced. |
| Item Tracking | Text020 | `Text020` | — |
|  | Quantity | `TotalTrackingSpecification."Quantity (Base)"` | Specifies the item-tracked quantity of the item that corresponds to the document line, which is indicated by 0 in the Undefined fields. |
|  | Qty. to Handle | `TotalTrackingSpecification."Qty. to Handle (Base)"` | Specifies the item-tracked quantity to be handled. The quantities must correspond to those of the document line. |
|  | Qty. to Invoice | `TotalTrackingSpecification."Qty. to Invoice (Base)"` | Specifies the item-tracked quantity to be invoiced. |
| Undefined | Placeholder2 | `Text020` | — |
|  | Undefined Quantity | `UndefinedQtyArray[1]` | Specifies the item-tracked quantity that remains to be assigned, according to the document quantity. |
|  | Undefined Quantity to Handle | `UndefinedQtyArray[2]` | Specifies the difference between the quantity that can be selected for the document line (which is shown in the Selectable field) and the quantity that you have selected in this window (shown in the Selected field). If you have specified more item tracking quantity than is required on the document l... |
|  | Undefined Quantity to Invoice | `UndefinedQtyArray[3]` | Specifies the difference between the quantity that can be selected for the document line (which is shown in the Selectable field) and the quantity that you have selected in this window (shown in the Selected field). If you have specified more item tracking quantity than is required on the document l... |
| Control82 | Item Tracking Code | `ItemTrackingCode.Code` | Specifies the transferred item tracking lines. |
|  | Description | `ItemTrackingCode.Description` | Specifies the description of what is being tracked. |
| Control1 | Availability, Serial No. | `TrackingAvailable(Rec, "Item Tracking Type"::"Serial No.")` | Specifies whether the sum of the quantities of the item in outbound documents is greater than the quantity in inventory for the serial number. No indicates a lack of inventory. |
|  | Serial No. | [Serial No.](../table/336.md#fields) | Specifies the serial number associated with the entry. <small>from the table field</small> |
|  | New Serial No. | [New Serial No.](../table/336.md#fields) | Specifies a new serial number that will take the place of the serial number in the Serial No. field. <small>from the table field</small> |
|  | Availability, Lot No. | `TrackingAvailable(Rec, "Item Tracking Type"::"Lot No.")` | Specifies whether the sum of the quantities of the item in outbound documents is greater than the quantity in inventory for the lot number. No indicates a lack of inventory. |
|  | Lot No. | [Lot No.](../table/336.md#fields) | Specifies the lot number of the item being handled for the associated document line. <small>from the table field</small> |
|  | New Lot No. | [New Lot No.](../table/336.md#fields) | Specifies a new lot number that will take the place of the lot number in the Lot No. field. <small>from the table field</small> |
|  | TrackingAvailable(Rec,2) | `TrackingAvailable(Rec, "Item Tracking Type"::"Package No.")` | Specifies whether the sum of the quantities of the item in outbound documents is greater than the quantity in inventory for the package number. No indicates a lack of inventory. |
|  | Package No. | [Package No.](../table/336.md#fields) | Specifies the package number of the item being handled for the associated document line. <small>from the table field</small> |
|  | New Package No. | [New Package No.](../table/336.md#fields) | Specifies a new package number that will take the place of the package number in the Package No. field. <small>from the table field</small> |
|  | Expiration Date | [Expiration Date](../table/336.md#fields) | Specifies the expiration date, if any, of the item carrying the item tracking number. <small>from the table field</small> |
|  | New Expiration Date | [New Expiration Date](../table/336.md#fields) | Specifies a new expiration date. <small>from the table field</small> |
|  | Warranty Date | [Warranty Date](../table/336.md#fields) | Specifies that a warranty date must be entered manually. <small>from the table field</small> |
|  | Item No. | [Item No.](../table/336.md#fields) | Specifies the number of the item associated with the entry. <small>from the table field</small> |
|  | Variant Code | [Variant Code](../table/336.md#fields) | Specifies the variant of the item on the line. <small>from the table field</small> |
|  | Description | [Description](../table/336.md#fields) | Specifies the description of the entry. <small>from the table field</small> |
|  | Location Code | [Location Code](../table/336.md#fields) | Specifies the location code for the entry. <small>from the table field</small> |
|  | Quantity (Base) | [Quantity (Base)](../table/336.md#fields) | Specifies the quantity on the line expressed in base units of measure. |
|  | Qty. to Handle (Base) | [Qty. to Handle (Base)](../table/336.md#fields) | Specifies the quantity that you want to handle in the base unit of measure. |
|  | Qty. to Invoice (Base) | [Qty. to Invoice (Base)](../table/336.md#fields) | Specifies how many of the items, in base units of measure, are scheduled for invoicing. |
|  | Quantity Handled (Base) | [Quantity Handled (Base)](../table/336.md#fields) | Specifies the quantity of serial, lot or package numbers shipped or received for the associated document line, expressed in base units of measure. |
|  | Quantity Invoiced (Base) | [Quantity Invoiced (Base)](../table/336.md#fields) | Specifies the quantity of serial, lot or package numbers that are invoiced with the associated document line, expressed in base units of measure. |
|  | Appl.-to Item Entry | [Appl.-to Item Entry](../table/336.md#fields) | Specifies the number of the item ledger entry that the document or journal line is applied to. <small>from the table field</small> |
|  | Appl.-from Item Entry | [Appl.-from Item Entry](../table/336.md#fields) | Specifies the number of the item ledger entry that the document or journal line is applied from. <small>from the table field</small> |
|  | Receipt/Shipment No. | [Receipt/Shipment No.](../table/336.md#fields) | Specifies the receipt or shipment number associated with the entry. |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Line | Serial No. Information Card | View or edit detailed information about the serial number. |  |
|  | Lot No. Information Card | View or edit detailed information about the lot number. |  |
|  | New Serial No. Information | Create a record with detailed information about the serial number. |  |
|  | New Lot No. Information | Create a record with detailed information about the lot number. |  |
|  | Serial No. Information Card | View or edit detailed information about the serial number. |  |
|  | Lot No. Information Card | View or edit detailed information about the lot number. |  |
|  | Package No. Information Card | View or edit detailed information about the package number. |  |
| Barcode Scanner | Scan multiple | Scan 1D or 2D barcodes codes with bar coder readers. |  |
| Functions | Assign Serial No. | Automatically assign the required serial numbers from predefined number series. |  |
|  | Assign Lot No. | Automatically assign the required lot numbers from predefined number series. |  |
|  | Assign Package No. | Automatically assign the required package numbers from predefined number series. |  |
|  | Create Customized SN | Automatically assign the required serial numbers based on a number series that you define. |  |
|  | Refresh Availability | Update the availability information according to changes made by other users since you opened the window. |  |
|  | Assign Serial No. | Automatically assign the required serial numbers from predefined number series. |  |
|  | Assign Lot No. | Automatically assign the required lot numbers from predefined number series. |  |
|  | Assign Package No. | Automatically assign the required package numbers from predefined number series. |  |
|  | Create Customized SN | Automatically assign the required serial numbers based on a number series that you define. |  |
|  | Select Entries | Select from existing, available serial, lot or package numbers. |  |
|  | Refresh Availability | Update the availability information according to changes made by other users since you opened the window. |  |

## Events published

- `OnAddReservEntriesToTempRecSetOnAfterTempTrackingSpecificationTransferFields(var TempTrackingSpecification: Record "Tracking Specification" temporary; var ReservEntry: Record "Reservation Entry")` (integration)
- `OnAfterQtyToHandleOrInvoiceDifferFromQuantity(ItemTrackingLine: Record "Tracking Specification"; var HasChanged: Boolean)` (integration)
- `OnAfterCopyTrackingSpec(var SourceTrackingSpec: Record "Tracking Specification"; var DestTrkgSpec: Record "Tracking Specification")` (integration)
- `OnAfterClearTrackingSpec(var OldTrkgSpec: Record "Tracking Specification")` (integration)
- `OnAfterOnClosePage(var TrackingSpecification: Record "Tracking Specification"; CurrentRunMode: Enum "Item Tracking Run Mode"; CurrentSourceType: Integer; CurrentSourceRowID: Text[250]; SecondSourceRowID: Text[250])` (integration)
- `OnAfterCreateReservEntryFor(var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; var CreateReservEntry: Codeunit "Create Reserv. Entry")` (integration)
- `OnAfterEntriesAreIdentical(ReservEntry1: Record "Reservation Entry"; ReservEntry2: Record "Reservation Entry"; var IdenticalArray: array[2] of Boolean)` (integration)
- `OnAfterMoveFields(var TrkgSpec: Record "Tracking Specification"; var ReservEntry: Record "Reservation Entry")` (integration)
- `OnAfterAssignNewTrackingNo(var TrkgSpec: Record "Tracking Specification"; xTrkgSpec: Record "Tracking Specification"; FieldID: Integer; var SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterGetHandleSource(TrackingSpecification: Record "Tracking Specification"; var QtyToHandleColumnIsHidden: Boolean)` (integration)
  - subscribers: [Codeunit 6482 "Serv. Item Tracking Doc. Mgt."](../codeunit/6482.md) OnAferGetHandleSource
- `OnAfterGetInvoiceSource(TrackingSpecification: Record "Tracking Specification"; var QtyToInvoiceColumnIsHidden: Boolean)` (integration)
  - subscribers: [Codeunit 6482 "Serv. Item Tracking Doc. Mgt."](../codeunit/6482.md) OnAfterGetInvoiceSource
- `OnAfterRegisterItemTrackingLines(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; var CurrTrackingSpecification: Record "Tracking Specification"; var AvailabilityDate: Date; var IsCorrection: Boolean)` (integration)
- `OnAfterSetPageControls(ItemTrackingCode: Record "Item Tracking Code"; Controls: Enum "Item Tracking Lines Controls"; SetAccess: Boolean)` (integration)
- `OnAfterSetFilters(var TrackingSpecificationRec: Record "Tracking Specification"; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterSetSourceSpec(var TrackingSpecification: Record "Tracking Specification"; var CurrTrackingSpecification: Record "Tracking Specification"; var AvailabilityDate: Date; var BlockCommit: Boolean; FunctionsDemandVisible: Boolean; FunctionsSupplyVisible: Boolean; var QtyToHandleBaseEditable: Boolean; var QuantityBaseEditable: Boolean; var InsertIsBlocked: Boolean)` (integration)
- `OnAfterSynchronizeLinkedSources(FormRunMode: Option ,Reclass,"Combined Ship/Rcpt","Drop Shipment",Transfer; CurrentSourceType: Integer; CurrentSourceRowID: Text[250]; SecondSourceRowID: Text[250])` (integration)
- `OnAssignLotNoOnAfterInsert(var TrackingSpecification: Record "Tracking Specification"; QtyToCreate: Decimal)` (integration)
- `OnAssignPackageNoOnAfterInsert(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAssignSerialNoBatchOnAfterInsert(var TrackingSpecification: Record "Tracking Specification"; QtyToCreate: Integer; CreateLotNo: Boolean; CreatePackageNo: Boolean)` (integration)
- `OnCreateCustomizedSNBatchOnAfterRecInsert(var TrackingSpecification: Record "Tracking Specification"; QtyToCreate: Integer)` (integration)
- `OnAssignSerialNoOnAfterAssignQtyToCreateInt(var TrackingSpecification: Record "Tracking Specification"; var QtyToCreate: Integer)` (integration)
- `OnCreateCustomizedSNByPageOnAfterCalcQtyToCreate(var TrackingSpecification: Record "Tracking Specification"; var QtyToCreate: Decimal)` (integration)
- `OnAssistEditLotNoOnBeforeCurrPageUdate(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeAddToGlobalRecordSet(var TrackingSpecification: Record "Tracking Specification"; EntriesExist: Boolean; CurrentSignFactor: Integer; var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeAssignNewSerialNo(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; var SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeAssignNewCustomizedSerialNo(var TrackingSpecification: Record "Tracking Specification"; var CustomizedSN: Code[50]; var IsHandled: Boolean)` (integration)
- `OnBeforeAssignNewLotNo(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; var SourceTrackingSpecification: Record "Tracking Specification"; FunctionsSupplyVisible: Boolean)` (integration)
- `OnBeforeAssignNewPackageNo(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; var SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeClosePage(var TrackingSpecification: Record "Tracking Specification"; var SkipWriteToDatabase: Boolean; CurrentRunMode: Enum "Item Tracking Run Mode"; CurrentSourceType: Integer; var SourceTrackingSpecification: Record "Tracking Specification"; var SourceQuantityArray: array[5] of Decimal; var TotalTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeDeleteRecord(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeLotNoAssistEdit(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; CurrentSignFactor: Integer; var MaxQuantity: Decimal; UndefinedQtyArray: array[3] of Decimal; var IsHandled: Boolean; ForBinCode: Code[20]; Inbound: Boolean; CurrentRunMode: Enum "Item Tracking Run Mode"; ItemTrackingDataCollection: Codeunit "Item Tracking Data Collection"; CurrentSourceType: Integer; SourceQuantityArray: array[5] of Decimal; InsertIsBlocked: Boolean)` (integration)
- `OnBeforeOnInsertRecord(var TrackingSpecification: Record "Tracking Specification"; SourceQuantityArray: array[5] of Decimal; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeOnModifyRecord(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; InsertIsBlocked: Boolean; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeRegisterChange(var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; CurrentSignFactor: Integer; FormRunMode: Option ,Reclass,"Combined Ship/Rcpt","Drop Shipment",Transfer; var IsHandled: Boolean; CurrentPageIsOpen: Boolean; ChangeType: Option Insert,Modify,FullDelete,PartDelete,ModifyAll; ModifySharedFields: Boolean; var ResultOK: Boolean)` (integration)
- `OnBeforeSerialNoAssistEdit(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; CurrentSignFactor: Integer; var IsHandled: Boolean; var MaxQuantity: Decimal; UndefinedQtyArray: array[3] of Decimal; ForBinCode: Code[20]; Inbound: Boolean; CurrentRunMode: Enum "Item Tracking Run Mode"; ItemTrackingDataCollection: Codeunit "Item Tracking Data Collection"; CurrentSourceType: Integer; SourceQuantityArray: array[5] of Decimal; InsertIsBlocked: Boolean)` (integration)
- `OnBeforeSerialNoOnAfterValidate(var TempTrackingSpecification: Record "Tracking Specification" temporary; SecondSourceQuantityArray: array[3] of Decimal)` (integration)
- `OnBeforeSetSourceSpec(var TrackingSpecification: Record "Tracking Specification"; var ReservationEntry: Record "Reservation Entry"; var ExcludePostedEntries: Boolean)` (integration)
- `OnBeforeSetSecondSourceQuantity(var SecondSourceQuantityArray: array[3] of Decimal)` (integration)
- `OnBeforeSynchronizeLinkedSources(FormRunMode: Option ,Reclass,"Combined Ship/Rcpt","Drop Shipment",Transfer; CurrentSourceType: Integer; CurrentSourceRowID: Text[250]; SecondSourceRowID: Text[250]; var DialogText: Text[250])` (integration)
- `OnBeforeCollectTempTrackingSpecificationInsert(var TempTrackingSpecification: Record "Tracking Specification" temporary; ItemLedgerEntry: Record "Item Ledger Entry"; var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeUpdateTrackingData(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; var xTempTrackingSpec: Record "Tracking Specification" temporary; CurrentSignFactor: Integer; var SourceQuantityArray: array[5] of Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateUndefinedQty(var TrackingSpecification: Record "Tracking Specification"; var TotalItemTrackingSpecification: Record "Tracking Specification"; var UndefinedQtyArray: array[3] of Decimal; var SourceQuantityArray: array[5] of Decimal; var ReturnValue: Boolean; var IsHandled: Boolean; var ProdOrderLineHandling: Boolean)` (integration)
- `OnBeforeWriteToDatabase(var TrackingSpecification: Record "Tracking Specification"; var CurrentPageIsOpen: Boolean; var BlockCommit: Boolean)` (integration)
- `OnAddReservEntriesToTempRecSetOnBeforeInsert(var TempTrackingSpecification: Record "Tracking Specification" temporary; ReservationEntry: Record "Reservation Entry"; SwapSign: Boolean; Color: Integer)` (integration)
- `OnInsertRecordOnBeforeTempItemTrackLineInsert(var TempTrackingSpecificationInsert: Record "Tracking Specification" temporary; var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnProcessLateBindingOnBeforeTempItemTrackLineReservInsert(var TempItemTrackLineReserv: Record "Tracking Specification"; CurrentSignFactor: Integer)` (integration)
- `OnRegisterChangeOnAfterCreateReservEntry(var ReservEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification"; OldTrackingSpecification: Record "Tracking Specification"; CurrentRunMode: Enum "Item Tracking Run Mode"; CurrentSourceType: Integer; TempReservEntry: Record "Reservation Entry" temporary)` (integration)
- `OnRegisterChangeOnAfterFullDelete(var ReservEntry: Record "Reservation Entry"; var NewTrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; CurrentPageIsOpen: Boolean)` (integration)
- `OnRegisterChangeOnAfterModify(var NewTrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; CurrentPageIsOpen: Boolean; var SavedOldTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnRegisterChangeOnChangeTypeModifyOnBeforeCheckEntriesAreIdentical(var ReservEntry1: Record "Reservation Entry"; var ReservEntry2: Record "Reservation Entry"; var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; var IdenticalArray: array[2] of Boolean)` (integration)
- `OnSelectEntriesOnAfterTransferFields(var TempTrackingSpec: Record "Tracking Specification" temporary; var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnSetQtyToHandleAndInvoiceOnBeforeReservEntryModify(var ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnSetQtyToHandleAndInvoiceOnBeforeTrackingSpecModify(var TrackingSpecification: Record "Tracking Specification"; var TotalTrackingSpecification: Record "Tracking Specification"; var ModifyLine: Boolean)` (integration)
- `OnSetSourceSpecOnAfterAssignCurrentEntryStatus(var TrackingSpecification: Record "Tracking Specification"; var CurrentEntryStatus: Option; ItemTrackingCode: Record "Item Tracking Code"; var InsertIsBlocked: Boolean)` (integration)
- `OnWriteToDatabaseOnBeforeRegisterDecrease(var TempTrackingSpecificationModify: Record "Tracking Specification" temporary)` (integration)
- `OnWriteToDatabaseOnBeforeRegisterInsert(var TempTrackingSpecificationInsert: Record "Tracking Specification" temporary)` (integration)
- `OnAfterUpdateExpDateEditable(var TrackingSpecification: Record "Tracking Specification"; var ExpirationDateEditable: Boolean; var ItemTrackingCode: Record "Item Tracking Code"; var NewExpirationDateEditable: Boolean; CurrentSignFactor: Integer)` (integration)
- `OnTestTempSpecificationExistsOnAfterSetFilters(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnRegisterItemTrackingLinesOnAfterReclass(var TrackingSpecification: Record "Tracking Specification"; TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnRegisterItemTrackingLinesOnBeforeModify(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnRegisterChangeOnChangeTypeInsertOnBeforeInsertReservEntry(var TrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; FormRunMode: Option)` (integration)
- `OnWriteToDataOnBeforeCommit(var TrackingSpecification: Record "Tracking Specification"; var TempReservEntry: Record "Reservation Entry")` (integration)
- `OnQueryClosePageOnBeforeConfirmClosePage(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; CurrentRunMode: Enum "Item Tracking Run Mode"; var Result: Boolean)` (integration)
- `OnQueryClosePageOnBeforeCurrPageUpdate(var IsHandled: Boolean)` (integration)
- `OnBeforeFillSourceQuantityArray(var SourceQuantityArray: array[5] of Decimal; TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 20574 "Subc. Item Tracking Ext"](../codeunit/20574.md) SetSourceQuantityForSubcLastOperation_OnBeforeFillSourceQuantityArray
- `OnValidateSerialNoOnBeforeFindLotNo(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetSourceSpecForTransferReceipt(var TrackingSpecificationRec: Record "Tracking Specification"; var ReservEntry: Record "Reservation Entry"; var TrackingSpecification: Record "Tracking Specification"; CurrentRunMode: Enum "Item Tracking Run Mode"; var DeleteIsBlocked: Boolean; var IsHandled: Boolean; var TempTrackingSpecification2: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeCheckItemTrackingLine(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; var SourceQuantityArray: array[5] of Decimal)` (integration)
- `OnBeforeAssignLotNo(var TrackingSpecification: Record "Tracking Specification"; var TempItemTrackLineInsert: Record "Tracking Specification" temporary; SourceQuantityArray: array[5] of Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeSetWarehouseControls(TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; var NewTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeSynchronizeWarehouseItemTracking(TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnRegisterChangeOnBeforeInsert(var NewTrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnRegisterChangeOnAfterInsert(var NewTrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; CurrentPageIsOpen: Boolean)` (integration)
- `OnRegisterChangeOnAfterPartialDelete(var NewTrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; var ReservationEntry: Record "Reservation Entry"; CurrentPageIsOpen: Boolean)` (integration)
- `OnRegisterItemTrackingLinesOnAfterFind(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; IsCorrection: Boolean)` (integration)
- `OnAfterSetQtyToHandleAndInvoiceOnBeforeReservEntryModify(var ReservEntry: Record "Reservation Entry"; var TrackingSpecification: Record "Tracking Specification"; var TotalTrackingSpecification: Record "Tracking Specification"; var ModifyLine: Boolean)` (integration)
- `OnSetQtyToHandleAndInvoiceOnAfterSetQtyToHandleAndInvoiceOnFirstReservationEntry(var ReservationEntry: Record "Reservation Entry"; var TrackingSpecification: Record "Tracking Specification"; var TotalTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterQtyToHandleAndInvoiceChanged(ReservEntry1: Record "Reservation Entry"; ReservEntry2: Record "Reservation Entry"; var HasChanged: Boolean)` (integration)
- `OnBeforeShouldAddQuantityAsBlank(OldTrackingSpecification: Record "Tracking Specification"; NewTrackingSpecification: Record "Tracking Specification"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnSelectEntriesOnBeforeSelectMultipleTrackingNo(var ItemTrackingDataCollection: Codeunit "Item Tracking Data Collection"; CurrentSignFactor: Integer)` (integration)
- `OnSelectEntriesOnAfterSelectMultipleTrackingNo(var ItemTrackingDataCollection: Codeunit "Item Tracking Data Collection")` (integration)
- `OnAddToGlobalRecordSetOnAfterTrackingSpecificationCalcSums(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnBeforeShouldModifyTrackingSpecification(TrackingSpecification: Record "Tracking Specification"; TrackingSpecificationModify: Record "Tracking Specification"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnCalculateSumsOnAfterCalcSums(var TrackingSpecification: Record "Tracking Specification"; var SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterUpdateUndefinedQtyArray(TotalTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeSetQtyToHandleAndInvoice(var TrackingSpecification: record "Tracking Specification"; IsCorrection: Boolean; CurrentSignFactor: Integer; var TotalTrackingSpecification: record "Tracking Specification")` (integration)
- `OnRegisterChangeOnBeforeAddItemTrackingToTempRecSet(var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: record "Tracking Specification"; CurrentSignFactor: Integer; var TempReservEntry: record "Reservation Entry" temporary)` (integration)
- `OnAddToGlobalRecordSetOnAfterTrackingSpecificationSetCurrentKey(var TempTrackingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnWriteToDatabaseOnBeforeUpdateOrderTracking(var TempReservEntry: Record "Reservation Entry" temporary)` (integration)
- `OnDeleteRecordOnAfterWMSCheckTrackingChange(TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; xRecTrackingSpecification: Record "Tracking Specification"; DeleteIsBlocked: Boolean; CurrentSignFactor: Integer; LineIsDemand: Boolean; var IsHandled: Boolean)` (integration)
- `OnSetSourceSpecOnAfterSetCurrentSourceRowID(CurrentRunMode: Enum "Item Tracking Run Mode"; var CurrentSourceRowID: Text[250]; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeLotNoOnAfterValidate(var TempTrackingSpecification: Record "Tracking Specification" temporary; SecondSourceQuantityArray: array[3] of Decimal)` (integration)
- `OnSetQtyToHandleAndInvoiceOnAfterSetTrackingSpecificationFilters(var TrackingSpecification: Record "Tracking Specification"; SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnSetQtyToHandleAndInvoiceOnAfterSetReservEntry1Filters(var ReservEntry1: Record "Reservation Entry"; var TrackingSpecification: Record "Tracking Specification"; SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnRegisterItemTrackingLinesOnBeforeValidateExistingQuantityBase(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; CurrentRunMode: Enum "Item Tracking Run Mode"; var IsHandled: Boolean)` (integration)
- `OnRegisterItemTrackingLinesOnBeforeFind(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; CurrentRunMode: Enum "Item Tracking Run Mode")` (integration)
- `OnRegisterItemTrackingLinesOnBeforeInsert(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; SourceTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAssignTrackingNoOnAfterCalcQtyToCreate(var TrackingSpecification: Record "Tracking Specification"; var SourceTrackingSpecification: Record "Tracking Specification"; var TotalTrackingSpecification: Record "Tracking Specification"; var QtyToCreate: Decimal; FieldID: Integer)` (integration)
- `OnSelectEntriesOnBeforeResetStatus(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnRegisterChangeOnBeforeClearExpirationDate(var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; CurrentSignFactor: Integer; CurrentRunMode: Enum "Item Tracking Run Mode"; var IsHandled: Boolean)` (integration)
- `OnBeforeAssignPackageNo(var TrackingSpecification: Record "Tracking Specification"; var TempItemTrackingSpecificationInsert: Record "Tracking Specification" temporary; SourceQuantityArray: array[5] of Decimal; var IsHandled: Boolean)` (integration)
- `OnAssignLotNoOnAfterGetItem(var Item: Record Item)` (integration)
- `OnAssignSerialNoBatchOnAfterGetItem(var Item: Record Item)` (integration)
- `OnBeforeSetBinCode(var TrackingSpecification: Record "Tracking Specification"; var ForBinCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeQueryClosePage(var TrackingSpecification: Record "Tracking Specification"; var TotalItemTrackingLine: Record "Tracking Specification"; var TempReservationEntry: Record "Reservation Entry" temporary; var UndefinedQtyArray: array[3] of Decimal; var SourceQuantityArray: array[5] of Decimal; var CurrentRunMode: Enum "Item Tracking Run Mode"; var IsHandled: Boolean)` (integration)
- `OnSetSourceSpecOnBeforeAddToGlobalRecordSet(var TempTrackingSpecification: Record "Tracking Specification" temporary; ForBinCode: Code[20])` (integration)
- `OnAfterLotNoAssistEditOnBeforeClearBinCode(var TrackingSpecification: Record "Tracking Specification"; var ForBinCode: Code[20])` (integration)
- `OnSetSourceSpecOnCollectTrackingData(var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; ExcludePostedEntries: Boolean; CurrentSignfactor: Integer; var SourceQuantity: Decimal)` (integration)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnSetSourceSpecOnCollectTrackingData, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnSetSourceSpecOnCollectTrackingData
- `OnCheckItemTrackingLineIsBoundForBarcodeScanning(var TrackingSpecification: Record "Tracking Specification"; var Result: Boolean; IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnCheckItemTrackingLineISBoundForBarcodeScanning, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnCheckItemTrackingLineIsBoundForBarcodeScanning
- `OnAfterRegisterChange(var TrackingSpecification: Record "Tracking Specification"; var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; CurrentSignFactor: Integer; FormRunMode: Option ,Reclass,"Combined Ship/Rcpt","Drop Shipment",Transfer; CurrentPageIsOpen: Boolean; ChangeType: Option Insert,Modify,FullDelete,PartDelete,ModifyAll; ModifySharedFields: Boolean; var ResultOK: Boolean)` (integration)

## Procedures

- `CountLinesWithQtyZero(): Integer` (internal)
- `CountLines(): Integer`
- `SetContinuousScanningMode(DestMode: Boolean)` (internal)
- `ScanSerialNoInBound(BarcodeResult: Text)` (internal)
- `ScanSerialNoOutBound(BarcodeResult: Text)` (internal)
- `CheckItemTrackingLineIsInBoundForBarcodeScanning(): Boolean` (internal)
- `ScanLotNoInBound(BarcodeResult: Text)` (internal)
- `ScanLotNoOutBound(BarcodeResult: Text)` (internal)
- `ScanPackageNoInBound(BarcodeResult: Text)` (internal)
- `ScanPackageNoOutBound(BarcodeResult: Text)` (internal)
- `InsertRecord(var TempTrackingSpecification: Record "Tracking Specification" temporary)`
- `SetRunMode(RunMode: Enum "Item Tracking Run Mode")`
- `GetRunMode(): Enum "Item Tracking Run Mode"`
- `UpdateTrackingData()` (protected)
- `SetSourceSpec(TrackingSpecification: Record "Tracking Specification"; AvailabilityDate: Date)`
- `SetSecondSourceQuantity(SecondSourceQuantityArray: array[3] of Decimal)`
- `SetSecondSourceRowID(RowID: Text[250])`
- `SetSignFactor(NewSignFactor: Integer)`
- `AddReservEntriesToTempRecSet(var ReservEntry: Record "Reservation Entry"; var TempTrackingSpecification: Record "Tracking Specification" temporary; SwapSign: Boolean; Color: Integer)` (protected)
- `AddReservEntriesToTempRecSet(var ReservEntry: Record "Reservation Entry"; var TempTrackingSpecification: Record "Tracking Specification" temporary; SwapSign: Boolean; Color: Integer; SrcQtyRoundingPrecision: Decimal)` (protected)
- `SetPageControls(Controls: Enum "Item Tracking Lines Controls"; SetAccess: Boolean)` (protected)
- `GetItem(ItemNo: Code[20])` (protected)
- `CalculateSums()`
- `UpdateUndefinedQty(): Boolean` (protected)
- `EntriesAreIdentical(var ReservEntry1: Record "Reservation Entry"; var ReservEntry2: Record "Reservation Entry"; var IdenticalArray: array[2] of Boolean): Boolean`
- `NextEntryNo(): Integer`
- `WriteToDatabase()`
- `RegisterChange(var OldTrackingSpecification: Record "Tracking Specification"; var NewTrackingSpecification: Record "Tracking Specification"; ChangeType: Option Insert,Modify,FullDelete,PartDelete,ModifyAll; ModifySharedFields: Boolean): Boolean`
- `ZeroLineExists(): Boolean`
- `AssignSerialNo()` (protected)
- `AssignSerialNoBatch(QtyToCreate: Integer; CreateLotNo: Boolean; CreatePackageNo: Boolean; CreateSNInfo: Boolean)` (protected)
- `AssignLotNo()` (protected)
- `AssignPackageNo()` (protected)
- `TestTempSpecificationExists(): Boolean`
- `QtySignFactor(): Integer` (protected)
- `RegisterItemTrackingLines(SourceTrackingSpecification: Record "Tracking Specification"; AvailabilityDate: Date; var TempTrackingSpecification: Record "Tracking Specification" temporary)`
- `SynchronizeLinkedSources(DialogText: Text[250]): Boolean`
- `SetBlockCommit(NewBlockCommit: Boolean)`
- `SetCalledFromSynchWhseItemTrkg(CalledFromSynchWhseItemTrkg2: Boolean)`
- `LookupAvailable(LookupMode: Enum "Item Tracking Type")`
- `SetInbound(NewInbound: Boolean)`
- `SetIsInvtDocumentCorrection(NewIsInvtDocumentCorrection: Boolean)`
- `SetDirectTransfer(IsDirectTransfer2: Boolean)`
- `SerialNoOnAfterValidate()` (protected)
- `LotNoOnAfterValidate()` (protected)
- `QuantityBaseOnAfterValidate()` (protected)
- `QuantityBaseOnValidate()` (protected)
- `QtytoHandleBaseOnAfterValidate()` (protected)
- `QtytoInvoiceBaseOnAfterValidat()` (protected)
- `GetEditableSettings(var ItemNoEditable2: Boolean; var VariantCodeEditable2: Boolean; var LocationCodeEditable2: Boolean; var QtyToHandleBaseEditable2: Boolean; var QtyToInvoiceBaseEditable2: Boolean; var QuantityBaseEditable2: Boolean; var SerialNoEditable2: Boolean; var LotNoEditable2: Boolean; var DescriptionEditable2: Boolean; var NewSerialNoEditable2: Boolean; var NewLotNoEditable2: Boolean; var NewExpirationDateEditable2: Boolean; var ExpirationDateEditable2: Boolean; var WarrantyDateEditable2: Boolean)`
- `GetVisibleSettings(var Handle1Visible2: Boolean; var Handle2Visible2: Boolean; var Handle3Visible2: Boolean; var QtyToHandleBaseVisible2: Boolean; var Invoice1Visible2: Boolean; var Invoice2Visible2: Boolean; var Invoice3Visible2: Boolean; var QtyToInvoiceBaseVisible2: Boolean; var NewSerialNoVisible2: Boolean; var NewLotNoVisible2: Boolean; var ExpirationDateVisible2: Boolean; var NewExpirationDateVisible2: Boolean; var ButtonLineReclassVisible2: Boolean; var ButtonLineVisible2: Boolean; var FunctionsSupplyVisible2: Boolean; var FunctionsDemandVisible2: Boolean; var Inbound2: Boolean; var InboundIsSet2: Boolean)`
- `GetVariables(var TempTrackingSpecInsert2: Record "Tracking Specification" temporary; var TempTrackingSpecModify2: Record "Tracking Specification" temporary; var TempTrackingSpecDelete2: Record "Tracking Specification" temporary; var Item2: Record Item; var UndefinedQtyArray2: array[3] of Decimal; var SourceQuantityArray2: array[5] of Decimal; var CurrentSignFactor2: Integer; var InsertIsBlocked2: Boolean; var DeleteIsBlocked2: Boolean; var BlockCommit2: Boolean)`
- `SetVariables(var TempTrackingSpecInsert2: Record "Tracking Specification" temporary; var TempTrackingSpecModify2: Record "Tracking Specification" temporary; var TempTrackingSpecDelete2: Record "Tracking Specification" temporary)`
- `GetTrackingSpec(var TempTrackingSpecification: Record "Tracking Specification" temporary)`
- `SetSecondSourceID(SourceID: Integer; IsATO: Boolean)`
- `SetItemLedgerEntryFilter(ILEFilter: Text)` (internal)
- `SynchronizeWarehouseItemTracking()` (protected)
- `IsOrderToOrderBindingToTransfer(): Boolean` (protected)
- `RunOnBeforeCollectTempTrackingSpecificationInsert(var TempTrackingSpecification: Record "Tracking Specification" temporary; ItemLedgerEntry: Record "Item Ledger Entry"; var TrackingSpecification: Record "Tracking Specification")` (internal)

Plus 49 local procedures.

## Triggers

OnAfterGetCurrRecord, OnAfterGetRecord, OnClosePage, OnDeleteRecord, OnInit, OnInsertRecord, OnModifyRecord, OnNewRecord, OnOpenPage, OnQueryClosePage

## Relations

- source table [Table 336 "Tracking Specification"](../table/336.md)

## Extended by

- [Page extension 20418 "Qlty. Item Tracking Lines"](../pageextension/20418.md)
- [Page extension 4831 "Intr. Report Item Tr. Lines"](../pageextension/4831.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 6501 "Item Tracking Data Collection"](../codeunit/6501.md) (21 calls: `AssignLotNo → UpdateTrackingDataSetWithChange`, `AssignPackageNo → UpdateTrackingDataSetWithChange`, `AssignSerialNoBatch → SetSkipLot`, …)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (10 calls: `AddToGlobalRecordSet → ExistingExpirationDate`, `AssignSerialNoBatch → CreateSerialNoInformation`, `CreateCustomizedSNBatch → CreateSerialNoInformation`, …)
- [Codeunit 99000830 "Create Reserv. Entry"](../codeunit/99000830.md) (10 calls: `RegisterChange → CreateEntry`, `RegisterChange → CreateReservEntryExtraFields`, `RegisterChange → CreateReservEntryFor`, …)
- [Codeunit 99000831 "Reservation Engine Mgt."](../codeunit/99000831.md) (5 calls: `ProcessLateBinding → RetrieveLostReservQty`, `RegisterChange → AddItemTrackingToTempRecSet`, `RegisterChange → UpdateActionMessages`, …)
- [Page 456 "No. Series"](../page/456.md) (4 calls: `AssignNewLotNo → (object)`, `AssignNewPackageNo → (object)`, `AssignNewSerialNo → (object)`, …)
- [Codeunit 6502 "Late Binding Management"](../codeunit/6502.md) (2 calls: `UpdateOrderTrackingAndReestablishReservation → ReserveItemTrackingLine`, `UpdateOrderTrackingAndReestablishReservation → SetOrderTrackingSurplusEntries`)
- [Codeunit 99000845 "Reservation Management"](../codeunit/99000845.md) (2 calls: `RegisterChange → DeleteReservEntries`, `RegisterChange → SetItemTrackingHandling`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `OnQueryClosePage → GetResponseOrDefault`)
- [Codeunit 5775 "Whse. Management"](../codeunit/5775.md) (1 call: `SynchronizeWarehouseItemTracking → SetSourceFilterForWhseShptLine`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (1 call: `OnDeleteRecord → CheckItemTrackingChange`)
- [Control add-in "CameraBarcodeScannerProviderAddIn"](../controladdin/camerabarcodescannerprovideraddin.md) (1 call: `ScanMultipleOnMobileDevice → RequestBarcodeAsync`)

## Across versions

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

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: "page", object_name: "Item Tracking Lines")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
