Codeunit 99000819 "Mfg. Planning Line Management"
Base Application · Microsoft.Inventory.Planning
Across versions
- BC23-26not present
- BC27added
- BC281 events added
- BC29-30unchanged
Neighbourhood 5 connected objects and pages
Base Application · Microsoft.Inventory.Planning · BC27-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | TableData “Manufacturing Setup” = rm, TableData “Routing Header” = r, TableData “Production BOM Header” = r, TableData “Production BOM Line” = r, TableData “Prod. Order Capacity Need” = rd, TableData “Planning Component” = rimd, TableData “Planning Routing Line” = rimd |
Events published
OnAfterIsPlannedCompFound(var PlanningComp: Record "Planning Component"; var ProdBOMLine: Record "Production BOM Line"; var IsFound: Boolean; var SKU: Record "Stockkeeping Unit")(integration)OnAfterSetPlanningLevelCode(var PlanningComponent: Record "Planning Component"; var ProdBOMLine: Record "Production BOM Line"; var SKU: Record "Stockkeeping Unit"; var ComponentSKU: Record "Stockkeeping Unit"; var Result: Boolean)(integration)OnAfterTransferRouting(var RequisitionLine: Record "Requisition Line")(integration)OnBeforeTransferRoutingLine(var PlanningRoutingLine: Record "Planning Routing Line"; RequisitionLine: Record "Requisition Line"; RoutingLine: Record "Routing Line"; var IsHandled: Boolean)(integration)OnTransferBOMOnBeforePlanningRtngLineFind(var PlanningRoutingLine: Record "Planning Routing Line"; ProductionBOMLine: Record "Production BOM Line"; RequisitionLine: Record "Requisition Line")(integration)OnTransferRoutingLineOnBeforeCalcRoutingCostPerUnit(var PlanningRoutingLine: Record "Planning Routing Line"; ReqLine: Record "Requisition Line"; RoutingLine: Record "Routing Line")(integration)OnTransferRoutingLineOnBeforeValidateDirectUnitCost(var ReqLine: Record "Requisition Line"; var RoutingLine: Record "Routing Line"; var PlanningRoutingLine: Record "Planning Routing Line")(integration)OnAfterTransferRtngLine(var ReqLine: Record "Requisition Line"; var RoutingLine: Record "Routing Line"; var PlanningRoutingLine: Record "Planning Routing Line")(integration)OnBeforeTransferBOM(ProdBOMNo: Code[20]; Level: Integer; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal; var RequisitionLine: Record "Requisition Line"; Blocked: Boolean; var IsHandled: Boolean)(integration)OnTransferBOMOnBeforeGetDefaultBin(var PlanningComponent: Record "Planning Component"; var ProductionBOMLine: Record "Production BOM Line"; RequisitionLine: Record "Requisition Line"; var StockkeepingUnit: Record "Stockkeeping Unit")(integration)OnTransferBOMOnAfterProdBOMLineSetFilters(var ProdBOMLine: Record "Production BOM Line"; RequisitionLine: Record "Requisition Line")(integration)OnTransferBOMOnBeforeTransferPlanningComponent(var RequisitionLine: Record "Requisition Line"; var ProductionBOMLine: Record "Production BOM Line"; Blocked: Boolean; var IsHandled: Boolean; Level: Integer)(integration)OnTransferBOMOnBeforeTransferProductionBOM(var ReqQty: Decimal; ProductionBOMLine: Record "Production BOM Line"; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal; RequisitionLine: Record "Requisition Line")(integration)OnTransferBOMOnBeforeUpdatePlanningComp(var ProductionBOMLine: Record "Production BOM Line"; var UpdateCondition: Boolean; var IsHandled: Boolean; var ReqQty: Decimal)(integration)OnTransferBOMOnAfterCalculateReqQty(var ReqQty: Decimal; ProductionBOMLine: Record "Production BOM Line"; PlanningRoutingLine: Record "Planning Routing Line"; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal)(integration)OnBeforeTransferRouting(var RequisitionLine: Record "Requisition Line"; PlanningResilency: Boolean; var IsHandled: Boolean)(integration)OnBeforeModifyPlanningComponent(var ReqLine: Record "Requisition Line"; var ProductionBOMLine: Record "Production BOM Line"; var PlanningComponent: Record "Planning Component"; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal)(integration)OnAfterTransferBOM(RequisitionLine: Record "Requisition Line"; ProdBOMNo: Code[20]; Level: Integer; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal)(integration)OnBeforeInsertPlanningComponent(var ReqLine: Record "Requisition Line"; var ProductionBOMLine: Record "Production BOM Line"; var PlanningComponent: Record "Planning Component"; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal)(integration)OnCreatePlanningComponentFromProdBOMOnBeforeGetPlanningParameters(var PlanningComponent: Record "Planning Component"; RequisitionLine: Record "Requisition Line"; ProductionBOMLine: Record "Production BOM Line"; CompStockkeepingUnit: Record "Stockkeeping Unit"; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal; var NextPlanningCompLineNo: Integer; StockkeepingUnit: Record "Stockkeeping Unit"; Blocked: Boolean)+ BC28 (integration)- subscribers: Codeunit 20518 “Subc. Planning Line Mgmt Ext.” TransferComponentSupplyMethod_OnCreatePlanningComponentFromProdBOMOnBeforeGetPlanningParameters
Event subscriptions
- OnCalculateOnTransferBOM subscribes to Codeunit “Planning Line Management” OnCalculateOnTransferBOM
- OnCalculateRouting subscribes to Codeunit “Planning Line Management” OnCalculateRouting
- OnTransferASMBOMOnAfterSetAsmBOMComp subscribes to Codeunit “Planning Line Management” OnTransferASMBOMOnAfterSetAsmBOMComp
- OnCalculateComponentsOnbeforePlanningComponentModify subscribes to Codeunit “Planning Line Management” OnCalculateComponentsOnbeforePlanningComponentModify
- OnCheckMultiLevelStructureOnBeforeReqLineModify subscribes to Codeunit “Planning Line Management” OnCheckMultiLevelStructureOnBeforeReqLineModify
- OnTransferAsmBOMOnBeforePlanningComponentModify subscribes to Codeunit “Planning Line Management” OnTransferAsmBOMOnBeforePlanningComponentModify
Procedures
TransferRouting(var ReqLine: Record "Requisition Line"; var TempPlanningErrorLog: Record "Planning Error Log" temporary; PlanningResiliency: Boolean)(internal)TransferBOM(var ReqLine: Record "Requisition Line"; ProdBOMNo: Code[20]; Level: Integer; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal; PlanningResiliency: Boolean; var NextPlanningCompLineNo: Integer; var PlanningComponent: Record "Planning Component"; var TempPlanningErrorLog: Record "Planning Error Log" temporary; var TempPlanningComponent: Record "Planning Component" temporary; Blocked: Boolean; SKU: Record "Stockkeeping Unit")(internal)
Plus 6 local procedures.
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 99000756 “VersionManagement” (2 calls:
OnCalculateOnTransferBOM → GetBOMUnitOfMeasure,TransferBOM → GetBOMVersion) - Codeunit 5402 “Unit of Measure Management” (1 call:
OnCalculateOnTransferBOM → GetQtyPerUnitOfMeasure) - Codeunit 99000758 “Mfg. Cost Calculation Mgt.” (1 call:
TransferRoutingLine → CalcRoutingCostPerUnit) - Codeunit 99000855 “Planning-Get Parameters” (1 call:
CreatePlanningComponentFromProdBOM → AtSKU)
Recent changes
- 2026-10-02 #12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026 (main, BC30, obsoletion)
Countries that replace it
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: "Mfg. Planning Line Management"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.