Table 5870 "BOM Buffer"
Base Application · Microsoft.Inventory.BOM
Across versions
- BC23present
- BC242 events added, 2 events removed
- BC25unchanged
- BC262 fields added, 1 procedures added
- BC2753 fields changed, 13 events removed
- BC2847 fields changed, 1 procedures added
- BC29-30unchanged
Neighbourhood 15 connected objects and pages
Base Application · Microsoft.Inventory.BOM · BC23-30 · source at ea08af5e · facts from BC29
Learn documents this table through its pages: Page 5870 “BOM Structure” (1 Learn page), Page 5871 “Item Availability by BOM Level” (1), Page 5872 “BOM Cost Shares” (1).
Properties
| Property | Value |
|---|---|
| Caption | BOM Buffer |
| DataClassification | SystemMetadata |
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 | Entry No. Δ BC27 | Integer | — | AutoIncrement |
| 2 | Type Δ BC27 Δ BC28 | Enum “BOM Type” | Specifies the item’s position in the BOM structure. Lower-level items are indented under their parents. | enum Enum 5870 “BOM Type” |
| 3 | No. Δ BC27 Δ BC28 | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. | TableRelation Table 156 “Resource”, Table 27 “Item” (if (Type = const(Item)) Item else if (Type = const(Resource)) Resource) |
| 5 | Description Δ BC27 Δ BC28 | Text[100] | Specifies the item’s description. | |
| 6 | Unit of Measure Code Δ BC27 Δ BC28 | 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 5404 “Item Unit of Measure” (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.”))) |
| 7 | Variant Code Δ BC27 Δ BC28 | Code[10] | Specifies the variant code that you entered in the Variant Filter field in the Item Availability by BOM Level window. | TableRelation Table 5401 “Item Variant” (if (Type = const(Item)) “Item Variant”.Code where(“Item No.” = field(“No.”))) |
| 8 | Location Code Δ BC27 | Code[10] | — | TableRelation Table 14 “Location” |
| 9 | Replenishment System Δ BC27 Δ BC28 | Enum “Replenishment System” | Specifies the item’s replenishment system. | enum Enum 5419 “Replenishment System” |
| 10 | Indentation Δ BC27 | Integer | — | |
| 11 | Is Leaf Δ BC27 | Boolean | — | |
| 13 | Bottleneck Δ BC27 Δ BC28 | Boolean | 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. | |
| 20 | Lot Size Δ BC27 Δ BC28 | Decimal | Specifies the item’s lot size. The value is copied from the Lot Size field on the item card. | |
| 21 | Low-Level Code Δ BC27 Δ BC28 | Integer | Specifies the item’s level in the BOM structure. | not editable |
| 22 | Rounding Precision Δ BC27 Δ BC28 | Decimal | — | |
| 30 | Qty. per Parent Δ BC27 Δ BC28 | Decimal | Specifies how many units of the component are required to assemble or produce one unit of the parent. | |
| 31 | Qty. per Top Item Δ BC27 Δ BC28 | Decimal | Specifies how many units of the component are required to assemble or produce one unit of the top item. | |
| 32 | Able to Make Top Item Δ BC27 Δ BC28 | Decimal | Specifies how many units of the BOM item on the top line can be assembled or produced. | |
| 33 | Able to Make Parent Δ BC27 Δ BC28 | Decimal | Specifies how many units of the BOM item on the collapsible line above it can be assembled or produced. | |
| 35 | Available Quantity Δ BC27 Δ BC28 | Decimal | Specifies how many units of the item on the line are available, regardless of how many parents you can make with the item. | |
| 36 | Gross Requirement Δ BC27 Δ BC28 | Decimal | Specifies the total demand for the item. | |
| 37 | Scheduled Receipts Δ BC27 Δ BC28 | Decimal | Specifies how many units of the item are inbound on orders. | |
| 38 | Unused Quantity Δ BC27 Δ BC28 | Decimal | Specifies the part of the item’s total availability that is not required to make the quantities that are shown in the fields. | |
| 40 | Lead Time Calculation Δ BC27 Δ BC28 | DateFormula | Specifies how long it takes to replenish the item, by purchase, assembly, or production. | |
| 41 | Lead-Time Offset Δ BC27 Δ BC28 | DateFormula | Specifies the total number of days that are required to assemble or produce the item. | |
| 42 | Rolled-up Lead-Time Offset Δ BC27 Δ BC28 | Integer | Specifies the cumulative lead time of components under a parent item. | |
| 43 | Needed by Date Δ BC27 Δ BC28 | Date | Specifies when the item must be available to make the parent or top item. | |
| 45 | Safety Lead Time Δ BC27 Δ BC28 | DateFormula | Specifies any safety lead time that is defined for the item. | |
| 50 | Unit Cost Δ BC27 Δ BC28 | Decimal | Specifies the cost of one unit of the item or resource on the line. | |
| 52 | Indirect Cost % Δ BC27 Δ BC28 | 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. | |
| 54 | Overhead Rate Δ BC27 Δ BC28 | Decimal | Specifies the item’s overhead rate. | |
| 55 | Scrap % Δ BC27 Δ BC28 | Decimal | Specifies the percentage of the item that you expect to be scrapped in the production process. | |
| 56 | Scrap Qty. per Parent Δ BC27 Δ BC28 | Decimal | Specifies how many units of the item are scrapped to output the top item quantity. | |
| 57 | Scrap Qty. per Top Item Δ BC27 Δ BC28 | Decimal | Specifies how many units of the item are scrapped to output the parent item quantity. | |
| 59 | Resource Usage Type Δ BC27 Δ BC28 | Option | Specifies how the cost of the resource on the assembly BOM is allocated during assembly. | OptionCaption: Direct,Fixed |
| 61 | Single-Level Material Cost Δ BC27 Δ BC28 | Decimal | Specifies the total material cost of all components on the parent item’s BOM. | |
| 62 | Single-Level Capacity Cost Δ BC27 Δ BC28 | Decimal | Specifies the capacity costs related to the item’s parent item only. | |
| 64 | Single-Level Cap. Ovhd Cost Δ BC27 Δ BC28 | Decimal | Specifies the single-level capacity overhead cost. | |
| 63 | Single-Level Subcontrd. Cost Δ BC27 Δ BC28 | Decimal | Specifies the single-level cost of outsourcing operations to a subcontractor. | |
| 65 | Single-Level Mfg. Ovhd Cost Δ BC27 Δ BC28 | Decimal | Specifies the single-level manufacturing overhead cost. | |
| 66 | Single-Level Scrap Cost Δ BC27 Δ BC28 | Decimal | Specifies the cost of material at this BOM level that will eventually be scrapped in order to produce the parent item. | |
| 71 | Rolled-up Material Cost Δ BC27 Δ BC28 | Decimal | Specifies the material cost of all items at all levels of the parent item’s BOM, added to the material cost of the item itself. | not editable |
| 72 | Rolled-up Capacity Cost Δ BC27 Δ BC28 | Decimal | Specifies the capacity costs related to the item’s parent item and other items in the parent item’s BOM. | not editable |
| 74 | Rolled-up Capacity Ovhd. Cost Δ BC27 Δ BC28 | Decimal | Specifies the rolled-up manufacturing overhead cost of the item. | not editable |
| 73 | Rolled-up Subcontracted Cost Δ BC27 Δ BC28 | Decimal | Specifies the single-level cost of outsourcing operations to a subcontractor. | not editable |
| 75 | Rolled-up Mfg. Ovhd Cost Δ BC27 Δ BC28 | Decimal | Specifies the item’s overhead capacity cost rolled up from underlying item levels. | not editable |
| 76 | Rolled-up Scrap Cost Δ BC27 Δ BC28 | Decimal | Specifies the cost of all component material that will eventually be scrapped to produce the parent item. | |
| 77 | Single-Lvl Mat. Non-Invt. Cost + BC26 Δ BC27 Δ BC28 | Decimal | Specifies the total non inventory material cost of all components on the parent item’s BOM. | |
| 78 | Rolled-up Mat. Non-Invt. Cost + BC26 Δ BC27 Δ BC28 | Decimal | Specifies the non inventory material cost of all items at all levels of the parent item’s BOM, added to the non inventory material cost of the item itself. | not editable |
| 81 | Total Cost Δ BC27 Δ BC28 | Decimal | Specifies the sum of all cost at this BOM level. | |
| 82 | BOM Unit of Measure Code Δ BC27 Δ BC28 | Code[10] | Specifies the unit of measure of the BOM item. | TableRelation Table 205 “Resource Unit of Measure”, Table 5404 “Item Unit of Measure” (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.”))) |
| 83 | Qty. per BOM Line Δ BC27 Δ BC28 | Decimal | Specifies how many units of the component are required to assemble or produce one unit of the item on the BOM line. | |
| 84 | Inventoriable Δ BC27 | Boolean | — | |
| 85 | Calculation Formula Δ BC27 | Enum “Quantity Calculation Formula” | — | enum Enum 5444 “Quantity Calculation Formula” |
Keys
- Key1: Entry No. (clustered)
- Key2: Low-Level Code
- Key3: Type, No., Indentation
- Key4: Total Cost
Events published
OnAfterCalcUnitCost(var BOMBuffer: Record "BOM Buffer")(integration)OnAfterGetItemCosts(var BOMBuffer: Record "BOM Buffer"; Item: Record Item)(integration)OnAfterInitFromItem(var BOMBuffer: Record "BOM Buffer"; Item: Record Item; StockkeepingUnit: Record "Stockkeeping Unit")(integration)OnAfterInitFromRes(var BOMBuffer: Record "BOM Buffer"; Resource: Record Resource)(integration)OnAfterIsLineOk(var BOMBuffer: Record "BOM Buffer"; LogWarning: Boolean; var BOMWarningLog: Record "BOM Warning Log"; var Result: Boolean)(integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnAfterIsLineOk
OnAfterRoundCosts(var BOMBuffer: Record "BOM Buffer"; ShareOfTotalCost: Decimal)(integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnAfterRoundCosts
OnBeforeCalcOvhdCost(var BOMBuffer: Record "BOM Buffer"; var IsHandled: Boolean)(integration)OnBeforeInitFromItem(var BOMBuffer: Record "BOM Buffer"; Item: Record Item; var IsHandled: Boolean)(integration)OnBeforeIsBOMOk(var BOMBuffer: Record "BOM Buffer"; var Result: Boolean; var IsHandled: Boolean; var LogWarning: Boolean; var BOMWarningLog: Record "BOM Warning Log")+ BC24 − BC24 (integration)OnBeforeIsLowLevelOk(var BOMBuffer: Record "BOM Buffer"; var Result: Boolean; var IsHandled: Boolean; var LogWarning: Boolean; var BOMWarningLog: Record "BOM Warning Log")+ BC24 − BC24 (integration)OnBeforeInitFromRes(var BOMBuffer: Record "BOM Buffer"; Resource: Record Resource; var IsHandled: Boolean)(integration)OnBeforeUpdateAbleToMake(var BOMBuffer: Record "BOM Buffer"; var AvailQty: Decimal; var IsHandled: Boolean)(integration)OnGetItemCostsOnBeforeRoundCosts(var BOMBuffer: Record "BOM Buffer"; var Item: Record Item)+ BC27 − BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnGetItemCostsOnBeforeRoundCosts
OnTransferFromItemCopyFields(var BOMBuffer: Record "BOM Buffer"; Item: Record Item)(integration)OnTransferFromBOMCompCopyFields(var BOMBuffer: Record "BOM Buffer"; BOMComponent: Record "BOM Component")(integration)OnBeforeIsQtyPerOk(var BOMBuffer: Record "BOM Buffer"; var BOMWarningLog: Record "BOM Warning Log"; LogWarning: Boolean; var Result: Boolean; var IsHandled: Boolean)(integration)OnBeforeIsReplenishmentOk(var BOMBuffer: Record "BOM Buffer"; var BOMWarningLog: Record "BOM Warning Log"; LogWarning: Boolean; var Result: Boolean; var IsHandled: Boolean)(integration)OnBeforeRoundUnitAmt(Amt: Decimal; ShareOfCost: Decimal; var IsHandled: Boolean; var ReturnValue: Decimal)(integration)OnAfterCalcDirectCost(var BOMBuffer: Record "BOM Buffer"; var Cost: Decimal)+ BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnAfterCalcDirectCost
OnAfterCalcIndirectCost(var BOMBuffer: Record "BOM Buffer"; var Cost: Decimal)+ BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnAfterCalcIndirectCost
OnAfterCalcOvhdCost(var BOMBuffer: Record "BOM Buffer"; LotSize: Decimal)+ BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnAfterCalcOvhdCost
OnAfterGetUnitCost(var BOMBuffer: Record "BOM Buffer"; var Item: Record Item)+ BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnAfterGetUnitCost
OnIsQtyPerOKOnAfterCheckItemAssemblyBOM(Item: Record Item; var BOMWarningLog: Record "BOM Warning Log")+ BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnIsQtyPerOKOnAfterCheckItemAssemblyBOM
OnInitFromItemOnAfterSetReplenishmentSystem(var BOMBuffer: Record "BOM Buffer"; Item: Record Item; StockkeepingUnit: Record "Stockkeeping Unit")+ BC27 (integration)- subscribers: Codeunit 99000820 “Mfg. Bom Buffer” OnInitFromItemOnAfterSetReplenishmentSystem
OnAfterSetLocationVariantFiltersFrom(var BOMBuffer: Record "BOM Buffer"; var ItemFilter: Record Item)+ BC27 (integration)
Procedures
TransferFromItem(var EntryNo: Integer; Item: Record Item; DemandDate: Date)TransferFromBOMComp(var EntryNo: Integer; BOMComp: Record "BOM Component"; NewIndentation: Integer; ParentQtyPer: Decimal; ParentScrapQtyPer: Decimal; NeedByDate: Date; ParentLocationCode: Code[10])InitFromItem(Item: Record Item)InitFromRes(Resourse: Record Resource)UpdateAbleToMake(AvailQty: Decimal)AddMaterialCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)AddCapacityCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)AddCapOvhdCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)AddSubcontrdCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)AddMfgOvhdCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)AddScrapCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)AddNonInvMaterialCost(SingleLvlCostAmt: Decimal; RolledUpCostAmt: Decimal)+ BC26GetItemCosts()GetItemUnitCost()+ BC24GetResCosts()RoundCosts(ShareOfTotalCost: Decimal)RoundUnitAmt(Amt: Decimal; ShareOfCost: Decimal): DecimalΔ BC27CalcOvhdCost()CalcDirectCost(): DecimalCalcIndirectCost(): DecimalCalcUnitCost()IsLineOk(LogWarning: Boolean; var BOMWarningLog: Record "BOM Warning Log"): BooleanAreAllLinesOk(var BOMWarningLog: Record "BOM Warning Log"): BooleanSetLocationVariantFiltersFrom(var ItemFilter: Record Item)SetItemWarningLog(var BOMWarningLog: Record "BOM Warning Log"; var Item: Record Item; WarningText: Text)+ BC27
Plus 9 local procedures.
Relations
- Location Code: TableRelation Table 14 “Location”
- No.: TableRelation Table 156 “Resource” (conditional)
- BOM Unit of Measure Code: TableRelation Table 205 “Resource Unit of Measure” (conditional)
- Unit of Measure Code: TableRelation Table 205 “Resource Unit of Measure” (conditional)
- No.: TableRelation Table 27 “Item” (conditional)
- Variant Code: TableRelation Table 5401 “Item Variant”
- BOM Unit of Measure Code: TableRelation Table 5404 “Item Unit of Measure” (conditional)
- Unit of Measure Code: TableRelation Table 5404 “Item Unit of Measure” (conditional)
Pages and codeunits on this table
- Page 5870 “BOM Structure” (source table)
- Page 5871 “Item Availability by BOM Level” (source table)
- Page 5872 “BOM Cost Shares” (source table)
Extended by
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 5402 “Unit of Measure Management” (7 calls:
CalcOvhdCost → GetQtyPerUnitOfMeasure,GetItemCosts → GetQtyPerUnitOfMeasure,GetItemUnitCost → GetQtyPerUnitOfMeasure, …)
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: "BOM Buffer"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.