---
id: object/table/336
type: object
title: Table 336 "Tracking Specification"
summary: Table 336 "Tracking Specification" in Base Application (Microsoft.Inventory.Tracking). 47 fields, 54 public procedures, 58 events. Present since at least BC23, still in BC30, changed in BC24-26, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: dc108e63a9a101f0ae481ecabbc91a267b18471bc2a1bf8986281c458e3e9ae7
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Tracking/TrackingSpecification.Table.al
    title: src/Layers/W1/BaseApp/Inventory/Tracking/TrackingSpecification.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/ru
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 336
name: Tracking Specification
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"
  - "28"
source_major: "29"
obsolete: null
countries:
  - ru
ms_search_form_ids: []
counts:
  fields: 47
  procedures: 121
  events: 58
  subscribers: 0
relations:
  out: 6
  referenced_by: 0
  pages: 3
  extended_by: 0
  event_subscribers: 38
  calls: 3
  called_by: 0
  implements: 0
---

# Table 336 "Tracking Specification"

> Table 336 "Tracking Specification" in Base Application (Microsoft.Inventory.Tracking). 47 fields, 54 public procedures, 58 events. Present since at least BC23, still in BC30, changed in BC24-26, BC28.

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

## Properties

| Property | Value |
|---|---|
| Caption | Tracking Specification |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Entry No. | Integer | — |  |
| 2 | Item No. | Code[20] | Specifies the number of the item associated with the entry. | TableRelation [Table 27 "Item"](../table/27.md) |
| 3 | Location Code | Code[10] | Specifies the location code for the entry. | TableRelation [Table 14 "Location"](../table/14.md) |
| 4 | Quantity (Base) | Decimal | Specifies the quantity on the line expressed in base units of measure. <small>via [Page 6510 "Item Tracking Lines"](../page/6510.md)</small> |  |
| 7 | Description | Text[100] | Specifies the description of the entry. |  |
| 8 | Creation Date | Date | — |  |
| 10 | Source Type | Integer | — |  |
| 11 | Source Subtype | Option | — | OptionCaption: 0,1,2,3,4,5,6,7,8,9,10 |
| 12 | Source ID | Code[20] | — |  |
| 13 | Source Batch Name | Code[10] | — |  |
| 14 | Source Prod. Order Line | Integer | — |  |
| 15 | Source Ref. No. | Integer | — |  |
| 16 | Item Ledger Entry No. | Integer | — | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry) |
| 17 | Transfer Item Entry No. | Integer | — | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry) |
| 18 | Receipt/Shipment No. | Code[20] | Specifies the receipt or shipment number associated with the entry. <small>via [Page 6510 "Item Tracking Lines"](../page/6510.md)</small> |  |
| 24 | Serial No. | Code[50] | Specifies the serial number associated with the entry. |  |
| 28 | Positive | Boolean | — |  |
| 29 | Qty. per Unit of Measure | Decimal | — | not editable |
| 31 | Qty. Rounding Precision (Base) | Decimal | — | not editable |
| 38 | Appl.-to Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied to. |  |
| 40 | Warranty Date | Date | Specifies that a warranty date must be entered manually. |  |
| 41 | Expiration Date | Date | Specifies the expiration date, if any, of the item carrying the item tracking number. |  |
| 50 | Qty. to Handle (Base) | Decimal | Specifies the quantity that you want to handle in the base unit of measure. <small>via [Page 6510 "Item Tracking Lines"](../page/6510.md)</small> |  |
| 51 | Qty. to Invoice (Base) | Decimal | Specifies how many of the items, in base units of measure, are scheduled for invoicing. <small>via [Page 6510 "Item Tracking Lines"](../page/6510.md)</small> |  |
| 52 | Quantity Handled (Base) | Decimal | Specifies the quantity of serial, lot or package numbers shipped or received for the associated document line, expressed in base units of measure. <small>via [Page 6510 "Item Tracking Lines"](../page/6510.md)</small> | not editable |
| 53 | Quantity Invoiced (Base) | Decimal | Specifies the quantity of serial, lot or package numbers that are invoiced with the associated document line, expressed in base units of measure. <small>via [Page 6510 "Item Tracking Lines"](../page/6510.md)</small> | not editable |
| 60 | Qty. to Handle | Decimal | — |  |
| 61 | Qty. to Invoice | Decimal | — |  |
| 70 | Buffer Status | Option | — | OptionCaption: ,MODIFY,INSERT; not editable |
| 71 | Buffer Status2 | Option | — | OptionCaption: ,ExpDate blocked; not editable |
| 72 | Buffer Value1 | Decimal | — | not editable |
| 73 | Buffer Value2 | Decimal | — | not editable |
| 74 | Buffer Value3 | Decimal | — | not editable |
| 75 | Buffer Value4 | Decimal | — | not editable |
| 76 | Buffer Value5 | Decimal | — | not editable |
| 80 | New Serial No. | Code[50] | Specifies a new serial number that will take the place of the serial number in the Serial No. field. |  |
| 81 | New Lot No. | Code[50] | Specifies a new lot number that will take the place of the lot number in the Lot No. field. |  |
| 900 | Prohibit Cancellation | Boolean | — |  |
| 5400 | Lot No. | Code[50] | Specifies the lot number of the item being handled for the associated document line. |  |
| 5401 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) ("Item Variant".Code where("Item No." = field("Item No."))) |
| 5402 | Bin Code | Code[20] | — | TableRelation [Table 7354 "Bin"](../table/7354.md) (Bin.Code where("Location Code" = field("Location Code"))) |
| 5811 | Appl.-from Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied from. |  |
| 5817 | Correction | Boolean | — |  |
| 6505 | New Expiration Date | Date | Specifies a new expiration date. |  |
| 6515 | Package No. | Code[50] | Specifies the package number of the item being handled for the associated document line. |  |
| 6516 | New Package No. | Code[50] | Specifies a new package number that will take the place of the package number in the Package No. field. |  |
| 7300 | Quantity actual Handled (Base) | Decimal | — | not editable |

