Page 5870 "BOM Structure"
Base Application · Microsoft.Inventory.BOM
Across versions
- BC23present
- BC241 procedures added, 1 procedures removed
- BC251 procedures added, 1 procedures removed
- BC26unchanged
- BC273 procedures added, 3 procedures removed
- BC28-29unchanged
- BC302 procedures removed, 1 events removed
Neighbourhood 5 connected objects and pages
Base Application · Microsoft.Inventory.BOM · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Caption | BOM Structure |
| SourceTable | BOM Buffer |
| PageType | Worksheet |
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 |
|---|---|---|---|
| Option | Item Filter | ItemFilter |
Specifies the items that are shown in the BOM Structure window. |
| Lines | Type | Type | Specifies the item’s position in the BOM structure. Lower-level items are indented under their parents. from the table field |
| No. | No. | Specifies the number of the involved entry or record, according to the specified number series. from the table field | |
| Description | Description | Specifies the item’s description. from the table field | |
| Warning | HasWarning |
Specifies if the BOM line has setup or data issues. | |
| Low-Level Code | Low-Level Code | Specifies the item’s level in the BOM structure. from the table field | |
| Variant Code | Variant Code | Specifies the variant code that you entered in the Variant Filter field in the Item Availability by BOM Level window. from the table field | |
| Qty. per Parent | Qty. per Parent | Specifies how many units of the component are required to assemble or produce one unit of the parent. from the table field | |
| Qty. per Top Item | Qty. per Top Item | Specifies how many units of the component are required to assemble or produce one unit of the top item. from the table field | |
| Unit of Measure Code | Unit of Measure Code | 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. from the table field | |
| Replenishment System | Replenishment System | Specifies the item’s replenishment system. from the table field | |
| Lead-Time Offset | Lead-Time Offset | Specifies the total number of days that are required to assemble or produce the item. from the table field | |
| Safety Lead Time | Safety Lead Time | Specifies any safety lead time that is defined for the item. from the table field | |
| Lead Time Calculation | Lead Time Calculation | Specifies how long it takes to replenish the item, by purchase, assembly, or production. from the table field |
Actions
| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Item Availability by | Event | View how the actual and the projected available balance of an item will develop over time according to supply and demand events. | |
| Period | View the projected quantity of the item over time according to time periods, such as day, week, or month. | ||
| Variant | View or edit the item’s variants. Instead of setting up each color of an item as a separate item, you can set up the various colors as variants of the item. | ||
| Location | View the actual and projected quantity of the item per location. | ||
| Lot | View the current and projected quantity of the item in each lot. | Page 520 “Item Availability by Lot No.” | |
| BOM Level | View availability figures for items on bills of materials that show how many units of a parent item you can make based on the availability of child items. | ||
| Processing | Show Warnings | View details about bottlenecks. |
Events published
OnBeforeGenerateBOMTree(var BOMBuffer: Record "BOM Buffer"; var Item: Record Item; var AsmHeader: Record Microsoft.Assembly.Document."Assembly Header"; var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; ShowBy: Integer; ItemFilter: Code[250]; var IsHandled: Boolean)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeRefreshPage(var BOMBuffer: Record "BOM Buffer"; var Item: Record Item; var SourceRecordVar: Variant; ShowBy: Enum "BOM Structure Show By"; ItemFilter: Code[250]; var IsHandled: Boolean)+ BC27 (integration)OnRefreshPageOnBeforeRaiseError(var Item: Record Item; var RaiseError: Boolean; var ErrorText: Text)Δ BC24 (integration)
Procedures
InitItem(var NewItem: Record Item)InitSource(NewSourceRecordVar: Variant; NewShowBy: Enum "BOM Structure Show By")+ BC27InitAsmOrder(NewAsmHeader: Record Microsoft.Assembly.Document."Assembly Header")+ BC27 − BC27 − BC30 (obsolete 27.0: Replaced by procedure InitSource())InitProdOrder(NewProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line")+ BC27 − BC27 − BC30 (obsolete 27.0: Replaced by procedure InitSource())RefreshPage()
Plus 3 local procedures.
Triggers
OnAfterGetRecord, OnOpenPage
Relations
- source table Table 5870 “BOM Buffer”
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 5870 “Calculate BOM Tree” (3 calls:
RefreshPage → GenerateTreeForManyItems,RefreshPage → GenerateTreeForSource,RefreshPage → SetItemFilter) - Page 5874 “BOM Warning Log” (2 calls:
ShowWarnings → (object),ShowWarningsForAllLines → (object)) - Codeunit 353 “Item Availability Forms Mgt” (1 call:
ShowItemAvailability → ShowItemAvailabilityFromItem)
Recent changes
- 2026-10-02 #12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026 (main, BC30, obsoletion)
Documented on Microsoft Learn
Deprecations
- procedure InitAsmOrder: Pending 27.0 (#if not CLEAN27), “Replaced by procedure InitSource()”
- procedure InitProdOrder: Pending 27.0 (#if not CLEAN27), “Replaced by procedure InitSource()”
- procedure OnBeforeGenerateBOMTree: Pending 27.0 (#if not CLEAN27), “Replaced by event OnBeforeRefreshPage”
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: "BOM Structure"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.