Codeunit 5870 "Calculate BOM Tree"
Base Application · Microsoft.Inventory.BOM.Tree
Across versions
- BC23present
- BC242 events added, 2 events removed
- BC252 events added, 1 events removed
- BC26unchanged
- BC2730 procedures added, 14 events added
- BC283 events added
- BC29unchanged
- BC3023 procedures removed, 17 events removed
Neighbourhood 12 connected objects and pages
Base Application · Microsoft.Inventory.BOM.Tree · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnAfterFilterBOMBuffer(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; DemandDate: Date; TreeType: Option)(integration)OnAfterCalcCompDueDate(var DueDate: Date; DemandDate: Date; ParentItem: Record Item; LeadTimeOffset: DateFormula)+ BC28 (integration)OnAfterGenerateProdCompSubTree(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer")Δ BC27 − BC30 (integration, obsolete 27.0)OnAfterTransferFromProdItem(var BOMBuffer: Record "BOM Buffer"; ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var EntryNo: Integer)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnAfterTransferFromProdBOM(var BOMBuffer: Record "BOM Buffer"; ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnAfterTransferFromProdRouting(var BOMBuffer: Record "BOM Buffer"; var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeCalcRoutingLineCosts(var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; var LotSize: Decimal; var ScrapPct: Decimal; ParentItem: Record Item)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeFilterBOMBuffer(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; DemandDate: Date; TreeType: Option; var IsHandled: Boolean)(integration)OnBeforeFilterByQuantityPer(var ProductionBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var IsHandled: Boolean; BOMBuffer: Record "BOM Buffer")+ BC24 − BC24 + BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeGenerateTreeForItems(var HideDialog: Boolean)(integration)OnBeforeGenerateTreeForItemLocal(var ParentItem: Record Item; DemandDate: Date; TreeType: Option; var BOMBuffer: Record "BOM Buffer"; var IsHandled: Boolean)(integration)OnBeforeTransferFromProdBOM(var BOMBuffer: Record "BOM Buffer"; var ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var ParentItem: Record Item; var ParentBOMBuffer: Record "BOM Buffer"; var EntryNo: Integer; TreeType: Option " ",Availability,Cost)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeTransferProdBOMLine(var BOMBuffer: Record "BOM Buffer"; var ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var ParentItem: Record Item; var ParentBOMBuffer: Record "BOM Buffer"; var EntryNo: Integer; TreeType: Option " ",Availability,Cost; var IsHandled: Boolean)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGenerateAsmHeaderSubTreeOnAfterAsmLineLoop(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")Δ BC27 − BC30 (integration, obsolete 27.0)OnGenerateProdCompSubTreeOnBeforeExitForNonProdOrder(ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; var FoundSubTree: Boolean)Δ BC27 − BC30 (integration, obsolete 27.0)OnGenerateProdCompSubTreeOnAfterGenerateItemSubTree(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")Δ BC27 − BC30 (integration, obsolete 27.0)OnGenerateProdCompSubTreeOnAfterProdBOMLineLoop(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")Δ BC27 − BC30 (integration, obsolete 27.0)OnGenerateItemSubTreeOnAfterParentItemGet(var ParentItem: Record Item)(integration)OnGenerateProdCompSubTreeOnBeforeBOMBufferModify(var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer"; ParentItem: Record Item)Δ BC27 − BC30 (integration, obsolete 27.0)OnTraverseCostTreeOnAfterAddCosts(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")(integration)OnTraverseCostTreeOnBeforeAddCosts(var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer")+ BC28 (integration)OnTraverseCostTreeOnBeforeLastUpdateNodeCosts(var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer")+ BC28 (integration)OnTraverseTreeOnBeforeCalcAbleToMakeParentAndTopItem(var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer"; var IsHandled: Boolean)(integration)OnCalcRoutingLineCostsOnBeforeBOMBufferAdd(RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; LotSize: Decimal; ScrapPct: Decimal; var CapCost: Decimal; var SubcontractedCapCost: Decimal; var CapOverhead: Decimal; var BOMBuffer: Record "BOM Buffer")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGenerateProdCompSubTreeOnAfterBOMBufferModify(var BOMBuffer: Record "BOM Buffer"; RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; LotSize: Decimal; ParentItem: Record Item; ParentBOMBuffer: Record "BOM Buffer"; TreeType: Option)+ BC24 − BC24 + BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGenerateProdCompSubTreeOnBeforeRoutingLineLoop(var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; var BOMBuffer: Record "BOM Buffer"; var RunIteration: Boolean)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGenerateTreeForItemLocalOnBeforeCalculateTreeType(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; var TreeType: Option; var EntryNo: Integer)(integration)OnInitItemAvailDatesOnBeforeCalcAvailableQty(var BOMItem: Record Item)(integration)OnGenerateBOMCompSubTreeOnBeforeLoopBOMComponents(ParentItem: Record Item; var IsHandled: Boolean)(integration)OnBeforeInitBOMBuffer(var BOMBuffer: Record "BOM Buffer"; var IsHandled: Boolean)(integration)OnCalcAvailabilityOnBeforeUpdateAvailableQty(var BOMBuffer: Record "BOM Buffer"; ExpectedQty: Decimal; AvailQty: Decimal; var AvailableVsExpectedCondition: Boolean)+ BC25 (integration)OnBeforeGenerateProdOrderLineSubTree(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer"; var Result: Boolean; var IsHandled: Boolean)+ BC25 + BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGenerateTreeForSource(SourceRecordVar: Variant; var BOMBuffer: Record "BOM Buffer"; BOMTreeType: Enum "BOM Tree Type"; ShowBy: Enum "BOM Structure Show By"; DemandDate: Date; var ItemFilter: Record Item; var EntryNo: Integer)+ BC27 (integration)- subscribers: Codeunit 931 “Asm. Calculate BOM Tree” AssemblyHeaderOnGenerateTreeForSource, Codeunit 99000781 “Mfg. Calculate BOM Tree” ProdOrderLineOnGenerateTreeForSource
OnGenerateItemSubTreeOnSetIsLeaf(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; var ItemFilter: Record Item; var EntryNo: Integer)+ BC27 (integration)- subscribers: Codeunit 99000781 “Mfg. Calculate BOM Tree” OnGenerateItemSubTreeOnSetIsLeaf
OnHasBOMStructure(var Item: Record Item; var Result: Boolean)+ BC27 (integration)
Procedures
InitVars()Δ BC27InitBOMBuffer(var BOMBuffer: Record "BOM Buffer")Δ BC27InitTreeType(NewTreeType: Enum "BOM Tree Type")+ BC27 − BC27GetTreeType(): Enum "BOM Tree Type"+ BC27GenerateTreeForItems(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; TreeType: Option " ",Availability,Cost)Δ BC27 − BC30 (obsolete 27.0: Replaced by procedure GenerateTreeForManyItems)GenerateTreeForManyItems(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; TreeType: Enum "BOM Tree Type")+ BC27GenerateTreeForItem(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; DemandDate: Date; TreeType: Option)Δ BC27 − BC30 (obsolete 27.0: Replaced by procedure GenerateTreeForOneItem())GenerateTreeForOneItem(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; DemandDate: Date; TreeType: Enum "BOM Tree Type")+ BC27GenerateTreeForSource(SourceRecordVar: Variant; var BOMBuffer: Record "BOM Buffer"; BOMTreeType: Enum "BOM Tree Type"; ShowBy: Enum "BOM Structure Show By"; DemandDate: Date)+ BC27GenerateTreeForAsm(AsmHeader: Record Microsoft.Assembly.Document."Assembly Header"; var BOMBuffer: Record "BOM Buffer"; TreeType: Option)+ BC27 − BC27 − BC30 (obsolete 27.0: Replaced by procedure GenerateTreeForAssemblyHeader())GenerateTreeForAssemblyHeader(AsmHeader: Record Microsoft.Assembly.Document."Assembly Header"; var BOMBuffer: Record "BOM Buffer"; TreeType: Enum "BOM Tree Type")+ BC27 − BC30 (obsolete 27.0: Moved to codeunit AsmCalculateBOMTree)GenerateTreeForProdLine(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var BOMBuffer: Record "BOM Buffer"; TreeType: Option)+ BC27 − BC27 − BC30 (obsolete 27.0: Replaced by procedure GenerateTreeForProdOrderLine)GenerateTreeForProdOrderLine(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var BOMBuffer: Record "BOM Buffer"; TreeType: Enum "BOM Tree Type")+ BC27 − BC30 (obsolete 27.0: Moved to codeunit MfgCalculateBOMTree)CalculateTreeType(var BOMBuffer: Record "BOM Buffer"; ShowTotalAvailability2: Boolean; TreeType: Enum "BOM Tree Type")+ BC27 − BC27GenerateItemSubTree(ItemNo: Code[20]; var BOMBuffer: Record "BOM Buffer"): BooleanΔ BC27CalcCompDueDate(DemandDate: Date; ParentItem: Record Item; LeadTimeOffset: DateFormula): DateΔ BC27SetShowTotalAvailability(NewShowTotalAvailability: Boolean)SetItemFilter(var Item: Record Item)SetLocationSpecific(NewLocationSpecific: Boolean)+ BC27GetShowTotalAvailability(): Boolean+ BC27RunOnAfterGenerateProdCompSubTree(var ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer")+ BC27 − BC30 (internal)RunOnAfterTransferFromProdItem(var BOMBuffer: Record "BOM Buffer"; ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var EntryNo: Integer)+ BC27 − BC30 (internal)RunOnAfterTransferFromProdBOM(var BOMBuffer: Record "BOM Buffer"; ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line")+ BC27 − BC30 (internal)RunOnAfterTransferFromProdRouting(var BOMBuffer: Record "BOM Buffer"; var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line")+ BC27 − BC30 (internal)RunOnBeforeCalcRoutingLineCosts(var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; var LotSize: Decimal; var ScrapPct: Decimal; ParentItem: Record Item)+ BC27 − BC30 (internal)RunOnBeforeFilterByQuantityPer(var ProductionBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var IsHandled: Boolean; BOMBuffer: Record "BOM Buffer")+ BC27 − BC30 (internal)RunOnBeforeTransferFromProdBOM(var BOMBuffer: Record "BOM Buffer"; var ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var ParentItem: Record Item; var ParentBOMBuffer: Record "BOM Buffer"; var EntryNo2: Integer; TreeType: Option " ",Availability,Cost)+ BC27 − BC30 (internal)RunOnBeforeTransferProdBOMLine(var BOMBuffer: Record "BOM Buffer"; var ProdBOMLine: Record Microsoft.Manufacturing.ProductionBOM."Production BOM Line"; var ParentItem: Record Item; var ParentBOMBuffer: Record "BOM Buffer"; var EntryNo2: Integer; TreeType: Option " ",Availability,Cost; var IsHandled: Boolean)+ BC27 − BC30 (internal)RunOnGenerateAsmHeaderSubTreeOnAfterAsmLineLoop(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")+ BC27 − BC30 (internal)RunOnGenerateProdCompSubTreeOnBeforeExitForNonProdOrder(ParentItem: Record Item; var BOMBuffer: Record "BOM Buffer"; var FoundSubTree: Boolean)+ BC27 − BC30 (internal)RunOnGenerateProdCompSubTreeOnAfterGenerateItemSubTree(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")+ BC27 − BC30 (internal)RunOnGenerateProdCompSubTreeOnAfterProdBOMLineLoop(var ParentBOMBuffer: Record "BOM Buffer"; var BOMBuffer: Record "BOM Buffer")+ BC27 − BC30 (internal)RunOnGenerateProdCompSubTreeOnBeforeBOMBufferModify(var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer"; ParentItem: Record Item)+ BC27 − BC30 (internal)RunOnCalcRoutingLineCostsOnBeforeBOMBufferAdd(RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; LotSize: Decimal; ScrapPct: Decimal; var CapCost: Decimal; var SubcontractedCapCost: Decimal; var CapOverhead: Decimal; var BOMBuffer: Record "BOM Buffer")+ BC27 − BC30 (internal)RunOnGenerateProdCompSubTreeOnAfterBOMBufferModify(var BOMBuffer: Record "BOM Buffer"; RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; LotSize: Decimal; ParentItem: Record Item; ParentBOMBuffer: Record "BOM Buffer"; TreeType: Option)+ BC27 − BC30 (internal)RunOnGenerateProdCompSubTreeOnBeforeRoutingLineLoop(var RoutingLine: Record Microsoft.Manufacturing.Routing."Routing Line"; var BOMBuffer: Record "BOM Buffer"; var RunIteration: Boolean)+ BC27 − BC30 (internal)RunOnBeforeGenerateProdOrderLineSubTree(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var BOMBuffer: Record "BOM Buffer"; var ParentBOMBuffer: Record "BOM Buffer"; var Result: Boolean; var IsHandled: Boolean)+ BC27 − BC30 (internal)
Plus 24 local procedures.
Triggers
OnRun
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” (6 calls:
BinarySearchOptimal → QtyRndPrecision,CalcAvailability → QtyRndPrecision,GenerateBOMCompSubTree → GetQtyPerUnitOfMeasure, …) - Codeunit 5790 “Available to Promise” (1 call:
InitItemAvailDates → CalcQtyAvailableToPromise)
Called by
- Codeunit 99000781 “Mfg. Calculate BOM Tree” (13 calls:
GenerateProdCompSubTree → (object),GenerateProdCompSubTree → CalcCompDueDate,GenerateProdCompSubTree → GenerateItemSubTree, …) - Codeunit 931 “Asm. Calculate BOM Tree” (9 calls:
GenerateAsmHeaderSubTree → (object),GenerateAsmHeaderSubTree → GenerateItemSubTree,GenerateTreeForAssemblyHeader → CalculateTreeType, …) - Page 5871 “Item Availability by BOM Level” (4 calls:
RefreshPage → GenerateTreeForManyItems,RefreshPage → GenerateTreeForSource,RefreshPage → SetItemFilter, …) - Page 5870 “BOM Structure” (3 calls:
RefreshPage → GenerateTreeForManyItems,RefreshPage → GenerateTreeForSource,RefreshPage → SetItemFilter) - Page 5872 “BOM Cost Shares” (3 calls:
UpdatePage → GenerateTreeForManyItems,UpdatePage → GenerateTreeForSource,UpdatePage → SetItemFilter) - Report 5871 “Item - Able to Make (Timeline)” (3 calls:
GenerateAvailTrend → GenerateTreeForOneItem,GenerateAvailTrend → GenerateTreeForSource,GenerateAvailTrend → SetShowTotalAvailability) - Report 5872 “BOM Cost Share Distribution” (1 call:
GenerateAvailTrend → GenerateTreeForOneItem) - Report 99000794 “Compare Production Cost Shares” (1 call:
GenerateTreeForItems → GenerateTreeForOneItem)
Recent changes
- 2026-10-02 #12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026 (main, BC30, obsoletion)
- 2026-09-16 #11476 [29.X]-Item Availability by BOM Level Produces Inconsistent Able-to-Make Results When G-TOP-BOM-02 Replenishment Changes from Assembly to Purchase - 2606050050002529- #11411 (releases/29.x, BC29, fix)
- 2026-09-15 #11411 [Master]-Item Availability by BOM Level Produces Inconsistent Able-to-Make Results When G-TOP-BOM-02 Replenishment Changes from Assembly to Purchase - 2606050050002529 (main, BC30, fix)
Deprecations
- procedure RunOnAfterGenerateProdCompSubTree: guarded (#if not CLEAN27)
- procedure RunOnAfterTransferFromProdBOM: guarded (#if not CLEAN27)
- procedure RunOnAfterTransferFromProdItem: guarded (#if not CLEAN27)
- procedure RunOnAfterTransferFromProdRouting: guarded (#if not CLEAN27)
- procedure RunOnBeforeCalcRoutingLineCosts: guarded (#if not CLEAN27)
- procedure RunOnBeforeFilterByQuantityPer: guarded (#if not CLEAN27)
- procedure RunOnBeforeGenerateProdOrderLineSubTree: guarded (#if not CLEAN27)
- procedure RunOnBeforeTransferFromProdBOM: guarded (#if not CLEAN27)
- procedure RunOnBeforeTransferProdBOMLine: guarded (#if not CLEAN27)
- procedure RunOnCalcRoutingLineCostsOnBeforeBOMBufferAdd: guarded (#if not CLEAN27)
- procedure RunOnGenerateAsmHeaderSubTreeOnAfterAsmLineLoop: guarded (#if not CLEAN27)
- procedure RunOnGenerateProdCompSubTreeOnAfterBOMBufferModify: guarded (#if not CLEAN27)
- procedure RunOnGenerateProdCompSubTreeOnAfterGenerateItemSubTree: guarded (#if not CLEAN27)
- procedure RunOnGenerateProdCompSubTreeOnAfterProdBOMLineLoop: guarded (#if not CLEAN27)
- procedure RunOnGenerateProdCompSubTreeOnBeforeBOMBufferModify: guarded (#if not CLEAN27)
- procedure RunOnGenerateProdCompSubTreeOnBeforeExitForNonProdOrder: guarded (#if not CLEAN27)
- procedure RunOnGenerateProdCompSubTreeOnBeforeRoutingLineLoop: guarded (#if not CLEAN27)
- procedure GenerateTreeForAsm: Pending 27.0 (#if not CLEAN27), “Replaced by procedure GenerateTreeForAssemblyHeader()”
- procedure GenerateTreeForAssemblyHeader: Pending 27.0 (#if not CLEAN27), “Moved to codeunit AsmCalculateBOMTree”
- procedure GenerateTreeForItem: Pending 27.0 (#if not CLEAN27), “Replaced by procedure GenerateTreeForOneItem()”
- procedure GenerateTreeForItems: Pending 27.0 (#if not CLEAN27), “Replaced by procedure GenerateTreeForManyItems”
- procedure GenerateTreeForProdLine: Pending 27.0 (#if not CLEAN27), “Replaced by procedure GenerateTreeForProdOrderLine”
- procedure GenerateTreeForProdOrderLine: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnAfterGenerateProdCompSubTree: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnAfterTransferFromProdBOM: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnAfterTransferFromProdItem: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnAfterTransferFromProdRouting: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnBeforeCalcRoutingLineCosts: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnBeforeFilterByQuantityPer: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnBeforeGenerateProdOrderLineSubTree: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnBeforeTransferFromProdBOM: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnBeforeTransferProdBOMLine: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnCalcRoutingLineCostsOnBeforeBOMBufferAdd: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnGenerateAsmHeaderSubTreeOnAfterAsmLineLoop: Pending 27.0 (#if not CLEAN27), “Moved to codeunit AsmCalculateBOMTree”
- procedure OnGenerateProdCompSubTreeOnAfterBOMBufferModify: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnGenerateProdCompSubTreeOnAfterGenerateItemSubTree: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnGenerateProdCompSubTreeOnAfterProdBOMLineLoop: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnGenerateProdCompSubTreeOnBeforeBOMBufferModify: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnGenerateProdCompSubTreeOnBeforeExitForNonProdOrder: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
- procedure OnGenerateProdCompSubTreeOnBeforeRoutingLineLoop: Pending 27.0 (#if not CLEAN27), “Moved to codeunit MfgCalculateBOMTree”
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: "codeunit", object_name: "Calculate BOM Tree"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.