---
id: object/table/901
type: object
title: Table 901 "Assembly Line"
summary: Table 901 "Assembly Line" in Base Application (Microsoft.Assembly.Document). 49 fields, 72 public procedures, 49 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: d9b74aaf448746ca7aa087368fe35d96a8ad4e5638009bd2dde75197fe951bf1
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al
    title: src/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/assembly-assemble-items
    - https://learn.microsoft.com/dynamics365/business-central/assembly-assemble-to-order-or-assemble-to-stock
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-assemble-items
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-create-blanket-assembly-orders
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-quote-an-assemble-to-order-sale
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-sell-assemble-to-order-items-and-inventory-items-together
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-sell-inventory-items-in-assemble-to-order-flows
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-sell-items-assembled-to-order
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-to-undo-assembly-posting
    - https://learn.microsoft.com/dynamics365/business-central/assembly-reports
    - https://learn.microsoft.com/dynamics365/business-central/inventory-how-availability-overview
    - https://learn.microsoft.com/dynamics365/business-central/production-how-to-create-production-boms
  objects: []
  features: []
  topics:
    - topic/business-central/analytics-business-intelligence-and-repo/built-in-reports/assembly-management
    - topic/business-central/business-functionality/assembly-management
    - topic/business-central/business-functionality/assembly-management/assembly-analytics
    - topic/business-central/business-functionality/inventory
    - topic/business-central/business-functionality/set-up-business-central/set-up-manufacturing
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 901
name: Assembly Line
namespace: Microsoft.Assembly.Document
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 49
  procedures: 148
  events: 49
  subscribers: 0
relations:
  out: 21
  referenced_by: 4
  pages: 9
  extended_by: 1
  event_subscribers: 12
  calls: 19
  called_by: 0
  implements: 0
---

# Table 901 "Assembly Line"

> Table 901 "Assembly Line" in Base Application (Microsoft.Assembly.Document). 49 fields, 72 public procedures, 49 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

