Codeunit 7314 "Warehouse Availability Mgt."
Base Application · Microsoft.Warehouse.Availability
Across versions
- BC23present
- BC242 events added
- BC254 events added, 3 procedures added
- BC264 events added, 1 procedures added
- BC27unchanged
- BC282 procedures added, 1 events added
- BC292 procedures added, 1 procedures removed
- BC30unchanged
Neighbourhood 21 connected objects and pages
Base Application · Microsoft.Warehouse.Availability · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnAfterCalcQtyPicked(var Item: Record Item; var QtyPicked: Decimal; Location: Record Location)(integration)OnBeforeValidateQtyPickedInShipmentBin(var QtyPicked: Decimal; LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; TrackingSpecification: Record "Tracking Specification"; SourceType: Integer; var IsHandled: Boolean)+ BC28 (integration)OnAfterCalcReservedQtyOnInventory(var Item: Record Item; var ReservedQtyOnInventory: Decimal; Location: Record Location)(integration)OnAfterCalcQtyRcvdNotAvailable(var PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; var QtyRcvdNotAvailable: Decimal)(integration)OnAfterCalcQtyOnBlockedITOrOnBlockedOutbndBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"; var QtyBlocked: Decimal)(integration)OnBeforeCalcReservQtyOnPicksShipsWithItemTracking(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; var Result: Decimal; var IsHandled: Boolean)(integration)OnCalcQtyOutstandingPickOnAfterSetFilters(var WarehouseActivityLine: Record "Warehouse Activity Line"; SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceRefNo: Integer; SourceProdOrderLine: Integer)(integration)OnBeforeCalcInvtAvailQty(Item: Record Item; Location: Record Location; VariantCode: Code[10]; var WarehouseActivityLine: Record "Warehouse Activity Line"; var Result: Decimal; var IsHandled: Boolean)(integration)OnCalcQtyAssgndtoPickOnAfterSetFilters(var WhseActivLine: Record "Warehouse Activity Line"; Location: Record Location; ItemNo: Code[20]; VariantCode: Code[10]; BinTypeFilter: Text[250])(integration)OnBeforeCalcQtyOnBlockedItemTracking(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; var QtyBlocked: Decimal; var IsHandled: Boolean)(integration)OnAfterCalcLineReservedQtyOnInvt(var ReservationEntry: Record "Reservation Entry"; var ReservQtyonInvt: Decimal)(integration)OnBeforeCalcQtyOnOutboundBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"; ExcludeDedicatedBinContent: Boolean; var IsHandled: Boolean; var QtyOnOutboundBins: Decimal)(integration)OnAfterGetOutboundBinsOnBasicWarehouseLocation(Location: Record Location; var TempBinContentBuffer: Record "Bin Content Buffer" temporary; LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup")(integration)OnAfterGetSpecialBins(Location: Record Location; var SpecialBins: List of [Code[20]])(integration)OnCalcQtyOnBlockedITOrOnBlockedOutbndBinsOnBeforeNext(var BinContent: Record "Bin Content"; WhseItemTrackingSetup: Record "Item Tracking Setup"; var QtyBlocked: Decimal)(integration)OnAfterCalcQtyOnDedicatedBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; var WarehouseEntry: Record "Warehouse Entry"; TempWhseItemTrackingSetup: Record "Item Tracking Setup" temporary; var QtyOnDedicatedBin: Decimal)(integration)OnBeforeShowItemAvailFromWhseRcptLine(var Item: Record Item; var WhseRcptLine: Record Microsoft.Warehouse.Document."Warehouse Receipt Line"; AvailabilityType: Enum "Item Availability Type")+ BC25 (integration)OnBeforeShowItemAvailabilityFromWhseActivLine(var Item: Record Item; var WhseActivLine: Record Microsoft.Warehouse.Activity."Warehouse Activity Line"; AvailabilityType: Enum "Item Availability Type")+ BC25 (integration)OnCalcQtyRcvdNotAvailableOnBeforeCalcSums(var PostedWhseReceiptLine: Record "Posted Whse. Receipt Line"; LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10])+ BC24 (integration)OnBeforeCalcQtyPickedNotShipped(SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceRefNo: Integer; var QtyPickedNotShippedBase: Decimal; var IsHandled: Boolean)+ BC24 (integration)OnBeforeCalcQtyRegisteredPick(SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceRefNo: Integer; SourceProdOrderLine: Integer; var Quantity: Decimal; var IsHandled: Boolean)+ BC26 (integration)- subscribers: Codeunit 5996 “Prod. Order Warehouse Mgt.” OnBeforeCalcQtyRegisteredPick
OnCalcLineReservQtyOnPicksShipsOnAfterCalcPickedNotYetShippedQty(SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceRefNo: Integer; SourceProdOrderLine: Integer; var PickedNotYetShippedQty: Decimal)+ BC26 (integration)- subscribers: Codeunit 5996 “Prod. Order Warehouse Mgt.” OnCalcLineReservQtyOnPicksShipsOnAfterCalcPickedNotYetShippedQty
OnCalcLineReservedQtyOnInvtOnSetSourceFilters(var ReservEntry: Record "Reservation Entry"; SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceLineNo: Integer; SourceSubLineNo: Integer; var IsHandled: Boolean)+ BC26 (integration)- subscribers: Codeunit 5996 “Prod. Order Warehouse Mgt.” OnCalcLineReservedQtyOnInvtOnSetSourceFilters
OnGetOutboundBinsOnBasicWarehouseLocationOnAfterSetWarehouseEntryFilters(var WarehouseEntry: Record "Warehouse Entry")+ BC26 (integration)- subscribers: Codeunit 5996 “Prod. Order Warehouse Mgt.” OnGetOutboundBinsOnBasicWarehouseLocationOnAfterSetWarehouseEntryFilters
OnBeforeOpenCalcRsvQtyOnPickShipWithITQuery(var CalcRsvQtyOnPicksShipsWithIT: Query CalcRsvQtyOnPicksShipsWithIT)+ BC25 (integration)OnCalcQtyOutstandingPickOnAfterCalcSums(var WarehouseActivityLine: Record "Warehouse Activity Line"; var WarehouseActivityLineForCalc: Record "Warehouse Activity Line")+ BC25 (integration)
Procedures
CalcLineReservedQtyOnInvt(SourceType: Integer; SourceSubType: Option; SourceNo: Code[20]; SourceLineNo: Integer; SourceSubLineNo: Integer; HandleResPickAndShipQty: Boolean; var WarehouseActivityLine: Record "Warehouse Activity Line"): DecimalCalcLineReservedQtyOnInvt(SourceType: Integer; SourceSubType: Option; SourceNo: Code[20]; SourceLineNo: Integer; SourceSubLineNo: Integer; HandleResPickAndShipQty: Boolean; WhseItemTrackingSetup: Record "Item Tracking Setup"; var WarehouseActivityLine: Record "Warehouse Activity Line"): DecimalCalcReservQtyOnPicksShips(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; var WarehouseActivityLine: Record "Warehouse Activity Line"): DecimalCalcReservQtyOnPicksShipsWithItemTracking(var WarehouseActivityLine: Record "Warehouse Activity Line"; var TrackingSpecification: Record "Tracking Specification"; LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]): DecimalCalcLineReservQtyOnPicksShips(SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceRefNo: Integer; SourceProdOrderLine: Integer; ReservedQtyBase: Decimal; var WarehouseActivityLine: Record "Warehouse Activity Line"): DecimalCalcInvtAvailQty(Item: Record Item; Location: Record Location; VariantCode: Code[10]; var WarehouseActivityLine: Record "Warehouse Activity Line"): DecimalCalcQtyAssgndtoPick(Location: Record Location; ItemNo: Code[20]; VariantCode: Code[10]; BinTypeFilter: Text[250]): DecimalCalcQtyAssignedToMove(WhseWorksheetLine: Record "Whse. Worksheet Line"; WhseItemTrackingLine: Record "Whse. Item Tracking Line"): DecimalCalcQtyAssgndOnWksh(DefWhseWkshLine: Record "Whse. Worksheet Line"; RespectUOMCode: Boolean; ExcludeLine: Boolean): DecimalCalcQtyOnDedicatedBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]): DecimalCalcQtyOnDedicatedBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"): DecimalCalcQtyOnBin(LocationCode: Code[10]; BinCode: Code[20]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"): DecimalCalcQtyOnBlockedITOrOnBlockedOutbndBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"): DecimalCalcQtyOnOutboundBins(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"; ExcludeDedicatedBinContent: Boolean): DecimalGetOutboundBinsOnBasicWarehouseLocation(var TempBinContentBuffer: Record "Bin Content Buffer" temporary; LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup")CalcQtyOnSpecialBinsOnLocation(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; WhseItemTrackingSetup: Record "Item Tracking Setup"; var TempBinContentBufferExcluded: Record "Bin Content Buffer" temporary): DecimalCalcResidualPickedQty(var WhseEntry: Record "Warehouse Entry"): DecimalCalcQtyOnBlockedItemTracking(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]): Decimal+ BC25CalcQtyOnBlockedItemTracking(LocationCode: Code[10]; ItemNo: Code[20]; VariantCode: Code[10]; ItemTrackingSetup: Record "Item Tracking Setup"): Decimal+ BC25CalcRegisteredAndOutstandingPickQty(ReservationEntry: Record "Reservation Entry"; var WarehouseActivityLine: Record "Warehouse Activity Line"): DecimalCalcQtyRegisteredPick(ReservationEntry: Record "Reservation Entry"): DecimalCalcQtyAvailToTakeOnWhseWorksheetLine(WhseWorksheetLine: Record "Whse. Worksheet Line"): DecimalShowItemAvailFromWhseRcptLine(var WhseRcptLine: Record "Warehouse Receipt Line"; AvailabilityType: Enum "Item Availability Type")+ BC25ShowItemAvailabilityFromWhseActivLine(var WhseActivLine: Record "Warehouse Activity Line"; AvailabilityType: Enum "Item Availability Type")+ BC25
Plus 16 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 353 “Item Availability Forms Mgt” (14 calls:
ShowItemAvailabilityFromWhseActivLine → FilterItem,ShowItemAvailabilityFromWhseActivLine → ShowItemAvailabilityByBOMLevel,ShowItemAvailabilityFromWhseActivLine → ShowItemAvailabilityByEvent, …) - Codeunit 10 “Type Helper” (2 calls:
CalcQtyAvailToTakeOnWhseWorksheetLine → Maximum,CalcQtyAvailToTakeOnWhseWorksheetLine → Minimum) - Codeunit 7312 “Create Pick” (2 calls:
CalcQtyOnOutboundBinsOnDirectedPutAwayPickLocation → GetBinTypeFilter,CalcQtyOnShipmentBins → GetBinTypeFilter)
Called by
- Codeunit 7322 “Create Inventory Pick/Movement” (6 calls:
CalcInvtAvailability → CalcLineReservedQtyOnInvt,CalcInvtAvailability → CalcQtyAssgndtoPick,CalcInvtAvailability → CalcQtyOnBlockedItemTracking, …) - Codeunit 99000845 “Reservation Management” (6 calls:
CalcCurrLineReservQtyOnPicksShips → CalcRegisteredAndOutstandingPickQty,CalcReservedQtyOnPick → CalcQtyOnOutboundBins,CalcReservedQtyOnPick → CalcQtyOnSpecialBinsOnLocation, …) - Table 5767 “Warehouse Activity Line” (6 calls:
CheckReservedItemTrkgForLotNo → CalcLineReservedQtyOnInvt,CheckReservedItemTrkgForLotNo → CalcReservQtyOnPicksShips,ShowItemAvailabilityByEvent → ShowItemAvailabilityFromWhseActivLine, …) - Codeunit 7312 “Create Pick” (5 calls:
CalcAvailableQty → CalcInvtAvailQty,CalcAvailableQty → CalcLineReservedQtyOnInvt,CalcAvailableQty → CalcQtyOnDedicatedBins, …) - Codeunit 7307 “Whse.-Activity-Register” (4 calls:
CalcTotalAvailQtyToPick → CalcLineReservedQtyOnInvt,CalcTotalAvailQtyToPick → CalcQtyOnDedicatedBins,CalcTotalAvailQtyToPick → CalcQtyOnOutboundBins, …) - Codeunit 300 “Reservation Worksheet Mgt.” (3 calls:
GetAvailRemainingQtyOnItemLedgerEntry → CalcQtyOnOutboundBins,GetAvailRemainingQtyOnItemLedgerEntry → CalcQtyOnSpecialBinsOnLocation,GetAvailRemainingQtyOnItemLedgerEntry → GetOutboundBinsOnBasicWarehouseLocation) - Table 7326 “Whse. Worksheet Line” (3 calls:
AssignedQtyOnReservedLines → CalcLineReservedQtyOnInvt,CalcAvailableQtyBase → CalcQtyAssgndOnWksh,CalcAvailableQtyBase → CalcQtyAvailToTakeOnWhseWorksheetLine) - Codeunit 6516 “Package Management” (2 calls:
CheckReservedItemTrkgOnCkeckTypeElseCase → CalcLineReservedQtyOnInvt,CheckReservedItemTrkgOnCkeckTypeElseCase → CalcReservQtyOnPicksShips) - Report 7305 “Whse.-Source - Create Document” (2 calls:
CheckAvailabilityWithTracking → CalcQtyAssignedToMove,CheckAvailabilityWithTracking → CalcQtyOnBin) - Codeunit 80 “Sales-Post” (1 call:
SyncSurPlusItemTracking → CalcLineReservedQtyOnInvt) - Codeunit 973 “Asm. Create Pick” (1 call:
OnCalcAvailableQtyOnGetLineReservedQty → CalcLineReservedQtyOnInvt) - Codeunit 99000854 “Inventory Profile Offsetting” (1 call:
SetQtyToHandle → CalcQtyRegisteredPick) - Codeunit 99000873 “Mfg. Create Pick” (1 call:
OnCalcAvailableQtyOnGetLineReservedQty → CalcLineReservedQtyOnInvt) - Page 5769 “Whse. Receipt Subform” (1 call:
ItemAvailability → ShowItemAvailFromWhseRcptLine) - Page 5771 “Whse. Put-away Subform” (1 call:
ItemAvailability → ShowItemAvailabilityFromWhseActivLine) - Page 5780 “Whse. Pick Subform” (1 call:
ItemAvailability → ShowItemAvailabilityFromWhseActivLine) - Page 7376 “Invt. Put-away Subform” (1 call:
ItemAvailability → ShowItemAvailabilityFromWhseActivLine) - Page 7383 “Invt. Movement Subform” (1 call:
ItemAvailability → ShowItemAvailabilityFromWhseActivLine)
Recent changes
- 2026-09-25 #11669 Fix reserved-lot re-picking after warehouse reclassification (main, BC30, fix)
- 2026-09-15 #11238 [29.X]- The Available to Take logic is incorrect or inaccurate in the Pick Worksheet as it includes Ship and Receive bin inventory (releases/29.x, BC29, fix)
- 2026-09-03 #10873 [Master]-The Available to Take logic is incorrect or inaccurate in the Pick Worksheet as it includes Ship and Receive bin inventory (main, BC30, fix)
- 2026-08-11 #9532 [Master]Error when creating a Pick “Nothing to handle. The quantity to be picked is in bin W-09-0002, which is not set up for picking.” (main, BC30, fix)
- 2026-07-17 #8905 [Master] Different source reference on reservation entries created directly from Job Planning Line and via a warehouse pick. (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: "Warehouse Availability Mgt."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.