## Keys

- Key1: Entry No. (clustered)
- Key2: Source ID, Source Type, Source Subtype, Source Batch Name, Source Prod. Order Line, Source Ref. No.
- Key3: Lot No., Serial No., Package No.
- Key4: New Lot No., New Serial No., New Package No.

## Events published

- `OnAfterClearTracking(var TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationClearTracking
- `OnAfterClearTrackingFilter(var TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationClearTrackingFilter
- `OnAfterCopyTrackingFromReservEntry(var TrackingSpecification: Record "Tracking Specification"; ReservEntry: Record "Reservation Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyTrackingFromReservEntry
- `OnAfterCopyTrackingFromWhseActivityLine(var TrackingSpecification: Record "Tracking Specification"; WhseActivityLine: Record "Warehouse Activity Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyTrackingFromWhseActivityLine
- `OnAfterCopyTrackingFromWhseItemTrackingLine(var TrackingSpecification: Record "Tracking Specification"; WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyTrackingFromWhseItemTrackingLine
- `OnAfterInitQtyToInvoice(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterInitQtyToShip(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterInitExpirationDate(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterCopyTrackingFromEntrySummary(var TrackingSpecification: Record "Tracking Specification"; EntrySummary: Record "Entry Summary")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyTrackingFromEntrySummary
- `OnAfterCopyTrackingFromItemLedgEntry(var TrackingSpecification: Record "Tracking Specification"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyTrackingFromItemLedgEntry
- `OnAfterCopyTrackingFromItemTrackingSetup(var TrackingSpecification: Record "Tracking Specification"; ItemTrackingSetup: Record "Item Tracking Setup")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationOnAfterCopyTrackingFromItemTrackingSetup
- `OnAfterCopyTrackingFromTrackingSpec(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyTrackingFromTrackingSpec
- `OnAfterCopyNewTrackingFromTrackingSpec(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyNewTrackingFromTrackingSpec
- `OnAfterCopyNewTrackingFromNewTrackingSpec(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationCopyNewTrackingFromNewTrackingSpec
- `OnAfterSetTrackingBlank(var TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingBlank
- `OnAfterSetTrackingFilterBlank(var TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterBlank
- `OnAfterSetTrackingFilterFromEntrySummary(var TrackingSpecification: Record "Tracking Specification"; EntrySummary: Record "Entry Summary")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromEntrySummary
- `OnAfterSetTrackingFilterFromItemJnlLine(var TrackingSpecification: Record "Tracking Specification"; ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromItemJnlLine
- `OnAfterSetTrackingFilterFromItemTrackingSetup(var TrackingSpecification: Record "Tracking Specification"; ItemTrackingSetup: Record "Item Tracking Setup")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromItemTrackingSetup
- `OnAfterSetTrackingFilterFromItemLedgEntry(var TrackingSpecification: Record "Tracking Specification"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromItemLedgEntry
- `OnAfterSetTrackingFilterFromReservEntry(var TrackingSpecification: Record "Tracking Specification"; ReservationEntry: Record "Reservation Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromReservEntry
- `OnAfterSetNewTrackingFilterFromNewReservEntry(var TrackingSpecification: Record "Tracking Specification"; ReservationEntry: Record "Reservation Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetNewTrackingFilterFromNewReservEntry
- `OnAfterSetNewTrackingFilterFromNewTrackingSpec(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetNewTrackingFilterFromNewTrackingSpec
- `OnAfterSetTrackingFilterFromTrackingSpec(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromTrackingSpec
- `OnAfterSetNonSerialTrackingFilterFromSpec(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationOnAfterSetNonSerialTrackingFilterFromSpec
- `OnAfterSetSourceFilter(var TrackingSpecification: Record "Tracking Specification"; SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceRefNo: Integer; SourceKey: Boolean)` (integration)
- `OnAfterSetTrackingFilterFromWhseActivityLine(var TrackingSpecification: Record "Tracking Specification"; WhseActivityLine: Record "Warehouse Activity Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationSetTrackingFilterFromWhseActivityLine
- `OnAfterLookupApplFromItemEntrySetFilters(var ItemLedgerEntry: Record "Item Ledger Entry"; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterTestTrackingFieldsAreBlank(var TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationTestTrackingFieldsAreBlank
- `OnAfterTrackingExist(var TrackingSpecification: Record "Tracking Specification"; var IsTrackingExist: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationTrackingExist
- `OnAfterNewTrackingExist(var TrackingSpecification: Record "Tracking Specification"; var IsTrackingExist: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationNewTrackingExist
- `OnAfterNonSerialTrackingExists(var TrackingSpecification: Record "Tracking Specification"; var IsTrackingExists: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationOnAfterNonSerialTrackingExists
- `OnAfterHasSameTracking(var TrackingSpecification: Record "Tracking Specification"; FromTrackingSpecification: Record "Tracking Specification"; var IsSameTracking: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) TrackingSpecificationHasSameTracking
- `OnAfterValidateApplFromItemEntry(var TrackingSpecification: Record "Tracking Specification"; ItemLedgerEntry: Record "Item Ledger Entry"; IsReclassification: Boolean)` (integration)
- `OnBeforeCheckSerialNoQty(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeClearApplyToEntryIfQuantityToInvoiceIsNotSufficient(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeInitQtyToInvoice(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnBeforeInitQtyToShip(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeTestApplyToItemLedgEntry(var TrackingSpecification: Record "Tracking Specification"; ItemLedgerEntry: Record "Item Ledger Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeTestFieldError(FieldCaptionText: Text[80]; CurrFieldValue: Decimal; CompareValue: Decimal; var IsHandled: Boolean)` (integration)
- `OnCheckPackageNo(TrackingSpecification: Record "Tracking Specification"; PackageNo: Code[50])` (integration)
- `OnBeforeUpdateTrackingSpecification(var TrackingSpecification: Record "Tracking Specification"; var FromTrackingSpecification: Record "Tracking Specification")` (integration)
- `OnValidateQtyToHandleOnBeforeInitQtyToInvoice(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; CallingFieldNo: Integer)` (integration)
- `OnValidateApplFromItemEntryOnSourceTypeCaseElse(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckItemTrackingQuantity(var TrackingSpecification: Record "Tracking Specification"; TableNo: Integer; DocumentType: Option; DocumentNo: Code[20]; LineNo: Integer; ProdOrderLineNo: Integer; var QtyToHandleBase: Decimal; var QtyToInvoiceBase: Decimal; var Handle: Boolean; var Invoice: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckItemTrackingByType(var ReservationEntry: Record "Reservation Entry"; var QtyToHandleBase: Decimal; var QtyToInvoiceBase: Decimal; var OnlyLot: Boolean; var Handle: Boolean; var Invoice: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterSetSourceFromPurchLine(var TrackingSpecification: Record "Tracking Specification"; PurchLine: Record "Purchase Line")` (integration)
- `OnAfterSetSourceFromSalesLine(var TrackingSpecification: Record "Tracking Specification"; SalesLine: Record "Sales Line")` (integration)
- `OnBeforeInitExpirationDate(var TrackingSpecification: Record "Tracking Specification"; xRec: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeOnDelete(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetTrackingKey(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnAfterIsReclass(TrackingSpecification: Record "Tracking Specification"; var Reclass: Boolean)` (integration)
- `OnAfterCheckItemTrackingQuantity(var TrackingSpecification: Record "Tracking Specification"; var ReservationEntry: Record "Reservation Entry"; TableNo: Integer; DocumentType: Option; DocumentNo: Code[20]; LineNo: Integer)` (integration)
- `OnAfterCheckSerialNoQty(var TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnValidateQuantityBaseOnBeforeCheckItemTrackingChange(var TrackingSpecification: Record "Tracking Specification"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidateExpirationDateOnBeforeResetExpirationDate(var TrackingSpecification: Record "Tracking Specification"; xTrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckApplyFromItemEntrySourceType(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 5854 "Invt. Doc. Line-Reserve"](../codeunit/5854.md) OnBeforeCheckApplyFromItemEntrySourceType, [Codeunit 99000832 "Sales Line-Reserve"](../codeunit/99000832.md) OnBeforeCheckApplyFromItemEntrySourceType, [Codeunit 99000835 "Item Jnl. Line-Reserve"](../codeunit/99000835.md) OnBeforeCheckApplyFromItemEntrySourceType, [Codeunit 99000842 "Service Line-Reserve"](../codeunit/99000842.md) OnBeforeCheckApplyFromItemEntrySourceType
- `OnGetSourceShipmentDate(var TrackingSpecification: Record "Tracking Specification"; var ShipmentDate: Date)` (integration)
  - subscribers: [Codeunit 1032 "Job Planning Line-Reserve"](../codeunit/1032.md) OnGetSourceShipmentDate, [Codeunit 99000832 "Sales Line-Reserve"](../codeunit/99000832.md) OnGetSourceShipmentDate, [Codeunit 99000834 "Purch. Line-Reserve"](../codeunit/99000834.md) OnGetSourceShipmentDate, [Codeunit 99000836 "Transfer Line-Reserve"](../codeunit/99000836.md) OnGetSourceShipmentDate, [Codeunit 99000838 "Prod. Order Comp.-Reserve"](../codeunit/99000838.md) OnGetSourceShipmentDate, [Codeunit 99000842 "Service Line-Reserve"](../codeunit/99000842.md) OnGetSourceShipmentDate

## Procedures

- `GetLastEntryNo(): Integer`
- `InitQtyToShip()`
- `InitQtyToInvoice()`
- `CalcQty(BaseQty: Decimal): Decimal`
- `CopySpecification(var TempTrackingSpecification: Record "Tracking Specification" temporary)`
- `HasSameTracking(TrackingSpecification: Record "Tracking Specification"): Boolean`
- `InsertSpecification()`
- `InitTrackingSpecification(FromType: Integer; FromSubtype: Integer; FromID: Code[20]; FromBatchName: Code[10]; FromProdOrderLine: Integer; FromRefNo: Integer; FromVariantCode: Code[10]; FromLocationCode: Code[10]; FromQtyPerUOM: Decimal)`
- `InitExpirationDate()`
- `IsReclass(): Boolean`
- `TestFieldError(FieldCaptionText: Text[80]; CurrFieldValue: Decimal; CompareValue: Decimal)`
- `SetItemData(ItemNo: Code[20]; ItemDescription: Text[100]; LocationCode: Code[10]; VariantCode: Code[10]; BinCode: Code[20]; QtyPerUoM: Decimal)`
- `SetItemData(ItemNo: Code[20]; ItemDescription: Text[100]; LocationCode: Code[10]; VariantCode: Code[10]; BinCode: Code[20]; QtyPerUoM: Decimal; QtyRoundingPrecision: Decimal)`
- `SetQuantities(QtyBase: Decimal; QtyToHandle: Decimal; QtyToHandleBase: Decimal; QtyToInvoice: Decimal; QtyToInvoiceBase: Decimal; QtyHandledBase: Decimal; QtyInvoicedBase: Decimal)`
- `ClearSourceFilter()`
- `SetSource(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceRefNo: Integer; SourceBatchName: Code[10]; SourceProdOrderLine: Integer)`
- `SetSourceFromPurchLine(PurchLine: Record "Purchase Line")`
- `SetSourceFromSalesLine(SalesLine: Record "Sales Line")`
- `SetSourceFromReservEntry(ReservEntry: Record "Reservation Entry")`
- `SetSourceFilter(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceRefNo: Integer; SourceKey: Boolean)`
- `SetSourceFilter(SourceBatchName: Code[10]; SourceProdOrderLine: Integer)`
- `ClearTracking()`
- `ClearTrackingFilter()`
- `SetTrackingBlank()`
- `CopyTrackingFromTrackingSpec(TrackingSpecification: Record "Tracking Specification")`
- `CopyNewTrackingFromTrackingSpec(TrackingSpecification: Record "Tracking Specification")`
- `CopyNewTrackingFromNewTrackingSpec(TrackingSpecification: Record "Tracking Specification")`
- `CopyTrackingFromEntrySummary(EntrySummary: Record "Entry Summary")`
- `CopyTrackingFromItemLedgEntry(ItemLedgerEntry: Record "Item Ledger Entry")`
- `CopyTrackingFromItemTrackingSetup(ItemTrackingSetup: Record "Item Tracking Setup")`
- `CopyTrackingFromReservEntry(ReservEntry: Record "Reservation Entry")`
- `CopyTrackingFromWhseActivityLine(WhseActivityLine: Record "Warehouse Activity Line")`
- `CopyTrackingFromWhseItemTrackingLine(WhseItemTrackingLine: Record "Whse. Item Tracking Line")`
- `SetTrackingFilterBlank()`
- `SetTrackingFilterFromEntrySummary(EntrySummary: Record "Entry Summary")`
- `SetTrackingFilterFromItemJnlLine(ItemJnlLine: Record "Item Journal Line")`
- `SetTrackingFilterFromItemLedgEntry(ItemLedgEntry: Record "Item Ledger Entry")`
- `SetTrackingFilterFromItemTrackingSetup(ItemTrackingSetup: Record "Item Tracking Setup")`
- `SetTrackingFilterFromReservEntry(ReservEntry: Record "Reservation Entry")`
- `SetNewTrackingFilterFromNewReservEntry(ReservEntry: Record "Reservation Entry")`
- `SetNewTrackingFilterFromNewTrackingSpec(TrackingSpecification: Record "Tracking Specification")`
- `SetTrackingFilterFromSpec(TrackingSpecification: Record "Tracking Specification")`
- `SetNonSerialTrackingFilterFromSpec(TrackingSpecification: Record "Tracking Specification")`
- `SetTrackingFilterFromWhseActivityLine(WhseActivityLine: Record "Warehouse Activity Line")`
- `SetTrackingKey()`
- `SetSkipSerialNoQtyValidation(NewSkipSerialNoQtyValidation: Boolean)`
- `CheckItemTrackingQuantity(TableNo: Integer; DocumentType: Option; DocumentNo: Code[20]; LineNo: Integer; QtyToHandleBase: Decimal; QtyToInvoiceBase: Decimal; Handle: Boolean; Invoice: Boolean)`
- `CheckItemTrackingQuantity(TableNo: Integer; DocumentType: Option; DocumentNo: Code[20]; LineNo: Integer; ProdOrderLineNo: Integer; QtyToHandleBase: Decimal; QtyToInvoiceBase: Decimal; Handle: Boolean; Invoice: Boolean)`
- `CheckItemTrackingByType(var ReservationEntry: Record "Reservation Entry"; QtyToHandleBase: Decimal; QtyToInvoiceBase: Decimal; OnlyLot: Boolean; Handle: Boolean; Invoice: Boolean)`
- `TestTrackingFieldsAreBlank()`
- `TrackingExists(): Boolean`
- `NewTrackingExists(): Boolean`
- `NonSerialTrackingExists(): Boolean`
- `GetSourceShipmentDate(): Date`

Plus 9 local procedures.

## Triggers

OnDelete

## Relations

- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- Item Ledger Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Transfer Item Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md)

## Pages and codeunits on this table

- [Page 6510 "Item Tracking Lines"](../page/6510.md) (source table)
- [Page 6532 "Continuous Item Tracking"](../page/6532.md) (source table)
- [Page 6533 "Continuous Scanning Line"](../page/6533.md) (source table)

## 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 6500 "Item Tracking Management"](../codeunit/6500.md) (3 calls: `InitExpirationDate → CopyExpirationDateForLot`, `InitExpirationDate → ExistingExpirationDate`, `InitExpirationDate → ExistingWarrantyDate`)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (1 call: `CalcQty → QtyRndPrecision`)
- [Codeunit 703 "Find Record Management"](../codeunit/703.md) (1 call: `GetLastEntryNo → GetLastEntryIntFieldValue`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-26, BC28

## Countries that replace it

[RU](../../localizations/ru.md)

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