---
id: object/table/83
type: object
title: Table 83 "Item Journal Line"
summary: Table 83 "Item Journal Line" in Base Application (Microsoft.Inventory.Journal). 145 fields, 87 public procedures, 138 events. Present since at least BC23, still in BC30, changed in BC24-29.
tier: official
language: en
tags:
  - table
  - 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: 7c3e905e3341c3cc7c44f60ae280fa55980308d3b2bb7f3c2d7f9863171e7d98
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al
    title: src/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/production-cancel-production-orders-that-have-consumption
    - https://learn.microsoft.com/dynamics365/business-central/production-how-to-register-consumption-and-output
    - https://learn.microsoft.com/dynamics365/business-central/value-chain-howto-mfg
    - https://learn.microsoft.com/dynamics365/business-central/production-how-to-post-output-quantity
    - https://learn.microsoft.com/dynamics365/business-central/production-how-to-post-scrap
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-to-close-open-item-ledger-entries-resulting-from-fixed-application-in-the-item-journal
    - https://learn.microsoft.com/dynamics365/business-central/warehouse-how-to-move-items-ad-hoc-in-basic-warehousing
    - https://learn.microsoft.com/dynamics365/business-central/ui-work-general-journals
    - https://learn.microsoft.com/dynamics365/business-central/production-how-to-post-consumption
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-inventory-costs
    - topic/business-central/business-functionality/finance/manage-payables/make-payments
    - topic/business-central/business-functionality/general-business-functionality
    - topic/business-central/business-functionality/manufacturing
    - topic/business-central/business-functionality/sustainability-management/sustainability-value-chain
    - topic/business-central/business-functionality/warehouse-management/internal-warehouse-processes/move-items
  localizations:
    - localization/au
    - localization/ch
    - localization/es
    - localization/fr
    - localization/gb
    - localization/it
    - localization/nz
    - localization/ru
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9464
object_type: table
object_id: 83
name: Item Journal Line
namespace: Microsoft.Inventory.Journal
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:
  - au
  - ch
  - es
  - fr
  - gb
  - it
  - nz
  - ru
ms_search_form_ids: []
counts:
  fields: 145
  procedures: 257
  events: 138
  subscribers: 0
relations:
  out: 55
  referenced_by: 1
  pages: 14
  extended_by: 5
  event_subscribers: 79
  calls: 16
  called_by: 0
  implements: 0
---

# Table 83 "Item Journal Line"

> Table 83 "Item Journal Line" in Base Application (Microsoft.Inventory.Journal). 145 fields, 87 public procedures, 138 events. Present since at least BC23, still in BC30, changed in BC24-29.

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

