Codeunit 5520 "Get Unplanned Demand"
Base Application · Microsoft.Inventory.Requisition
Across versions
- BC23present
- BC242 procedures changed
- BC259 procedures added, 5 procedures removed
- BC262 events added
- BC2713 procedures added, 11 events added
- BC283 procedures removed, 3 events removed
- BC29unchanged
- BC3010 events removed, 9 procedures removed
Neighbourhood 10 connected objects and pages
Base Application · Microsoft.Inventory.Requisition · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| TableNo | Unplanned Demand |
| Permissions | TableData Microsoft.Manufacturing.Document.“Production Order” = r, TableData Microsoft.Manufacturing.Document.“Prod. Order Component” = r, TableData Microsoft.Manufacturing.Document.“Prod. Order Capacity Need” = r |
Events published
OnAfterGetUnplanned(var UnplannedDemand: Record "Unplanned Demand"; var ItemFilter: TextBuilder)+ BC25 − BC25 (integration)- subscribers: Codeunit 99000851 “Assembly Line-Planning” OnAfterGetUnplanned, Codeunit 99000853 “Service Line-Planning” OnAfterGetUnplanned, Codeunit 99000857 “Prod. Order Line-Planning” OnAfterGetUnplanned
OnBeforeGetSalesLineNeededQty(SalesLine: Record "Sales Line"; var NeededQty: Decimal; var IsHandled: Boolean)(integration)OnBeforeOpenPlanningWindow(var RecordCounter: Integer; var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeOpenWindow(var RecordCounter: Integer)+ BC27 (integration)- subscribers: Codeunit 99000851 “Assembly Line-Planning” OnBeforeOpenWindow, Codeunit 99000853 “Service Line-Planning” OnBeforeOpenWindow, Codeunit 99000857 “Prod. Order Line-Planning” OnBeforeOpenPlanningWindow
OnBeforeClosePlanningWindow(UnplannedDemand: Record "Unplanned Demand"; var Window: Dialog; NoOfRecords: Integer)(integration)OnBeforeGetUnplannedSalesLine(var UnplannedDemand: Record "Unplanned Demand"; var SalesLine: Record "Sales Line")(integration)OnBeforeGetUnplannedProdOrderComp(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeGetUnplannedAsmLine(var UnplannedDemand: Record "Unplanned Demand"; var AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnBeforeGetUnplannedJobPlanningLine(var UnplannedDemand: Record "Unplanned Demand"; var JobPlanningLine: Record "Job Planning Line")(integration)OnBeforeInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand"; DemandType: Enum "Unplanned Demand Type"; DemandSubtype: Integer; DemandOrderNo: Code[20]; DemandStatus: Integer; var IsHandled: Boolean)(integration)OnBeforeGetProdOrderCompNeededQty(ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var NeededQty: Decimal; var IsHandled: Boolean)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnCalcNeededDemandsOnAfterCalcForceIncludeDemand(var UnplannedDemand: Record "Unplanned Demand"; var ForceIncludeDemand: Boolean)(integration)OnGetUnplannedAsmLineOnAfterInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand")Δ BC27 − BC30 (integration, obsolete 27.0)OnGetUnplannedSalesLineOnBeforeCheckDemandQtyBase(var SalesLine: Record "Sales Line"; var IsHandled: Boolean)(integration)OnGetUnplannedJobPlanningLineOnAfterInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand")(integration)OnGetUnplannedSalesLineOnAfterInsertUnplannedDemand(var SalesLine: Record "Sales Line"; var UnplannedDemand: Record "Unplanned Demand")(integration)OnGetUnplannedProdOrderCompOnAfterCalcNeedInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var NeedInsertUnplannedDemand: Boolean)+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGetUnplannedProdOrderCompOnAfterInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnGetUnplannedProdOrderCompOnAfterInsertProdOrderCompLine(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnAfterSetFilterToSpecificSalesOrder(ItemFilter: Text)(integration)OnInsertAsmLineOnBeforeInsert(var UnplannedDemand: Record "Unplanned Demand"; AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnInsertProdOrderCompLineOnBeforeInsert(var UnplannedDemand: Record "Unplanned Demand"; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC27 − BC30 (integration, obsolete 27.0)OnInsertSalesLineOnBeforeInsert(var UnplannedDemand: Record "Unplanned Demand"; SalesLine: Record "Sales Line")(integration)OnInsertJobPlanningLineOnBeforeInsert(var UnplannedDemand: Record "Unplanned Demand"; JobPlanningLine: Record "Job Planning Line")(integration)OnInsertSalesLineOnAfterInitRecord(var UnplannedDemand: Record "Unplanned Demand"; var SalesLine: Record "Sales Line")(integration)OnSetFilterToSpecificSalesOrderOnBeforeTempItemGet(var TempItem: Record Item temporary; SalesOrderLine: Record "Sales Line")(integration)OnBeforeGetJobPlanningLineNeededQty(JobPlanningLine: Record "Job Planning Line"; var NeededQty: Decimal; var IsHandled: Boolean)+ BC26 (integration)OnCalcNeededDemandsOnBeforeCalcNeededQtyBase(var UnplannedDemand: Record "Unplanned Demand"; var IsHandled: Boolean)+ BC26 (integration)OnGetUnplannedDemandOnAfterInsertSalesLine(var UnplannedDemand: Record "Unplanned Demand"; var SalesLine: Record "Sales Line")+ BC27 (integration)
Procedures
SetIncludeMetDemandForSpecificSalesOrderNo(SalesOrderNo: Code[20])SetIncludeMetDemandForSpecificJobNo(JobNo: Code[20])+ BC25InsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand"; DemandType: Enum "Unplanned Demand Type"; DemandSubtype: Integer; DemandOrderNo: Code[20]; DemandStatus: Integer)Δ BC25UpdateWindow()Δ BC25RunOnBeforeGetUnplannedProdOrderComp(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC30 (internal)RunOnBeforeGetUnplannedAsmLine(var UnplannedDemand: Record "Unplanned Demand"; var AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line")+ BC27 − BC30 (internal)RunOnBeforeGetProdOrderCompNeededQty(ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var NeededQty: Decimal; var IsHandled: Boolean)+ BC27 − BC30 (internal)RunOnGetUnplannedAsmLineOnAfterInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand")+ BC27 − BC30 (internal)RunOnGetUnplannedProdOrderCompOnAfterCalcNeedInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComp2: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var NeedInsertUnplannedDemand: Boolean)+ BC27 − BC30 (internal)RunOnGetUnplannedProdOrderCompOnAfterInsertUnplannedDemand(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComp2: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC30 (internal)RunOnGetUnplannedProdOrderCompOnAfterInsertProdOrderCompLine(var UnplannedDemand: Record "Unplanned Demand"; var ProdOrderComp2: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC30 (internal)RunOnInsertAsmLineOnBeforeInsert(var UnplannedDemand: Record "Unplanned Demand"; AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line")+ BC27 − BC30 (internal)RunOnInsertProdOrderCompLineOnBeforeInsert(var UnplannedDemand: Record "Unplanned Demand"; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component")+ BC27 − BC30 (internal)
Plus 20 local procedures.
Triggers
OnRun
Relations
- runs on Table 5520 “Unplanned Demand”
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 10 “Type Helper” (2 calls:
SetFilterToSpecificJob → GetMaxNumberOfParametersInSQLQuery,SetFilterToSpecificSalesOrder → GetMaxNumberOfParametersInSQLQuery) - Codeunit 5522 “Order Planning Mgt.” (2 calls:
CalcNeededDemands → CalcATPQty,CalcNeededDemands → CalcNeededQty) - Codeunit 46 “SelectionFilterManagement” (1 call:
CreateItemFilter → AddQuotes)
Called by
- Codeunit 5522 “Order Planning Mgt.” (5 calls:
PlanSpecificJob → (object),PlanSpecificJob → SetIncludeMetDemandForSpecificJobNo,PlanSpecificSalesOrder → (object), …) - Codeunit 99000851 “Assembly Line-Planning” (2 calls:
GetUnplannedAssemblyLine → InsertUnplannedDemand,GetUnplannedAssemblyLine → UpdateWindow) - Codeunit 99000853 “Service Line-Planning” (2 calls:
GetUnplannedServLine → InsertUnplannedDemand,GetUnplannedServLine → UpdateWindow) - Codeunit 99000857 “Prod. Order Line-Planning” (2 calls:
GetUnplannedProdOrderComp → InsertUnplannedDemand,GetUnplannedProdOrderComp → UpdateWindow)
Recent changes
- 2026-10-02 #12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026 (main, BC30, obsoletion)
- 2026-08-14 #10225 [Master]-When we run the Order Planning Worksheet by Project, a supply suggestion is created for items that are already received but not invoiced in Purchase Orders, but only after updating Order and Posting Dates on Purchase Order. (main, BC30, fix)
Deprecations
- procedure RunOnBeforeGetProdOrderCompNeededQty: guarded (#if not CLEAN27)
- procedure RunOnBeforeGetUnplannedAsmLine: guarded (#if not CLEAN27)
- procedure RunOnBeforeGetUnplannedProdOrderComp: guarded (#if not CLEAN27)
- procedure RunOnGetUnplannedAsmLineOnAfterInsertUnplannedDemand: guarded (#if not CLEAN27)
- procedure RunOnGetUnplannedProdOrderCompOnAfterCalcNeedInsertUnplannedDemand: guarded (#if not CLEAN27)
- procedure RunOnGetUnplannedProdOrderCompOnAfterInsertProdOrderCompLine: guarded (#if not CLEAN27)
- procedure RunOnGetUnplannedProdOrderCompOnAfterInsertUnplannedDemand: guarded (#if not CLEAN27)
- procedure RunOnInsertAsmLineOnBeforeInsert: guarded (#if not CLEAN27)
- procedure RunOnInsertProdOrderCompLineOnBeforeInsert: guarded (#if not CLEAN27)
- procedure OnBeforeGetProdOrderCompNeededQty: Pending 27.0 (#if not CLEAN27), “Moved to codeunit ProdOrderLinePlanning”
- procedure OnBeforeGetUnplannedAsmLine: Pending 27.0 (#if not CLEAN27), “Moved to codeunit AssemblyLinePlanning”
- procedure OnBeforeGetUnplannedProdOrderComp: Pending 27.0 (#if not CLEAN27), “Moved to codeunit ProdOrderLinePlanning”
- procedure OnBeforeOpenPlanningWindow: Pending 27.0 (#if not CLEAN27), “Replaced by event OnBeforeOpenWindow”
- procedure OnGetUnplannedAsmLineOnAfterInsertUnplannedDemand: Pending 27.0 (#if not CLEAN27), “Moved to codeunit AssemblyLinePlanning”
- procedure OnGetUnplannedProdOrderCompOnAfterCalcNeedInsertUnplannedDemand: Pending 27.0 (#if not CLEAN27), “Moved to codeunit ProdOrderLinePlanning”
- procedure OnGetUnplannedProdOrderCompOnAfterInsertProdOrderCompLine: Pending 27.0 (#if not CLEAN27), “Moved to codeunit ProdOrderLinePlanning”
- procedure OnGetUnplannedProdOrderCompOnAfterInsertUnplannedDemand: Pending 27.0 (#if not CLEAN27), “Moved to codeunit ProdOrderLinePlanning”
- procedure OnInsertAsmLineOnBeforeInsert: Pending 27.0 (#if not CLEAN27), “Moved to codeunit AssemblyLinePlanning”
- procedure OnInsertProdOrderCompLineOnBeforeInsert: Pending 27.0 (#if not CLEAN27), “Moved to codeunit ProdOrderLinePlanning”
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: "Get Unplanned Demand"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.