---
id: object/table/5878
type: object
title: Table 5878 "Phys. Invt. Record Line"
summary: Table 5878 "Phys. Invt. Record Line" in Base Application (Microsoft.Inventory.Counting.Recording). 32 fields, 7 public procedures, 16 events. Present since at least BC23, still in BC30, changed in BC24-28.
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: 25a1847e3ec72b94a81a923a1b14c6372472f2b4abdb9373d879e7873f7a9b88
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Counting/Recording/PhysInvtRecordLine.Table.al
    title: src/Layers/W1/BaseApp/Inventory/Counting/Recording/PhysInvtRecordLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 5878
name: Phys. Invt. Record Line
namespace: Microsoft.Inventory.Counting.Recording
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"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 32
  procedures: 26
  events: 16
  subscribers: 0
relations:
  out: 12
  referenced_by: 0
  pages: 3
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 0
  implements: 0
---

# Table 5878 "Phys. Invt. Record Line"

> Table 5878 "Phys. Invt. Record Line" in Base Application (Microsoft.Inventory.Counting.Recording). 32 fields, 7 public procedures, 16 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

## Properties

| Property | Value |
|---|---|
| Caption | Phys. Invt. Record Line |
| 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 | Order No. | Code[20] | Specifies the order number. | TableRelation [Table 5877 "Phys. Invt. Record Header"](../table/5877.md) (Phys. Invt. Record Header); DataClassification SystemMetadata |
| 2 | Recording No. | Integer | Specifies a number that is assigned to the physical inventory recording. | TableRelation [Table 5877 "Phys. Invt. Record Header"](../table/5877.md) ("Phys. Invt. Record Header"."Recording No." where("Order No." = field("Order No."))); DataClassification SystemMetadata |
| 3 | Line No. | Integer | Specifies the number of the line. | DataClassification SystemMetadata |
| 16 | Order Line No. | Integer | Specifies the Line No. of the linked physical inventory order line. | TableRelation [Table 5876 "Phys. Invt. Order Line"](../table/5876.md) ("Phys. Invt. Order Line"."Line No." where("Document No." = field("Order No."))); not editable; DataClassification SystemMetadata |
| 17 | Recorded Without Order | Boolean | — | not editable; DataClassification SystemMetadata |
| 20 | Item No. | Code[20] | Specifies the number of the item that was counted when taking the physical inventory. | TableRelation [Table 27 "Item"](../table/27.md); DataClassification SystemMetadata |
| 21 | 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."))); DataClassification SystemMetadata |
| 22 | Location Code | Code[10] | Specifies the code of the location where the item was counted during taking the physical inventory. | TableRelation [Table 14 "Location"](../table/14.md); DataClassification SystemMetadata |
| 23 | Bin Code | Code[20] | Specifies the code of the bin where the item was counted while performing the physical inventory. | TableRelation [Table 7354 "Bin"](../table/7354.md) (Bin.Code where("Location Code" = field("Location Code"))); DataClassification SystemMetadata |
| 30 | Description | Text[100] | Specifies the description of the item. | DataClassification SystemMetadata |
| 31 | Description 2 | Text[50] | Specifies the additional description of the item. | DataClassification SystemMetadata |
| 32 | Unit of Measure | Text[50] | Specifies the unit of measure used for the item, for example bottle or piece. | DataClassification SystemMetadata |
| 33 | Qty. Rounding Precision | Decimal | — | not editable; DataClassification SystemMetadata |
| 34 | Qty. Rounding Precision (Base) | Decimal | — | not editable; DataClassification SystemMetadata |
| 40 | Unit of Measure Code | Code[10] | Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted. | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) ("Item Unit of Measure".Code where("Item No." = field("Item No."))); DataClassification SystemMetadata |
| 41 | Quantity | Decimal | Specifies the quantity of the item of the physical inventory recording line. | DataClassification SystemMetadata |
| 42 | Quantity (Base) | Decimal | Specifies the Quantity on the line, expressed in base units of measure. <small>via [Page 5882 "Phys. Invt. Recording Lines"](../page/5882.md)</small> | DataClassification SystemMetadata |
| 43 | Qty. per Unit of Measure | Decimal | — | not editable; DataClassification SystemMetadata |
| 45 | Recorded | Boolean | Specifies if a value was entered in Quantity of the physical inventory recording line. | DataClassification SystemMetadata |
| 53 | Use Item Tracking | Boolean | Specifies if it is necessary to record the item using serial, lot or package numbers. | not editable; DataClassification SystemMetadata |
| 99 | Shelf No. | Code[10] | — | DataClassification SystemMetadata |
| 100 | Date Recorded | Date | Specifies the date when the physical inventory was taken. | DataClassification SystemMetadata |
| 101 | Time Recorded | Time | Specifies the time when the physical inventory was taken. | DataClassification SystemMetadata |
| 102 | Person Recorded | Code[20] | Specifies the code of the person who performed the physical inventory. | TableRelation [Table 5200 "Employee"](../table/5200.md); DataClassification SystemMetadata |
| 103 | Recorded by User ID | Code[50] | Created by User <small>caption</small> | TableRelation User."User Name"; DataClassification EndUserIdentifiableInformation |
| 130 | Serial No. | Code[50] | Specifies the serial number of the entered item. | DataClassification SystemMetadata |
| 131 | Lot No. | Code[50] | Specifies the lot number of the entered item. | DataClassification SystemMetadata |
| 132 | Package No. | Code[50] | Specifies the package number of the entered item. | DataClassification SystemMetadata |
| 5725 | Item Reference No. | Code[50] | Specifies a reference to the item number as defined by the item's barcode. | DataClassification SystemMetadata |
| 5726 | Item Reference Unit of Measure | Code[10] | Reference Unit of Measure <small>caption</small> | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) ("Item Unit of Measure".Code where("Item No." = field("Item No."))); DataClassification SystemMetadata |
| 5727 | Item Reference Type | Enum "Item Reference Type" | — | enum [Enum 5726 "Item Reference Type"](../enum/5726.md); DataClassification SystemMetadata |
| 5728 | Item Reference Type No. | Code[30] | — | DataClassification SystemMetadata |

