---
id: object/page/36
type: object
title: Page 36 "Assembly BOM"
summary: Page 36 "Assembly BOM" in Base Application (Microsoft.Inventory.BOM). 2 events. Present since at least BC23, still in BC30, changed in BC24-25.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "25"
  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: 3de22375fcf42d981cc97035d19834f319e829c3cbfb3b08f1ef2f75f26d82cf
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Assembly/AssemblyBOM.Page.al
    title: src/Layers/W1/BaseApp/Assembly/AssemblyBOM.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/assembly-how-work-assembly-boms
    title: Work with assembly BOMs
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/assembly-how-work-assembly-boms
  objects: []
  features: []
  topics:
    - topic/business-central/analytics-business-intelligence-and-repo/built-in-reports/assembly-management
    - topic/business-central/business-functionality/assembly-management
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 36
name: Assembly BOM
namespace: Microsoft.Inventory.BOM
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"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/assembly-how-work-assembly-boms.md
counts:
  fields: 0
  procedures: 4
  events: 2
  subscribers: 0
  controls: 17
  actions: 8
relations:
  out: 1
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 2
  implements: 0
---

# Page 36 "Assembly BOM"

> Page 36 "Assembly BOM" in Base Application (Microsoft.Inventory.BOM). 2 events. Present since at least BC23, still in BC30, changed in BC24-25.

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

## Properties

| Property | Value |
|---|---|
| Caption | Assembly BOM |
| SourceTable | BOM Component |
| PageType | List |

## Fields on this page

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

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| Control1 | Type | [Type](../table/90.md#fields) | Specifies if the assembly BOM component is an item or a resource. <small>from the table field</small> |
|  | No. | [No.](../table/90.md#fields) | Specifies the number of the involved entry or record, according to the specified number series. <small>from the table field</small> |
|  | Variant Code | [Variant Code](../table/90.md#fields) | Specifies the variant of the item on the line. <small>from the table field</small> |
|  | Description | [Description](../table/90.md#fields) | Specifies a description of the assembly BOM component. <small>from the table field</small> |
|  | Assembly BOM | [Assembly BOM](../table/90.md#fields) | Specifies if the assembly BOM component is an assembly BOM. <small>from the table field</small> |
|  | Quantity per | [Quantity per](../table/90.md#fields) | Specifies how many units of the component are required to produce or assemble the parent item. |
|  | Unit of Measure Code | [Unit of Measure Code](../table/90.md#fields) | 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. <small>from the table field</small> |
|  | Installed in Item No. | [Installed in Item No.](../table/90.md#fields) | Specifies which service item the component on the line is used in. <small>from the table field</small> |
|  | Position | [Position](../table/90.md#fields) | Specifies the position of the component on the bill of material. <small>from the table field</small> |
|  | Position 2 | [Position 2](../table/90.md#fields) | Specifies the component's position in the assembly BOM structure. <small>from the table field</small> |
|  | Position 3 | [Position 3](../table/90.md#fields) | Specifies the third reference number for the component position on a bill of material, such as the alternate position number of a component on a print card. <small>from the table field</small> |
|  | Machine No. | [Machine No.](../table/90.md#fields) | Specifies a machine that should be used when processing the component on this line of the assembly BOM. <small>from the table field</small> |
|  | Lead-Time Offset | [Lead-Time Offset](../table/90.md#fields) | Specifies the total number of days required to assemble the item on the assembly BOM line. <small>from the table field</small> |
|  | Resource Usage Type | [Resource Usage Type](../table/90.md#fields) | Specifies how the cost of the resource on the assembly BOM is allocated during assembly. <small>from the table field</small> |
| FactBoxes | Control18 | part [Page 910 "Assembly Item - Details"](../page/910.md) | — |
|  | Control13 | part [Page 911 "Component - Item Details"](../page/911.md) | — |
|  | Control9 | part [Page 912 "Component - Resource Details"](../page/912.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Processing | Show BOM | View the BOM structure. |  |
|  | Explode BOM | Insert new lines for the components on the bill of materials, for example to sell the parent item as a kit. CAUTION: The line for the parent item will be deleted and represented by a description only. To undo, you must delete the component lines and add a line the parent item again. | [Codeunit 51 "BOM-Explode BOM"](../codeunit/51.md) |
|  | Calc. Standard Cost | Update the standard cost of the item based on the calculated costs of its underlying components. |  |
|  | Calc. Unit Price | Calculate the unit price based on the unit cost and the profit percentage. |  |
|  | Cost Shares | View how the costs of underlying items in the BOM roll up to the parent item. The information is organized according to the BOM structure to reflect at which levels the individual costs apply. Each item level can be collapsed or expanded to obtain an overview or detailed view. |  |
|  | Where-Used | View a list of BOMs in which the item is used. | [Page 37 "Where-Used List"](../page/37.md) |
|  | View | View and modify the selected component. |  |
|  | Assembly BOM | View or edit the bill of material that specifies which items and resources are required to assemble the assembly item. |  |

## Events published

- `OnBeforeCheckMandatoryRecFieldsBeforePageInsert(var BOMComponent: Record "BOM Component"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckMandatoryRecFields(var BOMComponent: Record "BOM Component"; var IsHandled: Boolean)` (integration)

## Procedures

2 local procedures, no public ones.

## Triggers

OnAfterGetCurrRecord, OnAfterGetRecord, OnInsertRecord, OnModifyRecord

## Relations

- source table [Table 90 "BOM Component"](../table/90.md)

## Pages and codeunits on this table

- [Table 90 "BOM Component"](../table/90.md) (drill-down page)
- [Table 90 "BOM Component"](../table/90.md) (lookup page)

## Called by

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.

- [Table 900 "Assembly Header"](../table/900.md) (1 call: `ShowAssemblyList → (object)`)
- [Table 901 "Assembly Line"](../table/901.md) (1 call: `ShowAssemblyList → (object)`)

## Across versions

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

## Documented on Microsoft Learn

- [Work with assembly BOMs](https://learn.microsoft.com/dynamics365/business-central/assembly-how-work-assembly-boms)

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

## Ask your agent

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