Learn documents this table through its pages: [Page 5510 "Production Journal"](../page/5510.md) (3 Learn pages), [Page 99000823 "Output Journal"](../page/99000823.md) (2), [Page 40 "Item Journal"](../page/40.md) (1), [Page 393 "Item Reclass. Journal"](../page/393.md) (1), [Page 519 "Item Journal Lines"](../page/519.md) (1), [Page 99000773 "Capacity Journal"](../page/99000773.md) (1), [Page 99000778 "Recurring Capacity Journal"](../page/99000778.md) (1), [Page 99000827 "Recurring Output Journal"](../page/99000827.md) (1), [Page 99000846 "Consumption Journal"](../page/99000846.md) (1), [Page 99000850 "Recurring Consumption Journal"](../page/99000850.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Item Journal 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 | Journal Template Name | Code[10] | Specifies the name of the journal template, the basis of the journal batch, that the entries were posted from. | TableRelation [Table 82 "Item Journal Template"](../table/82.md) (Item Journal Template) |
| 2 | Line No. | Integer | Specifies the number of the journal line. |  |
| 3 | Item No. | Code[20] | Specifies the number of the item on the journal line. | TableRelation [Table 27 "Item"](../table/27.md) |
| 4 | Posting Date | Date | Specifies the posting date for the entry. |  |
| 5 | Entry Type | Enum "Item Ledger Entry Type" | Specifies the type of transaction that will be posted from the item journal line. | enum [Enum 78 "Item Ledger Entry Type"](../enum/78.md) |
| 6 | Source No. | Code[20] | — | TableRelation [Table 18 "Customer"](../table/18.md), [Table 23 "Vendor"](../table/23.md), [Table 27 "Item"](../table/27.md) (if ("Source Type" = const(Customer)) Customer else if ("Source Type" = const(Vendor)) Vendor else if ("Source Type" = const(Item)) Item); not editable |
| 7 | Document No. | Code[20] | Specifies a document number for the journal line. |  |
| 8 | Description | Text[100] | Specifies a description of the item on the journal line. |  |
| 9 | Location Code | Code[10] | Specifies the code for the inventory location where the item on the journal line will be registered. | TableRelation [Table 14 "Location"](../table/14.md) |
| 10 | Inventory Posting Group | Code[20] | — | TableRelation [Table 94 "Inventory Posting Group"](../table/94.md) (Inventory Posting Group); not editable |
| 11 | Source Posting Group | Code[20] | — | TableRelation [Table 92 "Customer Posting Group"](../table/92.md), [Table 93 "Vendor Posting Group"](../table/93.md), [Table 94 "Inventory Posting Group"](../table/94.md) (if ("Source Type" = const(Customer)) "Customer Posting Group" else if ("Source Type" = const(Vendor)) "Vendor Posting Group" else if ("Source Type" = const(Item)) "Inventory Posting Group"); not editable |
| 13 | Quantity | Decimal | Specifies the number of units of the item to be included on the journal line. |  |
| 15 | Invoiced Quantity | Decimal | — | not editable |
| 16 | Unit Amount | Decimal | Specifies the price of one unit of the item on the journal line. |  |
| 17 | Unit Cost | Decimal | Specifies the cost of one unit of the item or resource on the line. |  |
| 18 | Amount | Decimal | Specifies the line's net amount. |  |
| 22 | Discount Amount | Decimal | Specifies the discount amount of this entry on the line. | not editable |
| 23 | Salespers./Purch. Code | Code[20] | Specifies the code for the salesperson or purchaser who is linked to the sale or purchase on the journal line. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) ("Salesperson/Purchaser" where(Blocked = const(false))) |
| 26 | Source Code | Code[10] | — | TableRelation [Table 230 "Source Code"](../table/230.md) (Source Code); not editable |
| 29 | Applies-to Entry | Integer | Specifies if the quantity on the journal line must be applied to an already-posted entry. In that case, enter the entry number that the quantity will be applied to. |  |
| 32 | Item Shpt. Entry No. | Integer | — | not editable |
| 34 | Shortcut Dimension 1 Code | Code[20] | Specifies the code for Shortcut Dimension 1, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1), Blocked = const(false))) |
| 35 | Shortcut Dimension 2 Code | Code[20] | Specifies the code for Shortcut Dimension 2, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2), Blocked = const(false))) |
| 37 | Indirect Cost % | Decimal | Specifies the percentage of the item's last purchase cost that includes indirect costs, such as freight that is associated with the purchase of the item. |  |
| 39 | Source Type | Enum "Analysis Source Type" | — | enum [Enum 7131 "Analysis Source Type"](../enum/7131.md); not editable |
| 40 | Shpt. Method Code | Code[10] | — | TableRelation [Table 10 "Shipment Method"](../table/10.md) (Shipment Method) |
| 41 | Journal Batch Name | Code[10] | Specifies the name of the journal batch, a personalized journal layout, that the entries were posted from. | TableRelation [Table 233 "Item Journal Batch"](../table/233.md) ("Item Journal Batch".Name where("Journal Template Name" = field("Journal Template Name"))) |
| 42 | Reason Code | Code[10] | Specifies the reason code, a supplementary source code that enables you to trace the entry. | TableRelation [Table 231 "Reason Code"](../table/231.md) (Reason Code) |
| 43 | Recurring Method | Option | Specifies a recurring method, if you have indicated that the journal is recurring. | OptionCaption: ,Fixed,Variable |
| 44 | Expiration Date | Date | Specifies the last date on which the recurring journal will be posted, if you have indicated that the journal is recurring. |  |
| 45 | Recurring Frequency | DateFormula | Specifies a recurring frequency if it is indicated that the journal is recurring. |  |
| 46 | Drop Shipment | Boolean | — | not editable |
| 47 | Transaction Type | Code[10] | Specifies the type of transaction that the document represents, for the purpose of reporting to INTRASTAT. | TableRelation [Table 258 "Transaction Type"](../table/258.md) (Transaction Type) |
| 48 | Transport Method | Code[10] | Specifies the transport method, for the purpose of reporting to INTRASTAT. | TableRelation [Table 259 "Transport Method"](../table/259.md) (Transport Method) |
| 49 | Country/Region Code | Code[10] | Specifies the country/region of the address. | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region) |
| 50 | New Location Code | Code[10] | Specifies the new location to link to the items on this journal line. | TableRelation [Table 14 "Location"](../table/14.md) |
| 51 | New Shortcut Dimension 1 Code | Code[20] | Specifies the new dimension value code that the item journal line will be linked to. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1), Blocked = const(false))) |
| 52 | New Shortcut Dimension 2 Code | Code[20] | Specifies the new dimension value code that the item journal line will be linked to. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2), Blocked = const(false))) |
| 53 | Qty. (Calculated) | Decimal | Specifies the quantity on hand of the item. <small>via [Page 392 "Phys. Inventory Journal"](../page/392.md)</small> | not editable |
| 54 | Qty. (Phys. Inventory) | Decimal | Specifies the quantity on hand of the item as determined from a physical count. <small>via [Page 392 "Phys. Inventory Journal"](../page/392.md)</small> |  |
| 55 | Last Item Ledger Entry No. | Integer | — | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry); not editable |
| 56 | Phys. Inventory | Boolean | — | not editable |
| 57 | Gen. Bus. Posting Group | Code[20] | Specifies the vendor's or customer's trade type to link transactions made for this business partner with the appropriate general ledger account according to the general posting setup. | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group) |
| 58 | Gen. Prod. Posting Group | Code[20] | Specifies the item's product type to link transactions made for this item with the appropriate general ledger account according to the general posting setup. | TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md) (Gen. Product Posting Group) |
| 59 | Entry/Exit Point | Code[10] | — | TableRelation [Table 282 "Entry/Exit Point"](../table/282.md) (Entry/Exit Point) |
| 60 | Document Date | Date | Specifies the date when the related document was created. |  |
| 62 | External Document No. | Code[35] | Specifies a document number that refers to the customer's or vendor's numbering system. |  |
| 63 | Area | Code[10] | — | TableRelation [Table 284 "Area"](../table/284.md) |
| 64 | Transaction Specification | Code[10] | — | TableRelation [Table 285 "Transaction Specification"](../table/285.md) (Transaction Specification) |
| 65 | Posting No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series) |
| 68 | Reserved Quantity | Decimal | — | FlowField: sum("Reservation Entry".Quantity where("Source ID" = field("Journal Template Name"), "Source Ref. No." = field("Line No."), "Source Type" = const(83), #pragma warning disable AL0603 "Source Subtype" = field("Entry Type"), #pragma warning restore "Source Batch Name" = field("Journal Batch Name"), "So...; not editable |
| 72 | Unit Cost (ACY) | Decimal | — | not editable |
| 73 | Source Currency Code | Code[10] | — | TableRelation [Table 4 "Currency"](../table/4.md); not editable |
| 79 | Document Type | Enum "Item Ledger Document Type" | — | enum [Enum 79 "Item Ledger Document Type"](../enum/79.md) |
| 80 | Document Line No. | Integer | — |  |
| 86 | VAT Reporting Date | Date | VAT Date <small>caption</small> |  |
| 90 | Order Type | Enum "Inventory Order Type" | — | enum [Enum 90 "Inventory Order Type"](../enum/90.md); not editable |
| 91 | Order No. | Code[20] | Specifies the number of the order that created the entry. |  |
| 92 | Order Line No. | Integer | Specifies the line number of the order that created the entry. |  |
| 101 | Applies-to Rem. Quantity | Decimal | Applies-to Remaining Quantity <small>caption</small> | FlowField: sum("Item Application Entry".Quantity where("Inbound Item Entry No." = field("Applies-to Entry"), "Posting Date" = field(upperlimit("Posting Date")))); not editable |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 481 | New Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 904 | Assemble to Order | Boolean | — | not editable |
| 1000 | Job No. | Code[20] | Project No. <small>caption</small> |  |
| 1001 | Job Task No. | Code[20] | Project Task No. <small>caption</small> |  |
| 1002 | Job Purchase | Boolean | Project Purchase <small>caption</small> |  |
| 1030 | Job Contract Entry No. | Integer | Project Contract Entry No. <small>caption</small> | not editable |
| 5402 | 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."))) |
| 5403 | Bin Code | Code[20] | Specifies the bin where the items are picked or put away. | TableRelation [Table 7354 "Bin"](../table/7354.md) (if ("Entry Type" = filter(Purchase \| "Positive Adjmt." \| Output), Quantity = filter(>= 0)) Bin.Code where("Location Code" = field("Location Code"), "Item Filter" = field("Item No."), "Variant Filter" = field("Variant Code")) else if ("Entry Type" = filter(Purchase \| "Positive Adjmt." \| Output), Quan...) |
| 5404 | Qty. per Unit of Measure | Decimal | — | not editable |
| 5406 | New Bin Code | Code[20] | Specifies the new bin code to link to the items on this journal line. | TableRelation [Table 7354 "Bin"](../table/7354.md) (Bin.Code where("Location Code" = field("New Location Code"), "Item Filter" = field("Item No."), "Variant Filter" = field("Variant Code"))) |
| 5407 | 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."))) |
| 5408 | Derived from Blanket Order | Boolean | — | not editable |
| 5410 | Qty. Rounding Precision | Decimal | — | not editable |
| 5411 | Qty. Rounding Precision (Base) | Decimal | — | not editable |
| 5413 | Quantity (Base) | Decimal | — |  |
| 5415 | Invoiced Qty. (Base) | Decimal | — | not editable |
| 5468 | Reserved Qty. (Base) | Decimal | Specifies the quantity of the item reserved for the line. <small>via [Page 519 "Item Journal Lines"](../page/519.md)</small> | FlowField: sum("Reservation Entry"."Quantity (Base)" where("Source ID" = field("Journal Template Name"), "Source Ref. No." = field("Line No."), "Source Type" = const(83), #pragma warning disable AL0603 "Source Subtype" = field("Entry Type"), #pragma warning restore "Source Batch Name" = field("Journal Batch Na...; not editable |
| 5560 | Level | Integer | — | not editable |
| 5561 | Flushing Method | Enum Microsoft.Manufacturing.Setup."Flushing Method" | Specifies how consumption of the item (component) is calculated and handled in production processes. Manual: Enter and post consumption in the consumption journal manually. Forward: Automatically posts consumption according to the production order component lines when the first operation starts. Bac... | enum Microsoft.Manufacturing.Setup."Flushing Method"; not editable |
| 5562 | Changed by User | Boolean | — | not editable |
| 5701 | Originally Ordered No. | Code[20] | — | TableRelation [Table 27 "Item"](../table/27.md) |
| 5702 | Originally Ordered Var. Code | Code[10] | — | TableRelation [Table 5401 "Item Variant"](../table/5401.md) ("Item Variant".Code where("Item No." = field("Originally Ordered No."))) |
| 5703 | Out-of-Stock Substitution | Boolean | — |  |
| 5704 | Item Category Code | Code[20] | — | TableRelation [Table 5722 "Item Category"](../table/5722.md) (Item Category) |
| 5705 | Nonstock | Boolean | Catalog <small>caption</small> |  |
| 5706 | Purchasing Code | Code[10] | — | TableRelation [Table 5721 "Purchasing"](../table/5721.md) |
| 5725 | Item Reference No. | Code[50] | Specifies a reference to the item number as defined by the item's barcode. |  |
| 5726 | Item Reference Unit of Measure | Code[10] | — | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) ("Item Unit of Measure".Code where("Item No." = field("Item No."))) |
| 5727 | Item Reference Type | Enum "Item Reference Type" | — | enum [Enum 5726 "Item Reference Type"](../enum/5726.md) |
| 5728 | Item Reference Type No. | Code[30] | — |  |
| 5791 | Planned Delivery Date | Date | — |  |
| 5793 | Order Date | Date | — |  |
| 5800 | Value Entry Type | Enum "Cost Entry Type" | — | enum [Enum 104 "Cost Entry Type"](../enum/104.md) |
| 5801 | Item Charge No. | Code[20] | — | TableRelation [Table 5800 "Item Charge"](../table/5800.md) (Item Charge) |
| 5802 | Inventory Value (Calculated) | Decimal | Specifies the calculated inventory value of the item at the specified posting date. <small>via [Page 5803 "Revaluation Journal"](../page/5803.md)</small> | not editable |
| 5803 | Inventory Value (Revalued) | Decimal | Specifies the new inventory value. <small>via [Page 5803 "Revaluation Journal"](../page/5803.md)</small> |  |
| 5804 | Variance Type | Enum "Cost Variance Type" | — | enum [Enum 106 "Cost Variance Type"](../enum/106.md) |
| 5805 | Inventory Value Per | Option | — | OptionCaption: ,Item,Location,Variant,Location and Variant; not editable |
| 5806 | Partial Revaluation | Boolean | — | not editable |
| 5807 | Applies-from Entry | Integer | Specifies the number of the outbound item ledger entry, whose cost is forwarded to the inbound item ledger entry. |  |
| 5808 | Invoice No. | Code[20] | — |  |
| 5809 | Unit Cost (Calculated) | Decimal | Specifies the current unit cost of this item before revaluation. <small>via [Page 5803 "Revaluation Journal"](../page/5803.md)</small> | not editable |
| 5810 | Unit Cost (Revalued) | Decimal | Specifies the revalued unit cost of this item. <small>via [Page 5803 "Revaluation Journal"](../page/5803.md)</small> |  |
| 5811 | Applied Amount | Decimal | — | not editable |
| 5812 | Update Standard Cost | Boolean | — |  |
| 5813 | Amount (ACY) | Decimal | — |  |
| 5817 | Correction | Boolean | — |  |
| 5818 | Adjustment | Boolean | — |  |
| 5819 | Applies-to Value Entry | Integer | — |  |
| 5820 | Invoice-to Source No. | Code[20] | — | TableRelation [Table 18 "Customer"](../table/18.md), [Table 23 "Vendor"](../table/23.md) (if ("Source Type" = const(Customer)) Customer else if ("Source Type" = const(Vendor)) Vendor) |
| 5830 | Type | Enum Microsoft.Manufacturing.Capacity."Capacity Type Journal" | Specifies the journal type, which is either Work Center or Machine Center. | enum Microsoft.Manufacturing.Capacity."Capacity Type Journal" |
| 5831 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. | TableRelation [Table 156 "Resource"](../table/156.md) (if (Type = const(Resource)) Resource) |
| 5858 | Cap. Unit of Measure Code | Code[10] | Specifies the unit of measure code for the capacity usage. | TableRelation [Table 205 "Resource Unit of Measure"](../table/205.md), [Table 99000780 "Capacity Unit of Measure"](../table/99000780.md) (if (Type = const(Resource)) "Resource Unit of Measure".Code where("Resource No." = field("No.")) else Microsoft.Manufacturing.Capacity."Capacity Unit of Measure") |
| 5859 | Qty. per Cap. Unit of Measure | Decimal | — |  |
| 5887 | Unit Cost Calculation | Enum "Unit Cost Calculation Type" | — | enum [Enum 5409 "Unit Cost Calculation Type"](../enum/5409.md) |
| 5888 | Subcontracting | Boolean | — |  |
| 6500 | Serial No. | Code[50] | Specifies the serial number of the item. |  |
| 6501 | Lot No. | Code[50] | Specifies the lot number of the item. |  |
| 6502 | Warranty Date | Date | Specifies the warranty expiration date of the item. |  |
| 6503 | New Serial No. | Code[50] | — | not editable |
| 6504 | New Lot No. | Code[50] | — | not editable |
| 6505 | New Item Expiration Date | Date | — |  |
| 6506 | Item Expiration Date | Date | — | not editable |
| 6515 | Package No. | Code[50] | Specifies the package number of the item. |  |
| 6516 | New Package No. | Code[50] | — | not editable |
| 6600 | Return Reason Code | Code[10] | — | TableRelation [Table 6635 "Return Reason"](../table/6635.md) (Return Reason) |
| 7000 | Price Calculation Method | Enum "Price Calculation Method" | Specifies the method that will be used for price calculation in the journal line. | enum [Enum 7000 "Price Calculation Method"](../enum/7000.md) |
| 7315 | Warehouse Adjustment | Boolean | — |  |
| 7316 | Direct Transfer | Boolean | — | DataClassification SystemMetadata |
| 7380 | Phys Invt Counting Period Code | Code[10] | — | TableRelation [Table 7381 "Phys. Invt. Counting Period"](../table/7381.md) (Phys. Invt. Counting Period); not editable |
| 7381 | Phys Invt Counting Period Type | Option | — | OptionCaption: ,Item,SKU; not editable |
| 99000755 | Overhead Rate | Decimal | — |  |
| 99000756 | Single-Level Material Cost | Decimal | — |  |
| 99000757 | Single-Level Capacity Cost | Decimal | — |  |
| 99000758 | Single-Level Subcontrd. Cost | Decimal | — |  |
| 99000759 | Single-Level Cap. Ovhd Cost | Decimal | — |  |
| 99000760 | Single-Level Mfg. Ovhd Cost | Decimal | — |  |
| 99000761 | Rolled-up Material Cost | Decimal | — |  |
| 99000762 | Rolled-up Capacity Cost | Decimal | — |  |
| 99000763 | Rolled-up Subcontracted Cost | Decimal | — |  |
| 99000764 | Rolled-up Mfg. Ovhd Cost | Decimal | — |  |
| 99000765 | Rolled-up Cap. Overhead Cost | Decimal | — |  |
| 99000766 | Single-Lvl Mat. Non-Invt. Cost | Decimal | Single-Level Material Non-Inventory Cost <small>caption</small> |  |
| 99000767 | Rolled-up Mat. Non-Invt. Cost | Decimal | Rolled-up Material Non-Inventory Cost <small>caption</small> |  |

## Keys

- Key1: Journal Template Name, Journal Batch Name, Line No. (clustered)
- Key2: Entry Type, Item No., Variant Code, Location Code, Bin Code, Posting Date
- Key3: Entry Type, Item No., Variant Code, New Location Code, New Bin Code, Posting Date
- Key4: Item No., Posting Date
- Key5: Journal Template Name, Journal Batch Name, Item No., Location Code, Variant Code
- Key6: Journal Template Name, Journal Batch Name, Document No.
- Key7: Journal Template Name, Journal Batch Name, Document No., Item No., Location Code, Bin Code

## Events published

- `OnAfterInitDefaultDimensionSources(var ItemJournalLine: Record "Item Journal Line"; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; FieldNo: Integer; CalledForNewDimension: Boolean)` (integration): Event triggered after initializing default dimension sources for the Item Journal Line record. Subscribing to this event allows developers to extend the standard behavior of initializing default dimesions for the item journal record.
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterInitDefaultDimensionSources
- `OnBeforeCreateDim(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean; CurrFieldNo: Integer; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; InheritFromDimSetID: Integer; InheritFromTableNo: Integer)` (integration): Event triggerd before creating a dimension for an item journal line. Subscribing to this event allows developers to implement custom logic or override asigning default source dimensions to the item journal line.
- `OnAfterSetupNewLine(var ItemJournalLine: Record "Item Journal Line"; var LastItemJournalLine: Record "Item Journal Line"; ItemJournalTemplate: Record "Item Journal Template"; ItemJnlBatch: Record "Item Journal Batch")` (integration): Event triggered after the new item journal line has been set up. This event allows developers to add custom logic or make adjustments to the record after the new line has been configured.
- `OnAfterSigned(ItemJournalLine: Record "Item Journal Line"; Value: Decimal; var Result: Decimal)` (integration): Event triggered after calculating the signed value. This event allows developers to adjust or log the signed value after the main procedure logic has executed.
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnAfterSigned, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterSigned
- `OnAfterCalcBaseQty(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; FromFieldName: Text; var Result: Decimal)` (integration)
- `OnAfterCheckTrackingisEmpty(ItemJournalLine: Record "Item Journal Line")` (integration)
- `OnAfterCheckNewTrackingisEmpty(ItemJournalLine: Record "Item Journal Line")` (integration)
- `OnAfterCheckTrackingEqualItemLedgEntry(ItemJournalLine: Record "Item Journal Line"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCheckTrackingEqualItemLedgEntry
- `OnAfterCheckTrackingEqualTrackingSpecification(ItemJournalLine: Record "Item Journal Line"; TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCheckTrackingEqualTrackingSpecification
- `OnAfterClearTracking(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineClearTracking
- `OnAfterCopyItemJnlLineFromSalesHeader(var ItemJnlLine: Record "Item Journal Line"; SalesHeader: Record "Sales Header")` (integration): Event triggered after copying data from the "Sales Header" to the current record. This event allows developers to implement custom logic or make adjustments to the current record after data has been copied from the "Sales Header."
- `OnAfterCopyItemJnlLineFromSalesLine(var ItemJnlLine: Record "Item Journal Line"; SalesLine: Record "Sales Line")` (integration): Event triggered after copying data from the "Sales Line" to the current record. This event allows developers to implement custom logic or make adjustments to the current record after data has been copied from the "Sales Line."
  - subscribers: [Codeunit 5012 "Service Declaration Mgt."](../codeunit/5012.md) OnAfterCopyItemJnlLineFromSalesLine
- `OnAfterCopyItemJnlLineFromPurchHeader(var ItemJnlLine: Record "Item Journal Line"; PurchHeader: Record "Purchase Header")` (integration): Event triggered after copying data from the "Purchase Header" to the current record. This event allows developers to implement custom logic or make adjustments to the current record after data has been copied from the "Purchase Header."
- `OnAfterCopyItemJnlLineFromPurchLine(var ItemJnlLine: Record "Item Journal Line"; PurchLine: Record "Purchase Line")` (integration): Event triggered after copying data from the "Purchase Line" to the current record. This event allows developers to implement custom logic or make adjustments to the current record after data has been copied from the "Purchase Line."
  - subscribers: [Codeunit 5012 "Service Declaration Mgt."](../codeunit/5012.md) OnAfterCopyItemJnlLineFromPurchaseLine, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterCopyItemJnlLineFromPurchLine
- `OnAfterCopyItemJnlLineFromJobJnlLine(var ItemJournalLine: Record "Item Journal Line"; JobJournalLine: Record "Job Journal Line")` (integration): Event triggered after copying data from the "Job Journal Line" to the current record. This event allows developers to implement custom logic or make adjustments to the current record after data has been copied from the "Job Journal Line."
- `OnAfterCopyTrackingFromReservEntry(var ItemJournalLine: Record "Item Journal Line"; ReservEntry: Record "Reservation Entry")` (integration)
- `OnAfterCopyTrackingFromItemLedgEntry(var ItemJournalLine: Record "Item Journal Line"; ItemLedgEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCopyTrackingFromItemLedgEntry
- `OnAfterCopyTrackingFromSpec(var ItemJournalLine: Record "Item Journal Line"; TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCopyTrackingFromSpec
- `OnAfterCopyNewTrackingFromNewSpec(var ItemJournalLine: Record "Item Journal Line"; TrackingSpecification: Record "Tracking Specification")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCopyNewTrackingFromNewSpec
- `OnAfterCopyNewTrackingFromOldItemLedgerEntry(var ItemJournalLine: Record "Item Journal Line"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineOnAfterCopyNewTrackingFromOldItemLedgerEntry
- `OnAfterDisplayErrorIfItemIsBlocked(var Item: Record Item; var ItemJournalLine: Record "Item Journal Line")` (integration)
- `OnAfterDisplayErrorIfItemVariantIsBlocked(var ItemVariant: Record "Item Variant"; var ItemJournalLine: Record "Item Journal Line")` (integration)
- `OnAfterGetItemChange(var Item: Record Item; var ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after getting the global "Item" record based on the "Item No." field value. This event allows developers to apply additional logic or handle changes after the global "Item" record has been retrieved.
- `OnAfterGetItemVariantChange(var ItemVariant: Record "Item Variant"; var ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after getting the global "Item Variant" record and synchronizing it with the "Variant Code" and "Item No." fields. This event allows developers to apply additional logic or handle changes after the "Item Variant" record has been retrieved.
- `OnAfterGetLineWithPrice(var LineWithPrice: Interface "Line With Price")` (integration): Event triggered after retrieving the line with price. This event allows developers to modify or enhance the behavior of the `LineWithPrice` interface after it has been set. Custom logic can be applied to tailor the behavior of the assigned interface.
- `OnAfterGetUnitAmount(var ItemJournalLine: Record "Item Journal Line"; UnitCost: Decimal)` (integration): Event triggered after calculating the "Unit Amount" for the current item journal line record. This event allows developers to add custom logic or make adjustments to the calculated "Unit Amount" value after the procedure has completed its logic.
- `OnAfterHasSameNewTracking(ItemJournalLine: Record "Item Journal Line"; var IsSameTracking: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineHasSameNewTracking
- `OnAfterOnValidateItemNoAssignByEntryType(var ItemJournalLine: Record "Item Journal Line"; var Item: Record Item)` (integration)
  - subscribers: [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnAfterOnValidateItemNoAssignByEntryType
- `OnAfterReadGLSetup(var GeneralLedgerSetup: Record "General Ledger Setup")` (integration): Event triggered after the "General Ledger Setup" has been read. This event allows developers to implement custom logic or make adjustments after the "General Ledger Setup" has been successfully loaded into memory.
- `OnAfterRecalculateUnitAmount(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer)` (integration)
- `OnAfterSetReservationEntry(var ReservEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after setting the fields of a "Reservation Entry" record in the "SetReservationEntry" procedure. This event allows developers to implement custom logic or modify the "Reservation Entry" record after its fields have been populated using the provided data.
- `OnAfterSetReservationFilters(var ReservEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after setting filters on a "Reservation Entry" record in the "SetReservationFilters" procedure. This event allows developers to implement custom filters or modify the "Reservation Entry" record after its filters have been set using the current record data.
- `OnAfterTrackingExists(var ItemJournalLine: Record "Item Journal Line"; var IsTrackingExist: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineTrackingExists
- `OnAfterUpdateAmount(var ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after updating the "Amount" field in the current item journal line record. This event allows developers to add custom logic after the "Amount" field has been updated. For example, additional calculations or validations can be performed at this stage
- `OnAfterValidateShortcutDimCode(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration): Event triggered after validating the shortcut dimension code for the current item journal line record. This event allows developers to adjust or log the validated dimension code and its integration with the "Dimension Set ID".
- `OnBeforeCheckItemAvailable(ItemJournalLine: Record "Item Journal Line"; CalledByFieldNo: Integer; var IsHandled: Boolean)` (integration): Event triggered before performing the item availability check. This event allows developers to add custom logic or override the default behavior of the item availability check.
- `OnBeforeCheckReservedQtyBase(var ItemJournalLine: Record "Item Journal Line"; var Item: Record Item; var IsHandled: Boolean)` (integration): Event triggered before checking the reserved quantity (base) during the valid.tion of quantity This event allows developers to override or enhance the logic for checking reserved quantities in base units.
- `OnBeforeDisplayErrorIfItemIsBlocked(var Item: Record Item; var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeDisplayErrorIfItemVariantIsBlocked(var ItemVariant: Record "Item Variant"; var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeFindUnitCost(var ItemJournalLine: Record "Item Journal Line"; var UnitCost: Decimal; var IsHandled: Boolean)` (integration): Event triggered before calculating the unit cost in the "FindUnitCost" procedure. This event allows developers to implement custom logic for calculating the unit cost.
- `OnBeforeGetUnitAmount(var ItemJournalLine: Record "Item Journal Line"; CalledByFieldNo: Integer; var IsHandled: Boolean)` (integration): Event triggered before calculating the "Unit Amount". This event allows developers to add custom logic or override the default unit amount calculation.
- `OnBeforeLookupItemNo(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before executing the lookup logic for the "Item No." field in the "LookupItemNo" procedure. This event allows developers to implement custom logic or modify the behavior before the default lookup logic for the "Item No." field is executed.
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnBeforeLookupItemNo
- `OnBeforeRetrieveCosts(var ItemJournalLine: Record "Item Journal Line"; var UnitCost: Decimal; var IsHandled: Boolean)` (integration): Event triggered before retrieving and calculating costs. This event allows developers to implement custom logic or override the default cost retrieval process.
- `OnBeforeRevaluationPerEntryAllowed(ItemJournalLine: Record "Item Journal Line"; ItemNo: Code[20]; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeSelectItemEntry(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer)` (integration): Event triggered before initializing the selection of an "Item Ledger Entry" in the "SelectItemEntry" procedure. This event allows developers to add custom logic or modify the behavior before the selection process begins. For example, additional filters or setup logic can be applied to the record or ...
- `OnBeforeSetNewBinCodeForSameLocationTransfer(var ItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration): Event triggered before setting the "New Bin Code" for same-location transfers. This event allows developers to implement custom logic or override the default behavior for setting the "New Bin Code".
- `OnBeforeValidateAppliesToEntry(var ItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration): Event triggered before validating the "Applies-to Entry" field in the current item journal line record. This event allows developers to add custom logic or override the default behavior before the "Applies-to Entry" field has been validated.
- `OnBeforeValidateAmount(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before validating the Amount field. This event allows developers to add custom logic or skip the default processing.
- `OnBeforeValidateItemDirectCostUnitAmount(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before validating the direct cost "Unit Amount" for the current item journal line record. This event allows developers to implement custom logic or override the default validation process.
- `OnBeforeValidateUnitOfMeasureCode(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before validating the "Unit of Measure Code" field in the current item journal line record. This event allows developers to add custom logic or override the default behavior before the "Unit of Measure Code" field has been validated.
- `OnBeforeValidateQuantityBase(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; FieldNo: Integer; var IsHandled: Boolean)` (integration): Event triggered before validating the "Quantity (Base)" field in the current item journal line record. This event allows developers to add custom logic or override the default behavior before the "Quantity (Base)" field has been validated.
- `OnBeforeVerifyReservedQty(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; CalledByFieldNo: Integer)` (integration): Event triggered before validating the "Output Quantity (Base)" field in the current item journal line record. This event allows developers to add custom logic or override the default behavior before the "Output Quantity (Base)" field has been validated.
- `OnCheckItemJournalLinePostRestrictions()` (integration)
  - subscribers: [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) ItemJournalBatchCheckItemJournalLinePostRestrictions, [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) ItemJournalLineCheckItemPostRestrictions
- `OnSetUpNewLineOnAfterFindItemJnlLine(var ItemJournalLine: Record "Item Journal Line"; var FirstItemJournalLine: Record "Item Journal Line"; var LastItemJnlLine: Record "Item Journal Line")` (integration): Event triggered after finding the first item journal line in the current batch. This event allows developers to add custom logic or modify the current item journal line record after the first line is found.
- `OnSelectItemEntryOnBeforeOpenPage(var ItemLedgerEntry: Record "Item Ledger Entry"; ItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer)` (integration): Event triggered before opening the "Item Ledger Entries" page in the "SelectItemEntry" procedure. This event allows developers to customize or apply additional logic to the "Item Ledger Entry" record before it is displayed on the "Item Ledger Entries" page.
- `OnValidateCapUnitOfMeasureCodeOnCaseOrderTypeElse(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateCapUnitOfMeasureCodeOnCaseOrderTypeElse, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateCapUnitOfMeasureCodeOnCaseOrderTypeElse
- `OnValidateCapUnitOfMeasureCodeOnSetQtyPerCapUnitOfMeasure(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateCapUnitOfMeasureCodeOnSetQtyPerCapUnitOfMeasure
- `OnLookUpTrackingSummaryOnCaseOrderTypeElse(var ItemJournalLine: Record "Item Journal Line"; TempTrackingSpecification: Record "Tracking Specification" temporary; TrackingType: Enum "Item Tracking Type")` (integration)
- `OnValidateAppliesfromEntryOnBeforeCheckTrackingExistsError(ItemJournalLine: Record "Item Journal Line"; ItemLedgEntry: Record "Item Ledger Entry"; var IsHandled: Boolean)` (integration): Event triggered before checking if tracking exists for selected item ledger entry during the validation of the "Applies-from Entry" field. In case tracking exists error will be thrown. This event allows developers to add custom logic or override the default behavior when verifying if tracking exists...
- `OnValidateItemNoOnAfterGetItem(var ItemJournalLine: Record "Item Journal Line"; Item: Record Item; var SkipInventoryValueZeroCheck: Boolean)` (integration): Event triggered after retrieving the item during validation of the "Item No." field. This event allows developers to execute custom logic after the item has been retrieved during validation.
- `OnValidateAppliestoEntryOnAfterCalcShouldCheckItemLedgEntryFieldsForOutput(var ItemJournalLine: Record "Item Journal Line"; var ItemLedgerEntry: Record "Item Ledger Entry"; var ShouldCheckItemLedgEntryFieldsForOutput: Boolean)` (integration): Event triggered after determining whether the system should check source of the item ledger entry. If the item journal line "Entry Type" is "Output", then the system should check if item ledger entry must be created from production order. This event allows developers to execute custom logic after th...
- `OnValidateOrderNoOnCaseOrderTypeElse(var ItemJournalLine: Record "Item Journal Line"; var xItemJournalLine: Record "Item Journal Line")` (integration): Event triggered when the "Order Type" is recognized as an unhandled case during the validation of the "Order No." field. This event allows developers to extend the logic for unhandled "Order Type" cases during the validation of the "Order No." field.
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateOrderNoOnCaseOrderTypeElse, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateOrderNoOnCaseOrderTypeElse
- `OnValidateOrderLineNoOnCaseOrderTypeElse(var ItemJournalLine: Record "Item Journal Line"; var xItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after setting filters on the production order line record during the validation of the "Order Line No." field. This event allows developers to add custom logic or modify the behavior after filters are applied to the production order line record.
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateOrderLineNoOnCaseOrderTypeElse, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateOrderLineNoOnCaseOrderTypeElse
- `OnValidateQuantityOnBeforeGetUnitAmount(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; CallingFieldNo: Integer)` (integration): Event triggered before calculating unit amount during the validation of the "Quantity" field. This event allows developers to add custom logic or perform additional actions before the unit amount has been calculated.
  - subscribers: [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnValidateQuantityOnBeforeGetUnitAmount
- `OnValidateAppliesToEntryOnAferCalcShowTrackingExistsError(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; var ShowTrackingExistsError: Boolean)` (integration): Event triggered after calculating whether to show an error for existing item tracking on the "Applies-to Entry" field. This event allows developers to modify the logic or state of the "ShowTrackingExistsError" parameter.
- `OnBeforeTestItemFields(var ItemJournalLine: Record "Item Journal Line"; ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateShortcutDimCode(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration): Event triggered before validating the shortcut dimension code to the current item journal line record. This event allows developers to implement custom logic or modify the dimension code before the validation logic is executed.
- `OnValidateUnitOfMeasureCodeOnBeforeCalcUnitCost(var ItemJournalLine: Record "Item Journal Line"; var UnitCost: Decimal; var IsHandled: Boolean)` (integration): Event triggered before calculating the unit cost during the validation of the "Unit of Measure Code" field. This event allows developers to modify or override the default calculation logic for the unit cost.
- `OnValidateUnitOfMeasureCodeOnBeforeWhseValidateSourceLine(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line")` (integration): Event triggered before calling validation of warehouse source line during the validation of the "Unit of Measure Code" field. This event allows developers to implement custom logic or make modifications before warehouse validation has been performed for the source line.
- `OnValidateUnitOfMeasureCodeOnBeforeValidateQuantity(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateUnitOfMeasureCodeOnBeforeValidateQuantity
- `OnBeforeUpdateAmount(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before updating the "Amount" field incurrent item journal line. This event allows developers to add custom logic or override the standard "Amount" calculation logic.
- `OnRetrieveCostsOnAfterSetUnitCost(var ItemJournalLine: Record "Item Journal Line"; var UnitCost: Decimal; Item: Record Item)` (integration): Event triggered after setting the unit cost for the current record. This event allows developers to adjust or log the unit cost after it has been calculated.
- `OnValidateItemNoOnBeforeValidateUnitOfmeasureCode(var ItemJournalLine: Record "Item Journal Line"; var Item: Record Item; CurrFieldNo: Integer; xItemJournalLine: Record "Item Journal Line")` (integration): Event triggered before validating the unit of measure code for the "Item No." field. This event allows developers to execute custom logic before the unit of measure code validation.
- `OnValidateItemNoOnBeforeSetDescription(var ItemJournalLine: Record "Item Journal Line"; Item: Record Item)` (integration): Event triggered before setting the description on item journal line from the retrived item record. This event allows developers to modify the record or item before the description has been set.
- `OnValidateItemNoOnAfterCalcUnitCost(var ItemJournalLine: Record "Item Journal Line"; Item: Record Item)` (integration): Event triggered after calculating the unit cost during validation of the "Item No." field. This event allows developers to execute custom logic after unit cost calculation has been completed.
- `OnValidateItemNoOnSetCostAndPrice(var ItemJournalLine: Record "Item Journal Line"; UnitCost: Decimal)` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateItemNoOnSetCostAndPrice, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateItemNoOnSetCostAndPrice
- `OnValidateItemNoOnAfterCreateDimInitial(var ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after creating default dimensions for the current record if field "Item No." is empty. This event allows developers to add custom dimensions after default ones have been created.
  - subscribers: [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnValidateItemNoOnAfterCreateDimInitial
- `OnBeforeCopyDim(var ItemJournalLine: Record "Item Journal Line"; DimenionSetID: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateLocationCode(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before validating the "Location Code" field in the item journal line. This event allows developers to add custom logic or override the default behavior before the "Location Code" field has been validated.
- `OnAfterIsDefaultBin(Location: Record Location; var Result: Boolean)` (integration)
- `OnAfterGetLocation(var Location: Record Location; LocationCode: Code[10])` (integration): Event triggered after retrieving or clearing a location record in the "GetLocation" procedure. This event allows developers to perform additional actions after the location record has been retrieved based on the provided location code.
- `OnAfterCheckTrackingIfRequired(ItemJournalLine: Record "Item Journal Line"; ItemTrackingSetup: Record "Item Tracking Setup")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineOnAfterCheckTrackingIfRequired
- `OnBeforeCheckTrackingIfRequired(ItemJournalLine: Record "Item Journal Line"; ItemTrackingSetup: Record "Item Tracking Setup")` (integration)
- `OnAfterCheckNewTrackingIfRequired(ItemJournalLine: Record "Item Journal Line"; ItemTrackingSetup: Record "Item Tracking Setup")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineOnAfterCheckNewTrackingIfRequired
- `OnAfterCheckTrackingIfrequiredNotBlank(ItemJournalLine: Record "Item Journal Line"; ItemTrackingSetup: Record "Item Tracking Setup")` (integration)
- `OnAfterInitRevalJnlLine(var ItemJournalLine: Record "Item Journal Line"; ItemLedgEntry2: Record "Item Ledger Entry")` (integration): Event triggered after initializing the revaluation journal line. This event allows developers to adjust or log the initialized revaluation journal line after the default logic has been executed.
- `OnAfterSetTrackingFilterFromItemLedgerEntry(var ItemJournalLine: Record "Item Journal Line"; ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineOnAfterSetTrackingFilterFromItemLedgerEntry
- `OnRecalculateUnitAmountOnAfterCalcQtyPerUnitOfMeasure(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line")` (integration)
- `OnBinCodeOnCheckProdOrderCompBinCodeCheckNeeded(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered to determine if a bin code check is needed for the production order component during the validation of the "Bin Code" field. This event allows developers to add custom logic or override the default behavior for checking the production order component's bin code.
- `OnAfterShowDimensions(var ItemJournalLine: Record "Item Journal Line"; var xItemJournalLine: Record "Item Journal Line")` (integration)
- `OnAfterShowReclasDimensions(var ItemJournalLine: Record "Item Journal Line"; var xItemJournalLine: Record "Item Journal Line")` (integration)
- `OnValidateItemNoOnBeforeAssignIndirectCostPct(var ItemJournalLine: Record "Item Journal Line"; Item: Record Item)` (integration): Event triggered before assigning indirect cost percentage and overhead rate during validation of the "Item No." field. This event allows developers to modify these fields or execute additional logic before the values have been assigned.
- `OnSetUpNewLineOnBeforeSetDefaultPriceCalculationMethod(var ItemJournalLine: Record "Item Journal Line"; ItemJnlBatch: Record "Item Journal Batch"; var DimMgt: Codeunit DimensionManagement)` (integration): Event triggered before setting the default price calculation method. This event allows developers to override or extend the default behavior for setting the price calculation method in the item journal line.
- `OnBeforeSkipRenumberDocumentNo(ItemJournalLine: Record "Item Journal Line"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeRenumberDocNoOnLines(var DocNo: Code[20]; var ItemJnlLine2: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnAfterRenumberDocNoOnLines(var DocNo: Code[20]; var ItemJnlLine2: Record "Item Journal Line")` (integration)
- `OnBinCodeOnBeforeTestBinMandatory(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before testing the "Bin Mandatory" field on a selected Location of the current item journal line during the validation of the "Bin Code" field. This event allows developers to add custom logic or override the default behavior when testing the "Bin Mandatory" field for the selected Lo...
- `OnBeforeCheckItemTracking(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnAfterSelectItemEntry(var ItemJournalLine: Record "Item Journal Line")` (integration): Event triggered after the selection process for an item ledger entry is completed. This event allows developers to add custom logic or postprocessing after an entry has been selected.
- `OnBeforeInitRevalJnlLine(var ItemJournalLine: Record "Item Journal Line"; ItemLedgEntry2: Record "Item Ledger Entry"; var IsHandled: Boolean)` (integration): Event triggered before initializing the revaluation journal line. This event allows developers to implement custom logic or override the default initialization process.
- `OnAfterLookUpTrackingSummary(var ItemJournalLine: Record "Item Journal Line"; TempTrackingSpecification: Record "Tracking Specification" temporary; TrackingType: Enum "Item Tracking Type")` (integration)
- `OnAfterInitTableValuePair(var ItemJournalLine: Record "Item Journal Line"; var TableValuePair: Dictionary of [Integer, Code[20]]; FieldNo: Integer)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterInitTableValuePair
- `OnBeforeSigned(ItemJournalLine: Record "Item Journal Line"; var Value: Decimal; var Result: Decimal; var IsHandled: Boolean)` (integration): Event triggered before calculating the signed value. This event allows developers to implement custom logic for determining the signed value.
- `OnBeforeValidateTypeWithItemNo(var ItemJournalLine: Record "Item Journal Line"; Item: Record "Item"; var IsHandled: Boolean)` (integration)
- `OnCreateDimOnBeforeUpdateGlobalDimFromDimSetID(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer; OldDimSetID: Integer; DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; InheritFromDimSetID: Integer; InheritFromTableNo: Integer)` (integration): Event triggered before updating global dimensions from the calculated "Dimension Set ID". This event allows developers to customize the update process for global dimensions after the "Dimension Set ID" is calculated.
- `OnBeforeCheckSerialNoQty(var ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnAfterSetReservEntrySourceFilters(var ReservationEntry: Record "Reservation Entry"; SourceKey: Boolean)` (integration): Event triggered after setting source filters on a "Reservation Entry" record in the "SetReservEntrySourceFilters" procedure. This event allows developers to implement custom filters or modify the "Reservation Entry" record after its source filters have been set based on the provided source key and c...
- `OnAfterEmptyLine(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration): Event triggered after evaluating whether a current line is considered empty based on values of Quantity, 'Item No.' and 'Value Entry Type'. This event allows developers to add custom logic or modify the result of the empty line evaluation. For example, additional conditions can be checked or the res...
- `OnBeforeValidateNewLocationCode(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration): Event triggered before validating the "New Location Code" field in the item journal line. This event allows developers to add custom logic or override the default behavior before the "New Location Code" field has been validated.
- `OnValidateEntryTypeOnUpdateByEntryType(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateEntryTypeOnUpdateByEntryType, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateEntryTypeOnUpdateByEntryType
- `OnValidateUnitAmountOnUpdateByEntryType(var ItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer)` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateUnitAmountOnUpdateByEntryType, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateUnitAmountOnUpdateByEntryType
- `OnValidateUnitCostOnUpdateByEntryType(var ItemJournalLine: Record "Item Journal Line"; CurrentFieldNo: Integer)` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnValidateUnitCostOnUpdateByEntryType, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateUnitCostOnUpdateByEntryType
- `OnAfterSetDefaultPriceCalculationMethod(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnAfterSetDefaultPriceCalculationMethod, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterSetDefaultPriceCalculationMethod
- `OnAfterCheckEntryType(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnAfterCheckEntryType, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterCheckEntryType
- `OnAfterIsEntryTypeConsumption(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnAfterIsEntryTypeConsumption, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterIsEntryTypeConsumption
- `OnAfterIsEntryTypeOutput(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterIsEntryTypeOutput
- `OnAfterIsEntryTypeProduction(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterIsEntryTypeProduction
- `OnAfterIsOrderTypeAsmOrProd(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 924 "Asm. Item Journal Mgt."](../codeunit/924.md) OnAfterIsOrderTypeAsmOrProd, [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterIsOrderTypeAsmOrProd
- `OnAfterIsDocNoProdOrderNo(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterIsDocNoProdOrderNo
- `OnValidateItemNoOnAfterValidateUnitofMeasureCode(var ItemJournalLine: Record "Item Journal Line"; var xItemJournalLine: Record "Item Journal Line"; var Item: Record Item; CurrentFieldNo: Integer)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateItemNoOnAfterValidateUnitofMeasureCode
- `OnValidateNoOnAfterValidateItemNo(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateNoOnAfterValidateItemNo
- `OnValidateNoOnBeforeValidateItemNo(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateNoOnBeforeValidateItemNo
- `OnValidateQuantityOnAfterSetCallWhseCheck(var ItemJournalLine: Record "Item Journal Line"; var CallWhseCheck: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateQuantityOnAfterSetCallWhseCheck
- `OnValidateBinCodeOnCompBinCheck(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnValidateBinCodeOnCompBinCheck
- `OnSelectItemEntryOnSetFilters(var ItemJournalLine: Record "Item Journal Line"; var ItemLedgerEntry: Record "Item Ledger Entry"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnSelectItemEntryOnSetFilters
- `OnAfterValidateNo(var ItemJournalLine: Record "Item Journal Line")` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnAfterValidateNo
- `OnTimeIsEmpty(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnTimeIsEmpty
- `OnOnlyStopTime(var ItemJournalLine: Record "Item Journal Line"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnOnlyStopTime
- `OnGetOrderTypeProduction(var OrderType: Enum "Inventory Order Type")` (integration)
  - subscribers: [Codeunit 99000762 "Mfg. Item Journal Mgt."](../codeunit/99000762.md) OnGetOrderTypeProduction
- `OnGetOrderTypeService(var OrderType: Enum "Inventory Order Type")` (integration)
  - subscribers: [Codeunit 6450 "Serv. Integration Mgt."](../codeunit/6450.md) OnGetOrderTypeService
- `OnValidateEntryTypeBeforeValidateLocationCode(var ItemJnlLine: Record "Item Journal Line")` (integration)
- `OnBeforeValidateNewShortcutDimCode(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; FieldNumber: Integer; var NewShortcutDimCode: Code[20])` (integration)
- `OnAfterValidateNewShortcutDimCode(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; FieldNumber: Integer; var NewShortcutDimCode: Code[20])` (integration)
- `OnCreateDimOnTransferOtherTableId(var ItemJournalLine: Record "Item Journal Line"; TableId: Integer)` (integration)
- `OnCreateNewDimOnBeforeUpdateGlobalDimFromDimSetID(var ItemJournalLine: Record "Item Journal Line")` (integration)
- `OnAfterCreateNewDimFromDefaultDim(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line")` (integration)
- `OnBeforeOpenItemTrackingLines(var ItemJournalLine: Record "Item Journal Line"; IsReclass: Boolean)` (integration)
- `OnValidateQtyPhysInventoryOnBeforeCheckQuantity(var ItemJournalLine: Record "Item Journal Line"; xItemJournalLine: Record "Item Journal Line"; var SkipQuantityCheck: Boolean)` (integration)

## Trigger event subscribers

- OnAfterCheckNewTrackingIsEmpty: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCheckNewTrackingIsEmpty
- OnAfterCheckTrackingIfRequiredNotBlank: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineOnAfterCheckTrackingIfRequiredNotBlank
- OnAfterCheckTrackingIsEmpty: [Codeunit 6516 "Package Management"](../codeunit/6516.md) ItemJournalLineCheckTrackingIsEmpty
- OnAfterDeleteEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterItemJournalDeleteRecall
- OnAfterInsertEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterItemJournalInsertSetRecId, [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) RestrictItemJournalLineAfterInsert
- OnAfterModifyEvent: [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) RestrictItemJournalLineAfterModify
- OnAfterRenameEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterItemJournalRenameUpdateRecId, [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) UpdateItemJournalLineRestrictionsAfterRename
- OnAfterValidateEvent(Run Time): [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnAfterValidateRunTimeEvent
- OnAfterValidateEvent(Setup Time): [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnAfterValidateSetupTimeEvent
- OnAfterValidateEvent(Stop Time): [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnAfterValidateStopTimeEvent
- OnBeforeValidateEvent(Entry Type): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnItemJournalLineUpdateEntryTypeRecallItemNotif
- OnBeforeValidateEvent(Quantity): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnItemJournalLineUpdateQtyTo0RecallItemNotif
- OnValidateCapUnitofMeasureCodeOnBeforeRoutingCostPerUnit: [Codeunit 6254 "Sust. Manufacturing Subscriber"](../codeunit/6254.md) OnValidateCapUnitofMeasureCodeOnBeforeRoutingCostPerUnit
- OnValidateItemNoOnBeforeValidateUnitOfMeasureCode: [Codeunit 6282 "Sust. Item Journal Subscriber"](../codeunit/6282.md) OnValidateItemNoOnBeforeValidateUnitOfMeasureCode

## Procedures

- `EmptyLine(): Boolean`: Determines if the current item journal line is considered empty based on its quantity, time, item number, and value entry type.
- `IsValueEntryForDeletedItem(): Boolean`: Determines if the current item journal line is for a deleted item based on its entry type, value entry type, item number, item charge number, and invoiced quantity.
- `CalcReservedQuantity()` (internal)
- `UpdateAmount()`: Updates the amount of the current item journal line to reflect changes in quantity and unit amount.
- `CheckItemAvailable(CalledByFieldNo: Integer)`: Checks if the item is available based on the current item journal line.
- `GetItem()`
- `SetUpNewLine(LastItemJnlLine: Record "Item Journal Line")`: Initializes a new item journal line based on the previous item journal line record.
- `SetDocNos(DocType: Enum "Item Ledger Document Type"; DocNo: Code[20]; ExtDocNo: Text[35]; PostingNos: Code[20])`: Sets the document-related fields of an item journal line.
- `GetUnitAmount(CalledByFieldNo: Integer)`: Updates the unit amount of the current item journal line.
- `ApplyPrice(PriceType: Enum "Price Type"; CalledByFieldNo: Integer)`: Updates the price of the item journal line.
- `GetLineWithPrice(var LineWithPrice: Interface "Line With Price")`: Gets the default or overridden line with price interface implementation.
- `Signed(Value: Decimal): Decimal`: Adjusts the sign of the provided value based on the document type of the item journal line.
- `IsInbound(): Boolean`: Determines if the item journal line is inbound based on the quantities.
- `OpenItemTrackingLines(IsReclass: Boolean)`: Opens a page for editing item tracking lines for the item journal line.
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])`: Creates dimensions for the item journal line based on the provided default dimension sources.
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; InheritFromDimSetID: Integer; InheritFromTableNo: Integer)`: Creates dimensions for the item journal line based on the provided default dimension sources, an inherited dimension set ID and an inherited table number.
- `CopyDim(DimesionSetID: Integer)`: Sets dimensions to the item journal line from the provided dimension set.
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`: Verifies whether the provided shortcut dimension code and value are valid.
- `LookupShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`: Opens a page for selecting a dimension code, then assigns the selected value to the provided number of the shortcut dimension.
- `ShowShortcutDimCode(var ShortcutDimCode: array[8] of Code[20])`: Gets an array of shortcut dimension values from the dimensions of the item journal line.
- `ValidateNewShortcutDimCode(FieldNumber: Integer; var NewShortcutDimCode: Code[20])`: Verifies whether the provided new shortcut dimension code and value are valid.
- `LookupNewShortcutDimCode(FieldNumber: Integer; var NewShortcutDimCode: Code[20])`: Opens a page for selecting a dimension code, then assigns the selected value to the presented number of the new shortcut dimension.
- `ShowNewShortcutDimCode(var NewShortcutDimCode: array[8] of Code[20])`: Gets an array of new shortcut dimension values from the dimensions of the item journal line.
- `CopyDocumentFields(DocType: Enum "Item Ledger Document Type"; DocNo: Code[20]; ExtDocNo: Text[35]; SourceCode: Code[10]; NoSeriesCode: Code[20])`: Copies provided document-related fields to the current item journal line record.
- `CopyFromSalesHeader(SalesHeader: Record "Sales Header")`: Copies fields from the provided sales header record to the current item journal line.
- `CopyFromSalesLine(SalesLine: Record "Sales Line")`: Copies fields from the provided sales line record to the current item journal line.
- `CopyFromPurchHeader(PurchHeader: Record "Purchase Header")`: Copies fields from the provided purchase header record to the current item journal line.
- `CopyFromPurchLine(PurchLine: Record "Purchase Line")`: Copies fields from the provided purchase line record to the current item journal line.
- `CopyFromJobJnlLine(JobJnlLine: Record "Job Journal Line")`: Copies fields from the provided job journal line record to the current item journal line.
- `RetrieveCosts()` (protected): Retrieves and sets the global UnitCost variable for an item journal line.
- `TimeIsEmpty(): Boolean`: Determines if time related fields of the current item journal line record are empty.
- `OnlyStopTime(): Boolean`: Determines if only the stop time field of the current item journal line record is set.
- `RowID1(): Text[250]`: Generates a unique identifier text for a item journal line record which is used for item tracking.
- `GetSourceCaption(): Text`: Returns a formatted text that represents the source of an item journal line record.
- `SetReservationEntry(var ReservEntry: Record "Reservation Entry")`: Initializes the reservation entries from the item journal line.
- `SetReservationFilters(var ReservEntry: Record "Reservation Entry")`: Filters reservation entry from the item journal line.
- `SetReservEntrySourceFilters(var ReservEntry: Record "Reservation Entry"; SourceKey: Boolean)`
- `IsSourceSales(): Boolean` (internal)
- `IsSourceProductionJournal(): Boolean` (internal)
- `IsSourceCapacityJournal(): Boolean` (internal)
- `ReservEntryExist(): Boolean`: Checks if reservation entry exists for the item journal line.
- `LookupItemNo()`: Performs a lookup for the item of an item journal line based on its entry type.
- `RecalculateUnitAmount()`: Updates the unit amount for an item journal line record based on various factors such as the item's indirect cost percentage, overhead rate, quantity per unit of measure, and entry type.
- `IsReclass(ItemJnlLine: Record "Item Journal Line"): Boolean`: Determines whether an item journal line represents a reclassification.
- `ShowDimensions()`: Opens a page for editing dimensions for the item journal line.
- `ShowReclasDimensions()`: Opens a page for editing the dimension set associated with a reclassification in the current item journal line.
- `SwitchLinesWithErrorsFilter(var ShowAllLinesEnabled: Boolean)`: Toggles the visibility of item journal lines based on whether they have associated error messages.
- `ClearTracking()`: Clears the tracking information (serial, lot and package number) of an item journal line.
- `ClearDates()`: Clears the expiration and warranty dates of the item journal line.
- `CopyTrackingFromReservEntry(ReservationEntry: Record "Reservation Entry")`: Copies tracking information (serial, lot and package number) from a reservation entry to an item journal line.
- `CopyTrackingFromItemLedgEntry(ItemLedgEntry: Record "Item Ledger Entry")`: Copies tracking information (serial, lot and package number) from a item ledger entry to an item journal line.
- `CopyTrackingFromSpec(TrackingSpecification: Record "Tracking Specification")`: Copies tracking information (serial, lot and package number) from a tracking specification to an item journal line.
- `CopyNewTrackingFromNewSpec(TrackingSpecification: Record "Tracking Specification")`: Copies new tracking information (new serial number and new lot number) from a tracking specification to an item journal line.
- `CopyNewTrackingFromOldItemLedgerEntry(ItemLedgEntry: Record "Item Ledger Entry")`: Copies tracking information (serial, lot and package number) from a item ledger entry to an item journal line.
- `SetTrackingFilterFromItemLedgerEntry(ItemledgerEntry: Record "Item Ledger Entry")`: Set tracking information (serial, lot and package number) filter from a item ledger entry to an item journal line.
- `TrackingExists(): Boolean`: Determines whether tracking information exists for an item journal line.
- `HasSameTracking(ItemJournalLine: Record "Item Journal Line"): Boolean`: Determines whether the current item journal line has the same tracking information as the provided item journal line.
- `HasSameNewTracking(): Boolean`: Determines whether the current item journal line has the same serial, lot and package numbers as the new serial, lot and package numbers.
- `TestItemFields(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10])`: Tests if the item number, variant code and location code in an item journal line are the same as the provided values.
- `DisplayErrorIfItemIsBlocked(Item: Record Item)`: Checks if the provided item is blocked and raises an error message if it is.
- `DisplayErrorIfItemVariantIsBlocked(ItemVariant: Record "Item Variant")`: Checks if the provided item variant is blocked and raises an error message if it is.
- `IsPurchaseReturn(): Boolean`: Determines whether an item journal line represents a purchase return.
- `IsOpenedFromBatch(): Boolean`: Determines whether the current item journal line record was opened from a batch.
- `CheckItemJournalLineRestriction()`: Triggers the OnCheckItemJournalLinePostRestrictions event to check any additional restrictions before posting item journal line.
- `CheckTrackingIsEmpty()`: Tests if the tracking information (serial, lot and package number) in the item journal line is empty.
- `CheckNewTrackingIsEmpty()`: Tests if the new tracking information (new serial number and new lot number) in the item journal line is empty.
- `CheckTrackingEqualItemLedgEntry(ItemLedgerEntry: Record "Item Ledger Entry")`: Tests if the tracking information (serial, lot and package number) in the item journal line is equal to the tracking information in the provided item ledger entry.
- `CheckTrackingEqualTrackingSpecification(TrackingSpecification: Record "Tracking Specification")`: Tests if the tracking information (serial, lot and package number) in the item journal line is equal to the tracking information in the provided tracking specifiation.
- `CheckTrackingIfRequired(ItemTrackingSetup: Record "Item Tracking Setup")`: Tests if the tracking information (serial, lot and package number) of the item journal line are filled if required by the item tracking setup.
- `CheckNewTrackingIfRequired(ItemTrackingSetup: Record "Item Tracking Setup")`: Tests if the new tracking information (new serial number and new lot number) of the item journal line are filled if required by the item tracking setup.
- `CheckTrackingIfRequiredNotBlank(ItemTrackingSetup: Record "Item Tracking Setup")`: Tests if the new tracking information (new serial number and new lot number) of the item journal line is required and not empty. If the tracking information is required and empty, an error message is raised.
- `ValidateTypeWithItemNo()`: Tests the type of the item journal line based on the type of the associated item.
- `IsEntryTypeConsumption(): Boolean`
- `IsEntryTypeOutput(): Boolean`
- `IsEntryTypeProduction(): Boolean`
- `IsOrderTypeAsmOrProd(): Boolean`
- `IsNotInternalWhseMovement(): Boolean`: Determines if the item journal line does not represent an internal warehouse movement.
- `PrintInventoryMovement()`: Runs the inventory movement report for the item journal lines that have the same journal template name and journal batch name as the current item journal line.
- `CalcBaseQty(Qty: Decimal; FromFieldName: Text; ToFieldName: Text): Decimal`
- `CreateDimFromDefaultDim(FieldNo: Integer)`: Initializes the dimensions for the item journal line if default dimensions are defined for the related entry.
- `CreateNewDimFromDefaultDim(FieldNo: Integer)`
- `RenumberDocumentNo()`: Renumbers the document number of the current item journal line based on the number series specified in the associated item journal batch.
- `CreateItemTrackingLines(UpdateTracking: Boolean)` (internal)
- `UpdateItemTracking(var ItemJournalLine: Record "Item Journal Line")` (internal)
- `GetItemTracking(var TempTrackingSpecification: Record "Tracking Specification" temporary): Boolean` (internal)
- `LookUpTrackingSummary(TrackingType: Enum "Item Tracking Type")`: Opens the item tracking summary page to update the tracking information for an item journal line based on the specified tracking type.
- `GetDateForCalculations(): Date`: Gets the date required for item journal line calculations.

Plus 32 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- drill-down page [Page 519 "Item Journal Lines"](../page/519.md)
- lookup page [Page 519 "Item Journal Lines"](../page/519.md)
- Shpt. Method Code: TableRelation [Table 10 "Shipment Method"](../table/10.md)
- Salespers./Purch. Code: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- New Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- No.: TableRelation [Table 156 "Resource"](../table/156.md)
- Invoice-to Source No.: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- Source No.: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- Cap. Unit of Measure Code: TableRelation [Table 205 "Resource Unit of Measure"](../table/205.md) (conditional)
- Invoice-to Source No.: TableRelation [Table 23 "Vendor"](../table/23.md) (conditional)
- Source No.: TableRelation [Table 23 "Vendor"](../table/23.md) (conditional)
- Source Code: TableRelation [Table 230 "Source Code"](../table/230.md)
- Reason Code: TableRelation [Table 231 "Reason Code"](../table/231.md)
- Journal Batch Name: TableRelation [Table 233 "Item Journal Batch"](../table/233.md)
- Gen. Bus. Posting Group: TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md)
- Gen. Prod. Posting Group: TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md)
- Transaction Type: TableRelation [Table 258 "Transaction Type"](../table/258.md)
- Transport Method: TableRelation [Table 259 "Transport Method"](../table/259.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- Originally Ordered No.: TableRelation [Table 27 "Item"](../table/27.md)
- Source No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Entry/Exit Point: TableRelation [Table 282 "Entry/Exit Point"](../table/282.md)
- Area: TableRelation [Table 284 "Area"](../table/284.md)
- Transaction Specification: TableRelation [Table 285 "Transaction Specification"](../table/285.md)
- Posting No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Last Item Ledger Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Reserved Qty. (Base): CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Reserved Quantity: CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Applies-to Rem. Quantity: CalcFormula [Table 339 "Item Application Entry"](../table/339.md)
- New Shortcut Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- New Shortcut Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Shortcut Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Shortcut Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Source Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- New Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Originally Ordered Var. Code: TableRelation [Table 5401 "Item Variant"](../table/5401.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)
- Purchasing Code: TableRelation [Table 5721 "Purchasing"](../table/5721.md)
- Item Category Code: TableRelation [Table 5722 "Item Category"](../table/5722.md)
- Item Charge No.: TableRelation [Table 5800 "Item Charge"](../table/5800.md)
- Return Reason Code: TableRelation [Table 6635 "Return Reason"](../table/6635.md)
- Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md) (conditional)
- New Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md)
- Phys Invt Counting Period Code: TableRelation [Table 7381 "Phys. Invt. Counting Period"](../table/7381.md)
- Journal Template Name: TableRelation [Table 82 "Item Journal Template"](../table/82.md)
- Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Source Posting Group: TableRelation [Table 92 "Customer Posting Group"](../table/92.md) (conditional)
- Source Posting Group: TableRelation [Table 93 "Vendor Posting Group"](../table/93.md) (conditional)
- Inventory Posting Group: TableRelation [Table 94 "Inventory Posting Group"](../table/94.md)
- Source Posting Group: TableRelation [Table 94 "Inventory Posting Group"](../table/94.md) (conditional)
- Cap. Unit of Measure Code: TableRelation [Table 99000780 "Capacity Unit of Measure"](../table/99000780.md) (conditional)

## Referenced by

1 fields in 1 objects relate to this table (TableRelation or CalcFormula).

- [Table 233 "Item Journal Batch"](../table/233.md): No. of Lines

## Pages and codeunits on this table

- [Page 286 "Recurring Item Jnl."](../page/286.md) (source table)
- [Page 392 "Phys. Inventory Journal"](../page/392.md) (source table)
- [Page 393 "Item Reclass. Journal"](../page/393.md) (source table)
- [Page 40 "Item Journal"](../page/40.md) (source table)
- [Page 519 "Item Journal Lines"](../page/519.md) (source table)
- [Page 5510 "Production Journal"](../page/5510.md) (source table)
- [Page 5803 "Revaluation Journal"](../page/5803.md) (source table)
- [Page 9122 "Item Journal Errors Factbox"](../page/9122.md) (source table)
- [Page 99000773 "Capacity Journal"](../page/99000773.md) (source table)
- [Page 99000778 "Recurring Capacity Journal"](../page/99000778.md) (source table)
- [Page 99000823 "Output Journal"](../page/99000823.md) (source table)
- [Page 99000827 "Recurring Output Journal"](../page/99000827.md) (source table)
- [Page 99000846 "Consumption Journal"](../page/99000846.md) (source table)
- [Page 99000850 "Recurring Consumption Journal"](../page/99000850.md) (source table)
- [Codeunit 21 "Item Jnl.-Check Line"](../codeunit/21.md) (codeunit runs on it)
- [Codeunit 22 "Item Jnl.-Post Line"](../codeunit/22.md) (codeunit runs on it)
- [Codeunit 23 "Item Jnl.-Post Batch"](../codeunit/23.md) (codeunit runs on it)
- [Codeunit 241 "Item Jnl.-Post"](../codeunit/241.md) (codeunit runs on it)
- [Codeunit 242 "Item Jnl.-Post+Print"](../codeunit/242.md) (codeunit runs on it)
- [Codeunit 246 "Item Jnl.-Explode BOM"](../codeunit/246.md) (codeunit runs on it)
- [Codeunit 5406 "Output Jnl.-Expl. Route"](../codeunit/5406.md) (codeunit runs on it)
- [Codeunit 7320 "Whse. Undo Quantity"](../codeunit/7320.md) (codeunit runs on it)

## Extended by

- [Table extension 20508 "Subc. Item Journal Line Ext."](../tableextension/20508.md)
- [Table extension 5014 "Serv. Decl. Item Jnl. Line"](../tableextension/5014.md)
- [Table extension 6233 "Sust. Item Journal Line"](../tableextension/6233.md)
- [Table extension 907 "Asm. Item Journal Line"](../tableextension/907.md)
- [Table extension 99000758 "Mfg. Item Journal Line"](../tableextension/99000758.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 408 "DimensionManagement"](../codeunit/408.md) (13 calls: `CreateDimFromDefaultDim → IsDefaultDimDefinedForTable`, `CreateNewDimFromDefaultDim → GetRecDefaultDimID`, `CreateNewDimFromDefaultDim → IsDefaultDimDefinedForTable`, …)
- [Codeunit 99000835 "Item Jnl. Line-Reserve"](../codeunit/99000835.md) (7 calls: `CheckPlanningAssignment → AssignForPlanning`, `CreateItemTrackingLines → CreateItemTracking`, `LookUpTrackingSummary → InitFromItemJnlLine`, …)
- [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) (4 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnInsert → PreventInsertRecIfOpenApprovalEntryExist`, `PreventModifyRecIfOpenApprovalEntryExist → PreventModifyRecIfOpenApprovalEntryExist`, …)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (3 calls: `CalcBaseQty → CalcBaseQty`, `GetUnitAmount → GetQtyPerUnitOfMeasure`, `RecalculateUnitAmount → GetQtyPerUnitOfMeasure`)
- [Codeunit 5700 "User Setup Management"](../codeunit/5700.md) (3 calls: `SetUpNewLine → GetLocation`, `SetUpNewLine → GetPurchasesFilter`, `SetUpNewLine → GetSalesFilter`)
- [Page 456 "No. Series"](../page/456.md) (3 calls: `RenumberDocNoOnLines → (object)`, `RenumberDocumentNo → (object)`, `SetUpNewLine → (object)`)
- [Codeunit 311 "Item-Check Avail."](../codeunit/311.md) (2 calls: `CheckItemAvailable → ItemJnlCheckLine`, `CheckItemAvailable → RaiseUpdateInterruptedError`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (2 calls: `GetItemTracking → SumUpItemTracking`, `RowID1 → ComposeRowID`)
- [Codeunit 6501 "Item Tracking Data Collection"](../codeunit/6501.md) (2 calls: `LookUpTrackingSummary → AssistEditTrackingNo`, `LookUpTrackingSummary → SetCurrentBinAndItemTrkgCode`)
- [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) (1 call: `RestrictItemJournalBatch → RestrictRecordUsage`)
- [Codeunit 5836 "Cost Calculation Management"](../codeunit/5836.md) (1 call: `CalcUnitCost → CanIncNonInvCostIntoProductionItem`)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (1 call: `ApplyPrice → GetHandler`)
- [Codeunit 710 "Math"](../codeunit/710.md) (1 call: `LookUpTrackingSummary → Sign`)
- [Codeunit 9077 "Item Journal Errors Mgt."](../codeunit/9077.md) (1 call: `SwitchLinesWithErrorsFilter → GetErrorMessages`)
- [Page 38 "Item Ledger Entries"](../page/38.md) (1 call: `SelectItemEntry → (object)`)
- [Page 7382 "Inventory Movement"](../page/7382.md) (1 call: `PrintInventoryMovement → (object)`)

## Recent changes

- 2026-07-24 [#9464 [Extensibility Request] issue 30349: add OnBeforeCheckTrackingIfRequired event to Item Journal Line](../../changes/bcapps/9464.md) (main, BC30, feature)

## Across versions

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

## Countries that replace it

[AU](../../localizations/au.md), [CH](../../localizations/ch.md), [ES](../../localizations/es.md), [FR](../../localizations/fr.md), [GB](../../localizations/gb.md), [IT](../../localizations/it.md), [NZ](../../localizations/nz.md), [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: "Item Journal Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
