Codeunit 311 "Item-Check Avail."
Base Application · Microsoft.Inventory.Availability
Across versions
- BC23present
- BC243 events added, 1 events removed
- BC255 procedures added, 3 events added
- BC261 procedures added
- BC27unchanged
- BC285 procedures removed, 3 events removed
- BC29-30unchanged
Neighbourhood 23 connected objects and pages
Base Application · Microsoft.Inventory.Availability · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | TableData “My Notifications” = rimd |
Events published
OnAfterCalculate(var Item: Record Item; var InitialQtyAvailable: Decimal; OldItemNetChange: Decimal; QtyPerUnitOfMeasure: Decimal; var ContextInfo: Dictionary of [Text, Text])(integration)OnAfterConvertQty(ItemNo: Code[20]; Qty: Decimal; var QtyPerUnitOfMeasure: Decimal; var Result: Decimal)(integration)OnAfterConvertQtyToBaseQty(ItemNo: Code[20]; QtyBase: Decimal; var QtyPerUnitOfMeasure: Decimal; var Result: Decimal)(integration)OnAfterItemJnlLineShowWarning(var ItemJournalLine: Record "Item Journal Line"; var ItemNetChange: Decimal; var IsHandled: Boolean)(integration)OnBeforeItemJnlCheckLine(var ItemJournalLine: Record "Item Journal Line"; var Rollback: Boolean; var IsHandled: Boolean)+ BC28 (integration)OnBeforeQtyAvailToPromise(var Item: Record Item; var CompanyInfo: Record "Company Information"; var InventoryQty: Decimal; var GrossReq: Decimal; var ReservedReq: Decimal; var OldItemNetResChange: Decimal; var SchedRcpt: Decimal; var ReservedRcpt: Decimal; var IsHandled: Boolean)(integration)OnBeforeCreateAndSendNotification(ItemNo: Code[20]; UnitOfMeasureCode: Code[20]; InventoryQty: Decimal; GrossReq: Decimal; ReservedReq: Decimal; SchedRcpt: Decimal; ReservedRcpt: Decimal; CurrentQuantity: Decimal; CurrentReservedQty: Decimal; TotalQuantity: Decimal; EarliestAvailDate: Date; RecordId: RecordID; LocationCode: Code[10]; ContextInfo: Dictionary of [Text, Text]; var Rollback: Boolean; var IsHandled: Boolean)(integration)OnBeforeRaiseUpdateInterruptedError(var IsHandled: Boolean; ContextInfo: Dictionary of [Text, Text])(integration)OnBeforeSalesLineCheck(SalesLine: Record "Sales Line"; var Rollback: Boolean; var IsHandled: Boolean)(integration)OnBeforeSalesLineShowWarning(SalesLine: Record "Sales Line"; var IsWarning: Boolean; var IsHandled: Boolean)(integration)OnBeforeSetFilterOnItem(var Item: Record Item; ItemNo: Code[20]; ItemVariantCode: Code[10]; ItemLocationCode: Code[10]; ShipmentDate: Date; UseOrderPromise: Boolean; var IsHandled: Boolean; UnitOfMeasureCode: Code[10])(integration)OnBeforeShowWarningForThisItem(Item: Record Item; var ShowWarning: Boolean; var IsHandled: Boolean)(integration)OnBeforeShowWarningForThisItemOnBeforeItemGet(ItemNo: Code[20]; var ShowWarning: Boolean; var IsHandled: Boolean)(integration)OnBeforeTransferLineCheck(TransferLine: Record "Transfer Line"; var Rollback: Boolean; var IsHandled: Boolean)(integration)OnBeforeTransferLineShowWarning(TransferLine: Record "Transfer Line"; var IsWarning: Boolean; var IsHandled: Boolean)(integration)OnAsmOrderLineShowWarningOnBeforeShowWarning(AssemblyLine: Record "Assembly Line"; var ContextInfo: Dictionary of [Text, Text]; OldAssemblyLine: Record "Assembly Line"; var OldItemNetChange: Decimal; var IsWarning: Boolean; var IsHandled: Boolean)(integration)OnItemDocLineShowWarningOnBeforeShowWarning(InvtDocLine: Record "Invt. Document Line"; var ContextInfo: Dictionary of [Text, Text]; var OldItemNetChange: Decimal; var IsWarning: Boolean; var IsHandled: Boolean)(integration)OnJobPlanningLineShowWarningOnBeforeShowWarning(JobPlanningLine: Record "Job Planning Line"; var ContextInfo: Dictionary of [Text, Text]; OldJobPlanningLine: Record "Job Planning Line"; var OldItemNetChange: Decimal; var IsWarning: Boolean; var IsHandled: Boolean)(integration)OnSalesLineShowWarningOnBeforeShowWarning(SalesLine: Record "Sales Line"; var ContextInfo: Dictionary of [Text, Text]; OldSalesLine: Record "Sales Line"; var IsWarning: Boolean; var IsHandled: Boolean; var OldItemNetChange: Decimal)(integration)OnTransferLineShowWarningOnBeforeShowWarning(TransLine: Record "Transfer Line"; var ContextInfo: Dictionary of [Text, Text]; OldTransLine: Record "Transfer Line"; var OldItemNetChange: Decimal; var IsWarning: Boolean; var IsHandled: Boolean)(integration)OnCalculateOnBeforeCalcInitialQtyAvailable(Item: Record Item; var SchedRcpt: Decimal; var ReservedRcpt: Decimal; var GrossReq: Decimal; var ReservedReq: Decimal; OldItemNetResChange: Decimal; NewItemNetResChange: Decimal; ContextInfo: Dictionary of [Text, Text]; var InventoryQty: Decimal)+ BC24 − BC24 (integration)OnShowWarningOnAfterCalculate(ItemNo: Code[20]; InventoryQty: Decimal; ItemNetChange: Decimal; InitialQtyAvailable: Decimal; OldItemNetResChange: Decimal; var Result: Boolean; var IsHandled: Boolean)(integration)OnAfterShowAndHandleAvailabilityPage(ItemNo2: Code[20]; UnitOfMeasureCode2: Code[10]; InventoryQty2: Decimal; GrossReq2: Decimal; ReservedReq2: Decimal; SchedRcpt2: Decimal; ReservedRcpt2: Decimal; CurrentQuantity2: Decimal; CurrentReservedQty2: Decimal; TotalQuantity2: Decimal; EarliestAvailDate2: Date; var Rollback: Boolean)(integration)OnSalesLineShowWarningOnAfterFindingPrevSalesLineQtyWithinPeriod(SalesLine: Record "Sales Line"; OldSalesLine: Record "Sales Line"; var IsHandled: Boolean)(integration)OnAsmOrderCalculateOnAfterFindingPrevAsmOrderCalculateWithinPeriod(AssemblyHeader: Record "Assembly Header"; OldAssemblyHeader: Record "Assembly Header"; var IsHandled: Boolean)(integration)OnJobPlanningLineShowWarningOnAfterFindingPrevJobPlanningLineQtyWithinPeriod(JobPlanningLine: Record "Job Planning Line"; OldJobPlanningLine: Record "Job Planning Line"; var IsHandled: Boolean)(integration)OnSalesLineCheckOnAfterSalesLineShowWarning(var SalesLine: Record "Sales Line"; var Rollback: Boolean)+ BC24 (integration)OnAsmOrderLineShowWarningOnAfterFindPreviousAssemblyOrderLineWithinPeriod(AssemblyLine: Record "Assembly Line"; OldAssemblyLine: Record "Assembly Line"; var ShouldCheckQty: Boolean; var OldItemNetChange: Decimal; var OldItemNetResChange: Decimal)+ BC24 (integration)
Event subscriptions
- OnInitializingNotificationWithDefaultState subscribes to Page “My Notifications” OnInitializingNotificationWithDefaultState
Procedures
ItemJnlCheckLine(ItemJnlLine: Record "Item Journal Line"): BooleanSalesLineCheck(SalesLine: Record "Sales Line"): BooleanTransferLineCheck(TransLine: Record "Transfer Line"): BooleanJobPlanningLineCheck(JobPlanningLine: Record "Job Planning Line"): BooleanAssemblyLineCheck(AssemblyLine: Record "Assembly Line"): BooleanShowAsmWarningYesNo(var AsmHeader: Record "Assembly Header"; var AsmLine: Record "Assembly Line"): BooleanItemJnlLineShowWarning(ItemJnlLine: Record "Item Journal Line"): BooleanSalesLineShowWarning(SalesLine: Record "Sales Line"): BooleanShowWarning(ItemNoArg: Code[20]; ItemVariantCodeArg: Code[10]; ItemLocationCodeArg: Code[10]; UnitOfMeasureCodeArg: Code[10]; QtyPerUnitOfMeasureArg: Decimal; NewItemNetChangeArg: Decimal; OldItemNetChangeArg: Decimal; ShipmentDateArg: Date; OldShipmentDateArg: Date): BooleanTransferLineShowWarning(TransLine: Record "Transfer Line"): BooleanJobPlanningLineShowWarning(JobPlanningLine: Record "Job Planning Line"): BooleanAsmOrderLineShowWarning(AssemblyLine: Record "Assembly Line"): BooleanAsmOrderCalculate(AssemblyHeader: Record "Assembly Header"; var InventoryQty2: Decimal; var GrossReq2: Decimal; var ReservedReq2: Decimal; var SchedRcpt2: Decimal; var ReservedRcpt2: Decimal)FetchCalculation(var ItemNo2: Code[20]; var UnitOfMeasureCode2: Code[10]; var InventoryQty2: Decimal; var GrossReq2: Decimal; var ReservedReq2: Decimal; var SchedRcpt2: Decimal; var ReservedRcpt2: Decimal; var CurrentQuantity2: Decimal; var CurrentReservedQty2: Decimal; var TotalQuantity2: Decimal; var EarliestAvailDate2: Date)RaiseUpdateInterruptedError()ShowAndHandleAvailabilityPage(RecordId: RecordID): BooleanShowNotificationDetails(AvailabilityCheckNotification: Notification)ShowWarningForThisItem(ItemNo: Code[20]): BooleanInvtDocCheckLine(InvtDocLine: Record "Invt. Document Line"): BooleanItemDocLineShowWarning(InvtDocLine: Record "Invt. Document Line"): BooleanGetItemAvailabilityNotificationId(): GuidDeactivateNotification(SetupNotification: Notification)SetUseOrderPromise(NewUseOrderPromise: Boolean)
Plus 10 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 5790 “Available to Promise” (8 calls:
AsmOrderLineShowWarning → SetChangedAsmLine,EarliestAvailabilityDate → CalcEarliestAvailabilityDate,QtyAvailToPromise → CalcAvailableInventory, …) - Codeunit 1511 “Notification Lifecycle Mgt.” (7 calls:
AssemblyLineCheck → RecallNotificationsForRecordWithAdditionalContext,CreateAndSendNotification → SendNotificationWithAdditionalContext,InvtDocCheckLine → RecallNotificationsForRecordWithAdditionalContext, …) - Codeunit 5402 “Unit of Measure Management” (2 calls:
ConvertQty → QtyRndPrecision,ConvertQtyToBaseQty → QtyRndPrecision) - Codeunit 905 “Assembly Line Management” (1 call:
ShowAsmWarningYesNo → ShowAvailability)
Called by
- Codeunit 1508 “Notification Lifecycle Handler” (11 calls:
OnAssemblyLineUpdateQuantityRecallItemNotif → GetItemAvailabilityNotificationId,OnAssemblyLineUpdateTypeRecallItemNotif → GetItemAvailabilityNotificationId,OnAssemblyLineUpdateUnitOfMeasureCodeRecallItemNotif → GetItemAvailabilityNotificationId, …) - Codeunit 6620 “Copy Document Mgt.” (7 calls:
CheckAsmOrderAvailability → RaiseUpdateInterruptedError,CheckATOItemAvailable → RaiseUpdateInterruptedError,CheckATOItemAvailable → ShowAsmWarningYesNo, …) - Codeunit 6453 “Serv. Item Check Avail.” (6 calls:
RaiseUpdateInterruptedError → RaiseUpdateInterruptedError,ServiceInvLineCheck → GetItemAvailabilityNotificationId,ServiceInvLineCheck → ShowAndHandleAvailabilityPage, …) - Table 901 “Assembly Line” (6 calls:
CheckItemAvailable → AssemblyLineCheck,CheckItemAvailable → RaiseUpdateInterruptedError,ShowAvailabilityWarning → AssemblyLineCheck, …) - Codeunit 246 “Item Jnl.-Explode BOM” (2 calls:
OnRun → ItemJnlCheckLine,OnRun → RaiseUpdateInterruptedError) - Codeunit 5701 “Item Subst.” (2 calls:
ItemAssemblySubstGet → AssemblyLineCheck,ItemSubstGet → SalesLineCheck) - Codeunit 63 “Sales-Explode BOM” (2 calls:
OnRun → RaiseUpdateInterruptedError,OnRun → SalesLineCheck) - Codeunit 6460 “Serv. Notification Mgt.” (2 calls:
OnServiceLineUpdateQtyTo0RecallItemNotif → GetItemAvailabilityNotificationId,OnServiceLineUpdateTypeRecallItemNotif → GetItemAvailabilityNotificationId) - Codeunit 87 “Blanket Sales Order to Order” (2 calls:
CheckSalesLineItemAvailability → RaiseUpdateInterruptedError,CheckSalesLineItemAvailability → SalesLineCheck) - Codeunit 905 “Assembly Line Management” (2 calls:
ShowAssemblyAvailability → AsmOrderCalculate,UpdateAssemblyLines → RaiseUpdateInterruptedError) - Table 1003 “Job Planning Line” (2 calls:
CheckItemAvailable → JobPlanningLineCheck,CheckItemAvailable → RaiseUpdateInterruptedError) - Table 210 “Job Journal Line” (2 calls:
CheckItemAvailable → ItemJnlCheckLine,CheckItemAvailable → RaiseUpdateInterruptedError) - Table 36 “Sales Header” (2 calls:
CheckItemAvailabilityInLines → RaiseUpdateInterruptedError,CheckItemAvailabilityInLines → SalesLineCheck) - Table 37 “Sales Line” (2 calls:
CheckItemAvailable → RaiseUpdateInterruptedError,CheckItemAvailable → SalesLineCheck) - Table 5741 “Transfer Line” (2 calls:
CheckItemAvailable → RaiseUpdateInterruptedError,CheckItemAvailable → TransferLineCheck) - Table 83 “Item Journal Line” (2 calls:
CheckItemAvailable → ItemJnlCheckLine,CheckItemAvailable → RaiseUpdateInterruptedError) - Codeunit 5857 “Copy Invt. Document Mgt.” (1 call:
CheckItemAvailable → InvtDocCheckLine) - Codeunit 99000872 “Sales Availability Mgt.” (1 call:
ShowItemAvailabilityFromSalesLine → SalesLineCheck) - Table 5851 “Invt. Document Line” (1 call:
CheckItemAvailable → InvtDocCheckLine) - Table 904 “Assemble-to-Order Link” (1 call:
AsmReopenIfReleased → RaiseUpdateInterruptedError)
Recent changes
- 2026-07-07 #9118 Bugs/master GitHub event batch 1745 (main, BC30, fix)
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: "Item-Check Avail."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.