## Keys

- Key1: Order No., Recording No., Line No. (clustered)
- Key2: Order No., Order Line No.
- Key3: Order No., Item No., Variant Code, Location Code, Bin Code
- Key4: Order No., Recording No., Location Code, Bin Code
- Key5: Order No., Recording No., Shelf No.

## Events published

- `OnBeforeInsertTrackingBufferLocationIsBinMandatory(var WarehouseEntry: Record "Warehouse Entry"; PhysInvtRecordLine: Record "Phys. Invt. Record Line")` (integration)
- `OnBeforeValidateBinCode(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var IsHandled: Boolean)` (integration)
- `OnShowUsedTrackLinesOnAfterInsertFromItemLedgEntry2(var TempInvtOrderTracking: Record "Invt. Order Tracking" temporary; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnShowUsedTrackLinesOnAfterInsertFromWhseEntry2(var TempInvtOrderTracking: Record "Invt. Order Tracking" temporary; WarehouseEntry: Record "Warehouse Entry")` (integration)
- `OnShowUsedTrackLinesOnAfterLookupOK2(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var TempInvtOrderTracking: Record "Invt. Order Tracking" temporary)` (integration)
- `OnShowUsedTrackLinesSetItemLedgerEntryFilters2(var ItemLedgerEntry: Record "Item Ledger Entry"; PhysInvtRecordLine: Record "Phys. Invt. Record Line")` (integration)
- `OnShowUsedTrackLinesSetWhseEntryFilters(var WarehouseEntry: Record "Warehouse Entry"; PhysInvtRecordLine: Record "Phys. Invt. Record Line")` (integration)
- `OnQuatityOnValidateOnAfterCalcShouldCheckSerialNo(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var ShouldCheckSerialNo: Boolean)` (integration)
- `OnValidateItemNoOnAfterInitFromTempRecord(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; TempPhysInvtRecordLine: Record "Phys. Invt. Record Line" temporary)` (integration)
- `OnValidateItemNoOnBeforeTestfieldBlocked(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnValidateVariantCodeOnBeforeTestFieldBlocked(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var ItemVariant: Record "Item Variant"; var IsHandled: Boolean)` (integration)
- `OnBeforeShowUsedTrackLines(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnAfterValidateItemNo(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; PhysInvtRecordHeader: Record "Phys. Invt. Record Header"; Item: Record Item)` (integration)
- `OnBeforeCheckSerialNo(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var IsHandled: Boolean)` (integration)
- `OnValidateSerialNoOnAfterCheckSerialNo(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeRunPhysInvtTrackingLinesOnShowUsedTrackLines(var PhysInvtRecordLine: Record "Phys. Invt. Record Line"; var TempInvtOrderTracking: Record "Invt. Order Tracking" temporary; var IsHandled: Boolean)` (integration)

## Procedures

- `GetPhysInvtRecordHeader()`
- `EmptyLine(): Boolean`
- `ShowUsedTrackLines()`
- `CheckSerialNo()`
- `InsertTrackingBuffer(var TempInvtOrderTracking: Record "Invt. Order Tracking" temporary; ItemTrackingSetup: Record "Item Tracking Setup"; ExpirationDate: Date; QtyBase: Decimal)`
- `GetDateForCalculations(): Date`
- `TrackingExists(): Boolean`

Plus 3 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- drill-down page [Page 5882 "Phys. Invt. Recording Lines"](../page/5882.md)
- lookup page [Page 5882 "Phys. Invt. Recording Lines"](../page/5882.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- Person Recorded: TableRelation [Table 5200 "Employee"](../table/5200.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Item Reference Unit of Measure: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md)
- Order Line No.: TableRelation [Table 5876 "Phys. Invt. Order Line"](../table/5876.md)
- Order No.: TableRelation [Table 5877 "Phys. Invt. Record Header"](../table/5877.md)
- Recording No.: TableRelation [Table 5877 "Phys. Invt. Record Header"](../table/5877.md)
- Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md)

## Pages and codeunits on this table

- [Page 30237 "APIV2 - Phys. Inv. Rec. Lines"](../page/30237.md) (source table)
- [Page 5881 "Phys. Invt. Recording Subform"](../page/5881.md) (source table)
- [Page 5882 "Phys. Invt. Recording Lines"](../page/5882.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 5889 "Phys. Invt. Tracking Mgt."](../codeunit/5889.md) (2 calls: `ShowUsedTrackLines → GetTrackingNosFromWhse`, `ShowUsedTrackLines → LocationIsBinMandatory`)

## Across versions

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

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Phys. Invt. Record Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