Learn documents this table through its pages: [Page 901 "Assembly Order Subform"](../page/901.md) (10 Learn pages), [Page 903 "Assembly Lines"](../page/903.md) (10), [Page 914 "Assemble-to-Order Lines"](../page/914.md) (10), [Page 931 "Assembly Quote Subform"](../page/931.md) (10), [Page 941 "Blanket Assembly Order Subform"](../page/941.md) (10), [Page 909 "Assembly Line Avail."](../page/909.md) (1), [Page 917 "Component - Item FactBox"](../page/917.md) (1), [Page 926 "Available - Assembly Lines"](../page/926.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Assembly 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 | Document Type | Enum "Assembly Document Type" | Specifies the type of assembly document that the assembly order header represents in assemble-to-order scenarios. | enum [Enum 901 "Assembly Document Type"](../enum/901.md) |
| 2 | Document No. | Code[20] | Specifies the number of the assembly order header that the assembly order line refers to. | TableRelation [Table 900 "Assembly Header"](../table/900.md) ("Assembly Header"."No." where("Document Type" = field("Document Type"))) |
| 3 | Line No. | Integer | — | not editable |
| 10 | Type | Enum "BOM Component Type" | Specifies if the assembly order line is of type Item or Resource. | enum [Enum 91 "BOM Component Type"](../enum/91.md) |
| 11 | 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), [Table 27 "Item"](../table/27.md) (if (Type = const(Item)) Item where(Type = filter(Inventory \| "Non-Inventory")) else if (Type = const(Resource)) Resource) |
| 12 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) (if (Type = const(Item)) "Item Variant".Code where("Item No." = field("No."), Code = field("Variant Code"))) |
| 13 | Description | Text[100] | Specifies the description of the assembly component. |  |
| 14 | Description 2 | Text[50] | Specifies the second description of the assembly component. |  |
| 18 | Lead-Time Offset | DateFormula | Specifies the lead-time offset that is defined for the assembly component on the assembly BOM. |  |
| 19 | Resource Usage Type | Option | Specifies how the cost of the resource on the assembly order line is allocated to the assembly item. | OptionCaption: ,Direct,Fixed |
| 20 | Location Code | Code[10] | Specifies the location from which you want to post consumption of the assembly component. | TableRelation [Table 14 "Location"](../table/14.md) (Location where("Use As In-Transit" = const(false))) |
| 21 | 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))) |
| 22 | 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))) |
| 23 | Bin Code | Code[20] | Specifies the code of the bin where assembly components must be placed prior to assembly and from where they are posted as consumed. | TableRelation [Table 7354 "Bin"](../table/7354.md) (Bin.Code where("Location Code" = field("Location Code"))) |
| 25 | Position | Code[10] | — |  |
| 26 | Position 2 | Code[10] | — |  |
| 27 | Position 3 | Code[10] | — |  |
| 38 | Appl.-to Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied to. |  |
| 39 | Appl.-from Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied from. |  |
| 40 | Quantity | Decimal | Specifies how many units of the assembly component are expected to be consumed. | not editable |
| 41 | Quantity (Base) | Decimal | — | not editable |
| 42 | Remaining Quantity | Decimal | Specifies how many units of the assembly component remain to be consumed during assembly. | not editable |
| 43 | Remaining Quantity (Base) | Decimal | — | not editable |
| 44 | Consumed Quantity | Decimal | Specifies how many units of the assembly component have been posted as consumed during the assembly. | not editable |
| 45 | Consumed Quantity (Base) | Decimal | — | not editable |
| 46 | Quantity to Consume | Decimal | Specifies how many units of the assembly component you want to post as consumed when you post the assembly order. |  |
| 47 | Quantity to Consume (Base) | Decimal | — |  |
| 48 | Reserved Quantity | Decimal | Specifies how many units of the assembly component have been reserved for this assembly order line. | FlowField: - sum("Reservation Entry".Quantity where("Source ID" = field("Document No."), "Source Ref. No." = field("Line No."), "Source Type" = const(901), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Reservation Status" = const(Reservation))); not editable |
| 49 | Reserved Qty. (Base) | Decimal | Specifies how many assembly components have been reserved for this assembly order line. The components are in the base unit of measure. <small>via [Page 926 "Available - Assembly Lines"](../page/926.md)</small> | FlowField: - sum("Reservation Entry"."Quantity (Base)" where("Source ID" = field("Document No."), "Source Ref. No." = field("Line No."), "Source Type" = const(901), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Reservation Status" = const(Reservation))); not editable |
| 50 | Avail. Warning | Boolean | Specifies Yes if the assembly component is not available in the quantity and on the due date of the assembly order line. | not editable |
| 51 | Substitution Available | Boolean | Specifies if a substitute is available for the item on the assembly order line. | FlowField: exist("Item Substitution" where(Type = const(Item), "Substitute Type" = const(Item), "No." = field("No."), "Variant Code" = field("Variant Code"))); not editable |
| 52 | Due Date | Date | Specifies the date when the assembly component must be available for consumption by the assembly order. |  |
| 53 | Reserve | Enum "Reserve Method" | Specifies the reserve option for the assembly order line. | enum [Enum 100 "Reserve Method"](../enum/100.md) |
| 60 | Quantity per | Decimal | Specifies how many units of the assembly component are required to assemble one assembly item. |  |
| 61 | Qty. per Unit of Measure | Decimal | Specifies the quantity per unit of measure of the component item on the assembly order line. | not editable |
| 62 | Inventory Posting Group | Code[20] | Specifies links between business transactions made for the item and an inventory account in the general ledger, to group amounts for that item type. | TableRelation [Table 94 "Inventory Posting Group"](../table/94.md) (Inventory Posting Group) |
| 63 | Gen. Prod. Posting Group | Code[20] | — | TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md) (Gen. Product Posting Group) |
| 64 | Gen. Bus. Posting Group | Code[20] | Specifies the code for the General Business Posting Group that applies to the entry. | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group) |
| 65 | Unit Cost | Decimal | Specifies the cost of one unit of the item or resource on the line. |  |
| 67 | Cost Amount | Decimal | Specifies the cost of the assembly order line. | not editable |
| 72 | Date Filter | Date | — | FlowFilter |
| 80 | 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 205 "Resource Unit of Measure"](../table/205.md), [Table 5404 "Item Unit of Measure"](../table/5404.md) (if (Type = const(Item)) "Item Unit of Measure".Code where("Item No." = field("No.")) else if (Type = const(Resource)) "Resource Unit of Measure".Code where("Resource No." = field("No."))) |
| 82 | Qty. Rounding Precision | Decimal | — | not editable |
| 83 | Qty. Rounding Precision (Base) | Decimal | — | not editable |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 7301 | Pick Qty. | Decimal | Specifies how many units of the assembly component are currently on warehouse pick lines. | FlowField: sum("Warehouse Activity Line"."Qty. Outstanding" where("Activity Type" = filter(<> "Put-away"), "Source Type" = const(901), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Source No." = field("Document No."), "Source Line No." = field("Line No."), "...; not editable |
| 7302 | Pick Qty. (Base) | Decimal | — | FlowField: sum("Warehouse Activity Line"."Qty. Outstanding (Base)" where("Activity Type" = filter(<> "Put-away"), "Source Type" = const(901), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Source No." = field("Document No."), "Source Line No." = field("Line N...; not editable |
| 7303 | Qty. Picked | Decimal | Specifies how many units of the assembly component have been moved or picked for the assembly order line. | not editable |
| 7304 | Qty. Picked (Base) | Decimal | — | not editable |

## Keys

- Key1: Document Type, Document No., Line No. (clustered)
- Key2: Document Type, Document No., Type, Location Code
- Key3: Document Type, Type, No., Variant Code, Location Code, Due Date
- Key4: Type, No.

## Events published

- `OnAfterInitDefaultDimensionSources(var AssemblyLine: Record "Assembly Line"; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])` (integration)
- `OnAfterCalcExpectedInventory(var AssemblyLine: Record "Assembly Line"; var Item: Record Item; var ExpectedInventory: Decimal; AvailableInventory: Decimal; ScheduledReceipt: Decimal; ReservedReceipt: Decimal; GrossRequirement: Decimal; ReservedRequirement: Decimal)` (integration)
- `OnAfterCopyFromItem(var AssemblyLine: Record "Assembly Line"; Item: Record Item; AssemblyHeader: Record "Assembly Header")` (integration)
  - subscribers: [Codeunit 6255 "Sust. Assembly Subscriber"](../codeunit/6255.md) OnAfterCopyFromItem
- `OnAfterCopyFromResource(var AssemblyLine: Record "Assembly Line"; Resource: Record Resource; AssemblyHeader: Record "Assembly Header")` (integration)
  - subscribers: [Codeunit 6255 "Sust. Assembly Subscriber"](../codeunit/6255.md) OnAfterCopyFromResource
- `OnAfterFilterLinesWithItemToPlan(var AssemblyLine: Record "Assembly Line"; Item: Record Item; DocumentType: Option)` (integration)
- `OnAfterCreateDim(var AssemblyLine: Record "Assembly Line"; DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; HeaderDimensionSetID: Integer)` (integration)
- `OnAfterFilterLinesForReservation(var AssemblyLine: Record "Assembly Line"; ReservEntry: Record "Reservation Entry"; DocumentType: Option; AvailabilityFilter: Text; Positive: Boolean)` (integration)
- `OnAfterGetSKU(AssemblyLine: Record "Assembly Line"; var Result: Boolean)` (integration)
- `OnAfterGetUnitCost(var AssemblyLine: Record "Assembly Line"; var UnitCost: Decimal)` (integration)
- `OnAfterInitRemainingQty(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; CurrentFieldNo: Integer)` (integration)
- `OnAfterInitQtyToConsume(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; CurrentFieldNo: Integer)` (integration)
  - subscribers: [Codeunit 6255 "Sust. Assembly Subscriber"](../codeunit/6255.md) OnAfterInitQtyToConsume
- `OnAfterMaxQtyToConsume(var AssemblyLine: Record "Assembly Line"; var MaxQuantityToConsume: Decimal)` (integration)
- `OnAfterMaxQtyToConsumeBase(var AssemblyLine: Record "Assembly Line"; var MaxQuantityToConsumeBase: Decimal)` (integration)
- `OnAfterSetReservationFilters(var ReservEntry: Record "Reservation Entry"; AssemblyLine: Record "Assembly Line")` (integration)
- `OnAfterShowDimensions(var AssemblyLine: Record "Assembly Line")` (integration)
- `OnAfterUpdateDim(var AssemblyLine: Record "Assembly Line")` (integration)
- `OnAfterValidateShortcutDimCode(var AssemblyLine: Record "Assembly Line"; var xAssemblyLine: Record "Assembly Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnBeforeAutoReserve(var AssemblyLine: Record "Assembly Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcQtyToPick(var AssemblyLine: Record "Assembly Line"; var QtyToPick: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcQtyToPickBase(var AssemblyLine: Record "Assembly Line"; var QtyToPickBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeGetHeader(var AssemblyLine: Record "Assembly Line"; var AssemblyHeader: Record "Assembly Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeGetItemResource(AssemblyLine: Record "Assembly Line"; var Item: Record Item; var Resource: Record Resource; var IsHandled: Boolean)` (integration)
- `OnBeforeFindBin(var AssemblyLine: Record "Assembly Line"; var NewBinCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeInitQtyToConsume(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; CurrentFieldNo: Integer)` (integration)
- `OnBeforeOpenItemTrackingLines(var AssemblyLine: Record "Assembly Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateShortcutDimCode(var AssemblyLine: Record "Assembly Line"; var xAssemblyLine: Record "Assembly Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnBeforeValidateQuantityBase(var AssemblyLine: Record "Assembly Line"; var xAssemblyLine: Record "Assembly Line"; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantityPer(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckItemAvailable(var AssemblyLine: Record "Assembly Line"; CalledByFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcAvailQuantities(var AssemblyLine: Record "Assembly Line")` (integration)
- `OnBeforeCalcAvailBaseQuantities(var AssemblyLine: Record "Assembly Line"; var Item: Record Item; var AvailableInventory: Decimal; var ScheduledReceipt: Decimal; var ReservedReceipt: Decimal; var ReservedRequirement: Decimal; var GrossRequirement: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromItem(var AssemblyLine: Record "Assembly Line")` (integration)
- `OnBeforeCopyFromResource(var AssemblyLine: Record "Assembly Line")` (integration)
- `OnBeforeShowReservation(var AssemblyLine: Record "Assembly Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateAvailWarning(var AssemblyLine: Record "Assembly Line"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateDueDate(var AsmLine: Record "Assembly Line"; AsmHeader: Record "Assembly Header"; NewDueDate: Date; var ShowDueDateBeforeWorkDateMsg: Boolean)` (integration)
- `OnValidateQuantityOnAfterCalcBaseQty(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; CurrentFieldNo: Integer)` (integration)
- `OnValidateQuantityPerOnAfterRoundQty(var AssemblyLine: Record "Assembly Line")` (integration)
- `OnValidateApplToItemEntryOnBeforeShowNotOpenItemLedgerEntryMessage(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; var ItemLedgerEntry: Record "Item Ledger Entry"; CurrentFieldNo: Integer)` (integration)
- `OnBeforeValidateQuantitytoConsume(var AssemblyLine: Record "Assembly Line"; xAssemblyLine: Record "Assembly Line"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeInitTableValuePair(var TableValuePair: Dictionary of [Integer, Code[20]]; FieldNo: Integer; var IsHandled: Boolean; var AssemblyLine: Record "Assembly Line")` (integration)
- `OnAfterInitTableValuePair(var TableValuePair: Dictionary of [Integer, Code[20]]; FieldNo: Integer; var AssemblyLine: Record "Assembly Line")` (integration)
- `OnAfterFindBin(var AssemblyLine: Record "Assembly Line"; var NewBinCode: Code[20])` (integration)
- `OnBeforeCalcBOMQuantity(var AssemblyLine: Record "Assembly Line"; LineType: Enum "BOM Component Type"; QtyPer: Decimal; HeaderQty: Decimal; HeaderQtyPerUOM: Decimal; LineResourceUsageType: Option; var ReturnBOMQuantity: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateDim(var AssemblyLine: Record "Assembly Line"; CallingFieldNo: Integer; DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; HeaderDimensionSetID: Integer; var IsHandled: Boolean)` (integration)
- `OnCheckIfAssemblyLineMeetsReservedFromStockSetting(QtyToPost: Decimal; ReservedFromStock: Enum "Reservation From Stock"; var Result: Boolean)` (integration)
- `OnBeforeSetQtyPerUoMAndQtyRoundingPrecision(var AssemblyLine: Record "Assembly Line"; var IsHandled: Boolean)` (integration)
- `OnValidateVariantCodeOnUpdateDescriptionsFromItem(var AssemblyLine: Record "Assembly Line"; Item: Record Item)` (integration)
- `OnValidateVariantCodeOnUpdateDescriptionsFromVariantCode(var AssemblyLine: Record "Assembly Line"; ItemVariant: Record "Item Variant")` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterAssemblyLineDeleteRecall, [Codeunit 6255 "Sust. Assembly Subscriber"](../codeunit/6255.md) OnAfterDeleteEvent
- OnAfterInsertEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterAssemblyLineInsertSetRecId
- OnAfterRenameEvent: [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAfterAssemblyLineRenameUpdateRecId
- OnAfterValidateEvent(No.): [Codeunit 6255 "Sust. Assembly Subscriber"](../codeunit/6255.md) OnAfterValidateNoEvent
- OnAfterValidateEvent(Total CO2e): [Codeunit 6255 "Sust. Assembly Subscriber"](../codeunit/6255.md) OnAfterValidateEvent
- OnBeforeValidateEvent(Quantity per): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAssemblyLineUpdateQuantityRecallItemNotif
- OnBeforeValidateEvent(Type): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAssemblyLineUpdateTypeRecallItemNotif
- OnBeforeValidateEvent(Unit of Measure Code): [Codeunit 1508 "Notification Lifecycle Handler"](../codeunit/1508.md) OnAssemblyLineUpdateUnitOfMeasureCodeRecallItemNotif

## Procedures

- `InitRemainingQty()`
- `InitQtyToConsume()`
- `MaxQtyToConsume(): Decimal`
- `GetUnitCost(): Decimal`
- `CalcCostAmount(Qty: Decimal; UnitCost: Decimal): Decimal`
- `ShowReservation()`
- `ShowReservationEntries(Modal: Boolean)`
- `UpdateAvailWarning(): Boolean`
- `CheckItemAvailable(CalledByFieldNo: Integer)`
- `ShowAvailabilityWarning()`
- `ShowAvailabilityWarningPage()`
- `CalcBaseQty(Qty: Decimal; FromFieldName: Text; ToFieldName: Text): Decimal`
- `IsInbound(): Boolean`
- `OpenItemTrackingLines()`
- `AutoReserve()`
- `ReservationStatus(): Integer`
- `SetTestReservationDateConflict(NewTestReservationDateConflict: Boolean)`
- `GetHeader(): Record "Assembly Header"`
- `GetRemainingQty(var RemainingQty: Decimal; var RemainingQtyBase: Decimal)`
- `GetReservationQty(var QtyReserved: Decimal; var QtyReservedBase: Decimal; var QtyToReserve: Decimal; var QtyToReserveBase: Decimal): Decimal`
- `GetSourceCaption(): Text[80]`
- `SetReservationEntry(var ReservEntry: Record "Reservation Entry")`
- `SetReservationFilters(var ReservEntry: Record "Reservation Entry")`
- `ReservEntryExist(): Boolean`
- `ShowDimensions()`
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; HeaderDimensionSetID: Integer)`
- `UpdateDim(NewHeaderSetID: Integer; OldHeaderSetID: Integer)`
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `ShowShortcutDimCode(var ShortcutDimCode: array[8] of Code[20])`
- `ShowItemSub()`
- `ShowAssemblyList()`
- `ExplodeAssemblyList()`
- `CalcQuantityPer(Qty: Decimal): Decimal`
- `CalcBOMQuantity(LineType: Enum "BOM Component Type"; QtyPer: Decimal; HeaderQty: Decimal; HeaderQtyPerUOM: Decimal; LineResourceUsageType: Option): Decimal`
- `SetItemToPlanFilters(var Item: Record Item; DocumentType: Enum "Assembly Document Type")`
- `FindItemToPlanLines(var Item: Record Item; DocumentType: Enum "Assembly Document Type"): Boolean`
- `ItemToPlanLinesExist(var Item: Record Item; DocumentType: Enum "Assembly Document Type"): Boolean`
- `FilterLinesForReservation(ReservationEntry: Record "Reservation Entry"; DocumentType: Option; AvailabilityFilter: Text; Positive: Boolean)`
- `SetItemFilter(var Item: Record Item)`
- `CalcAvailToAssemble(AssemblyHeader: Record "Assembly Header"; var Item: Record Item; var GrossRequirement: Decimal; var ScheduledReceipt: Decimal; var ExpectedInventory: Decimal; var AvailableInventory: Decimal; var EarliestDate: Date; var AbleToAssemble: Decimal)`
- `RoundQty(var Qty: Decimal)`
- `FixedUsage(): Boolean`
- `SignedXX(Value: Decimal): Decimal`
- `RowID1(): Text[250]`
- `GetDefaultBin()`
- `FindBin(): Code[20]`
- `TestStatusOpen()`
- `SuspendStatusCheck(Suspend: Boolean)`
- `CompletelyPicked(): Boolean`
- `CalcQtyToPick(): Decimal`
- `CalcQtyToPickBase(): Decimal`
- `CalcQtyPickedNotConsumed(): Decimal`
- `CalcQtyPickedNotConsumedBase(): Decimal`
- `ItemExists(ItemNo: Code[20]): Boolean`
- `ShowTracking()`
- `VerifyReservationQuantity(var NewAsmLine: Record "Assembly Line"; var OldAsmLine: Record "Assembly Line")`
- `VerifyReservationChange(var NewAsmLine: Record "Assembly Line"; var OldAsmLine: Record "Assembly Line")`
- `VerifyReservationDateConflict(NewAsmLine: Record "Assembly Line")`
- `SetSkipVerificationsThatChangeDatabase(State: Boolean)`
- `GetSkipVerificationsThatChangeDatabase(): Boolean`
- `ValidateDueDate(AsmHeader: Record "Assembly Header"; NewDueDate: Date; ShowDueDateBeforeWorkDateMsg: Boolean)`
- `ValidateLeadTimeOffset(AsmHeader: Record "Assembly Header"; NewLeadTimeOffset: DateFormula; ShowDueDateBeforeWorkDateMsg: Boolean)`
- `TestItemFields(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10])`
- `IsInventoriableItem(): Boolean`
- `CreateDimFromDefaultDim(HeaderDimensionSetID: Integer)`
- `SetAssemblyHeader(NewAssemblyHeader: Record "Assembly Header")`
- `CheckIfAssemblyLineMeetsReservedFromStockSetting(QtyToPost: Decimal; ReservedFromStock: Enum "Reservation From Stock"): Boolean`
- `ShowAssemblyDocument()` (internal)
- `SuspendDeletionCheck(Suspend: Boolean)`
- `GetSuspendDeletionCheck(): Boolean`
- `ReserveFromInventory(var AssemblyLine: Record "Assembly Line")`
- `UpdateAndPersistAvailWarning()`

Plus 27 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- drill-down page [Page 903 "Assembly Lines"](../page/903.md)
- lookup page [Page 903 "Assembly Lines"](../page/903.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- No.: TableRelation [Table 156 "Resource"](../table/156.md) (conditional)
- Unit of Measure Code: TableRelation [Table 205 "Resource Unit of Measure"](../table/205.md) (conditional)
- 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)
- No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Reserved Qty. (Base): CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Reserved Quantity: CalcFormula [Table 337 "Reservation Entry"](../table/337.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)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) (conditional)
- Substitution Available: CalcFormula [Table 5715 "Item Substitution"](../table/5715.md)
- Pick Qty.: CalcFormula [Table 5767 "Warehouse Activity Line"](../table/5767.md)
- Pick Qty. (Base): CalcFormula [Table 5767 "Warehouse Activity Line"](../table/5767.md)
- Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md)
- Document No.: TableRelation [Table 900 "Assembly Header"](../table/900.md)
- Inventory Posting Group: TableRelation [Table 94 "Inventory Posting Group"](../table/94.md)

## Referenced by

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

- [Table 156 "Resource"](../table/156.md): Qty. on Assembly Order
- [Table 5700 "Stockkeeping Unit"](../table/5700.md): Qty. on Asm. Component
- [Table 900 "Assembly Header"](../table/900.md): Rolled-up Assembly Cost
- [Table extension 905 "Asm. Item"](../tableextension/905.md): Qty. on Asm. Component

## Pages and codeunits on this table

- [Page 30225 "APIV2 - Assembly Order Lines"](../page/30225.md) (source table)
- [Page 901 "Assembly Order Subform"](../page/901.md) (source table)
- [Page 903 "Assembly Lines"](../page/903.md) (source table)
- [Page 909 "Assembly Line Avail."](../page/909.md) (source table)
- [Page 914 "Assemble-to-Order Lines"](../page/914.md) (source table)
- [Page 917 "Component - Item FactBox"](../page/917.md) (source table)
- [Page 926 "Available - Assembly Lines"](../page/926.md) (source table)
- [Page 931 "Assembly Quote Subform"](../page/931.md) (source table)
- [Page 941 "Blanket Assembly Order Subform"](../page/941.md) (source table)

## Extended by

- [Table extension 6252 "Sust. Assembly Line"](../tableextension/6252.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) (12 calls: `CreateDim → GetCombinedDimensionSetID`, `CreateDim → GetRecDefaultDimID`, `CreateDimFromDefaultDim → IsDefaultDimDefinedForTable`, …)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (9 calls: `CalcAvailToAssemble → QtyRndPrecision`, `CalcBaseQty → CalcBaseQty`, `CalcBOMQuantity → RoundToItemRndPrecision`, …)
- [Codeunit 5790 "Available to Promise"](../codeunit/5790.md) (9 calls: `CalcAvailBaseQuantities → CalcAvailableInventory`, `CalcAvailBaseQuantities → CalcGrossRequirement`, `CalcAvailBaseQuantities → CalcReservedReceipt`, …)
- [Codeunit 311 "Item-Check Avail."](../codeunit/311.md) (6 calls: `CheckItemAvailable → AssemblyLineCheck`, `CheckItemAvailable → RaiseUpdateInterruptedError`, `ShowAvailabilityWarning → AssemblyLineCheck`, …)
- [Codeunit 926 "Assembly Line-Reserve"](../codeunit/926.md) (5 calls: `CheckIfAssemblyLineMeetsReservedFromStockSetting → GetReservedQtyFromInventory`, `OnDelete → DeleteLine`, `OpenItemTrackingLines → CallItemTracking`, …)
- [Codeunit 99000845 "Reservation Management"](../codeunit/99000845.md) (4 calls: `AutoReserve → AutoReserve`, `AutoReserve → SetReservSource`, `ReserveFromInventory → AutoReserveToShip`, …)
- [Codeunit 5997 "Assembly Warehouse Mgt."](../codeunit/5997.md) (3 calls: `OnDelete → AssemblyLineDelete`, `OnModify → AssemblyLineVerifyChange`, `ValidateDueDate → AssemblyLineVerifyChange`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (2 calls: `OnDelete → DeleteWhseItemTrkgLines`, `RowID1 → ComposeRowID`)
- [Codeunit 5701 "Item Subst."](../codeunit/5701.md) (1 call: `ShowItemSub → ItemAssemblySubstGet`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (1 call: `FindBin → GetDefaultBin`)
- [Codeunit 904 "Whse.-Assembly Release"](../codeunit/904.md) (1 call: `OnDelete → DeleteLine`)
- [Codeunit 905 "Assembly Line Management"](../codeunit/905.md) (1 call: `ExplodeAssemblyList → ExplodeAsmList`)
- [Codeunit 937 "Asm. ReservCheckDateConfl"](../codeunit/937.md) (1 call: `VerifyReservationDateConflict → AssemblyLineCheck`)
- [Page 36 "Assembly BOM"](../page/36.md) (1 call: `ShowAssemblyList → (object)`)
- [Page 38 "Item Ledger Entries"](../page/38.md) (1 call: `SelectItemEntry → (object)`)
- [Page 497 "Reservation Entries"](../page/497.md) (1 call: `ShowReservationEntries → (object)`)
- [Page 900 "Assembly Order"](../page/900.md) (1 call: `ShowAssemblyDocument → (object)`)
- [Page 930 "Assembly Quote"](../page/930.md) (1 call: `ShowAssemblyDocument → (object)`)
- [Page 940 "Blanket Assembly Order"](../page/940.md) (1 call: `ShowAssemblyDocument → (object)`)

## Across versions

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

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

## Ask your agent

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