---
id: object/page/5871
type: object
title: Page 5871 "Item Availability by BOM Level"
summary: Page 5871 "Item Availability by BOM Level" in Base Application (Microsoft.Inventory.Availability). 7 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24-28, BC30.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "30"
  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: 8b4a8872ccc5d58e450d81b721f829c2a35c549521f647be8fb2dee7c7345387
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Availability/ItemAvailabilitybyBOMLevel.Page.al
    title: src/Layers/W1/BaseApp/Inventory/Availability/ItemAvailabilitybyBOMLevel.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/inventory-how-availability-overview
    title: Get an availability overview
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/inventory-how-availability-overview
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/inventory
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12066
    - change/bcapps/9961
object_type: page
object_id: 5871
name: Item Availability by BOM Level
namespace: Microsoft.Inventory.Availability
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"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/inventory-how-availability-overview.md
counts:
  fields: 0
  procedures: 14
  events: 3
  subscribers: 0
  controls: 24
  actions: 9
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Page 5871 "Item Availability by BOM Level"

> Page 5871 "Item Availability by BOM Level" in Base Application (Microsoft.Inventory.Availability). 7 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24-28, BC30.

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

## Properties

| Property | Value |
|---|---|
| Caption | Item Availability by BOM Level |
| 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 item you want to show availability information for. |
|  | Location Filter | `LocationFilter` | Specifies the location that you want to show item availability for. |
|  | Variant Filter | `VariantFilter` | Specifies the item variant you want to show availability for. |
|  | Demand Date | `DemandDate` | Specifies the date when you want to potentially make the parents, or top items, shown in the Item Availability by BOM Level window. |
|  | Calculated | `IsCalculated` | Specifies that the low-level code of the item on the line has been calculated. |
|  | Show Total Availability | `ShowTotalAvailability` | Specifies whether the Item Availability by BOM Level window shows availability of all items, including the potential availability of parents. |
| Lines | No. | [No.](../table/5870.md#fields) | Specifies the number of the involved entry or record, according to the specified number series. <small>from the table field</small> |
|  | Description | [Description](../table/5870.md#fields) | Specifies the item's description. <small>from the table field</small> |
|  | Warning | `HasWarning` | Specifies if the BOM line has setup or data issues. Choose the field to open the BOM Warning Log window to see a description of the issue. |
|  | Bottleneck | [Bottleneck](../table/5870.md#fields) | Specifies which item in the BOM structure restricts you from making a larger quantity than what is shown in the Able to Make Top Item field. <small>from the table field</small> |
|  | Variant Code | [Variant Code](../table/5870.md#fields) | Specifies the variant code that you entered in the Variant Filter field in the Item Availability by BOM Level window. <small>from the table field</small> |
|  | Qty. per Parent | [Qty. per Parent](../table/5870.md#fields) | Specifies how many units of the component are required to assemble or produce one unit of the parent. <small>from the table field</small> |
|  | Qty. per Top Item | [Qty. per Top Item](../table/5870.md#fields) | Specifies how many units of the component are required to assemble or produce one unit of the top item. <small>from the table field</small> |
|  | Unit of Measure Code | [Unit of Measure Code](../table/5870.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> |
|  | Replenishment System | [Replenishment System](../table/5870.md#fields) | Specifies the item's replenishment system. <small>from the table field</small> |
|  | Available Quantity | [Available Quantity](../table/5870.md#fields) | Specifies how many units of the item on the line are available, regardless of how many parents you can make with the item. <small>from the table field</small> |
|  | Unused Quantity | [Unused Quantity](../table/5870.md#fields) | Specifies the part of the item's total availability that is not required to make the quantities that are shown in the fields. <small>from the table field</small> |
|  | Needed by Date | [Needed by Date](../table/5870.md#fields) | Specifies when the item must be available to make the parent or top item. <small>from the table field</small> |
|  | Able to Make Parent | [Able to Make Parent](../table/5870.md#fields) | Specifies how many units of the BOM item on the collapsible line above it can be assembled or produced. <small>from the table field</small> |
|  | Able to Make Top Item | [Able to Make Top Item](../table/5870.md#fields) | Specifies how many units of the BOM item on the top line can be assembled or produced. <small>from the table field</small> |
|  | Gross Requirement | [Gross Requirement](../table/5870.md#fields) | Specifies the total demand for the item. <small>from the table field</small> |
|  | Scheduled Receipts | [Scheduled Receipts](../table/5870.md#fields) | Specifies how many units of the item are inbound on orders. <small>from the table field</small> |
|  | Safety Lead Time | [Safety Lead Time](../table/5870.md#fields) | Specifies any safety lead time that is defined for the item. <small>from the table field</small> |
|  | Rolled-up Lead-Time Offset | [Rolled-up Lead-Time Offset](../table/5870.md#fields) | Specifies the cumulative lead time of components under a parent item. <small>from the table field</small> |

## 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. |  |
| Processing | Previous Period | Show the information based on the previous period. If you set the View by field to Day, the date filter changes to the day before. |  |
|  | Next Period | Show the information based on the next period. If you set the View by field to Day, the date filter changes to the day before. |  |
|  | Show Warnings | View details about bottlenecks. |  |
|  | Item | View detailed information for the child item. | [Page 30 "Item Card"](../page/30.md) |
| Reporting | Item - Able to Make (Timeline) | View five key availability figures over time for the selected parent item. The figures change according to expected supply and demand events and to supply that is based on available components that can be assembled or produced. You can use the report to see whether you can fulfill a sales order for ... |  |

## Events published

- `OnRefreshPageOnBeforeCheckItemHasBOM(var Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnOpenPageOnBeforeRefreshPage(var BOMBuffer: Record "BOM Buffer")` (integration)
- `OnRefreshPageOnAfterSetItemFilters(var Item: Record Item)` (integration)

## Procedures

- `InitItem(var NewItem: Record Item)`
- `InitSource(NewSourceRecordVar: Variant; NewShowBy: Enum "BOM Structure Show By")`
- `InitAsmOrder(NewAsmHeader: Record Microsoft.Assembly.Document."Assembly Header")` (obsolete 27.0: Replaced by procedure InitSource())
- `InitProdOrder(NewProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line")` (obsolete 27.0: Replaced by procedure InitSource())
- `InitDate(NewDemandDate: Date)`
- `RefreshPage()` (protected)
- `GetSelectedDate(): Date`

Plus 4 local procedures.

## Triggers

OnAfterGetRecord, OnOpenPage

## Relations

- source table [Table 5870 "BOM Buffer"](../table/5870.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 5870 "Calculate BOM Tree"](../codeunit/5870.md) (4 calls: `RefreshPage → GenerateTreeForManyItems`, `RefreshPage → GenerateTreeForSource`, `RefreshPage → SetItemFilter`, …)
- [Page 5874 "BOM Warning Log"](../page/5874.md) (2 calls: `ShowWarnings → (object)`, `ShowWarningsForAllLines → (object)`)
- [Codeunit 353 "Item Availability Forms Mgt"](../codeunit/353.md) (1 call: `ShowItemAvailability → ShowItemAvailabilityFromItem`)

## Recent changes

- 2026-10-02 [#12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026](../../changes/bcapps/12066.md) (main, BC30, obsoletion)
- 2026-08-10 [#9961 [Extensibility Request] issue 30381: expose page sender to filter subscribers](../../changes/bcapps/9961.md) (main, BC30, feature)

## Across versions

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

## Documented on Microsoft Learn

- [Get an availability overview](https://learn.microsoft.com/dynamics365/business-central/inventory-how-availability-overview)

## 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()"

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: "Item Availability by BOM Level")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
