---
id: object/codeunit/7322
type: object
title: Codeunit 7322 "Create Inventory Pick/Movement"
summary: Codeunit 7322 "Create Inventory Pick/Movement" in Base Application (Microsoft.Warehouse.Activity). 39 public procedures, 103 events. Present since at least BC23, still in BC30, changed in BC24-30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "30"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 3fd258d24a77b7ddb18b560803eddd2bde2932b39cd221d4ccbb77b8561afd14
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al
    title: src/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12293
    - change/bcapps/11947
    - change/bcapps/11823
    - change/bcapps/10795
    - change/bcapps/10522
    - change/bcapps/10277
    - change/bcapps/8905
object_type: codeunit
object_id: 7322
name: Create Inventory Pick/Movement
namespace: Microsoft.Warehouse.Activity
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 191
  events: 103
  subscribers: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 13
  calls: 7
  called_by: 5
  implements: 0
---

# Codeunit 7322 "Create Inventory Pick/Movement"

> Codeunit 7322 "Create Inventory Pick/Movement" in Base Application (Microsoft.Warehouse.Activity). 39 public procedures, 103 events. Present since at least BC23, still in BC30, changed in BC24-30.

Base Application · Microsoft.Warehouse.Activity · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| TableNo | Warehouse Activity Header |
| Permissions | TableData "Whse. Item Tracking Line" = rimd |

## Events published

- `OnAfterAutoCreatePickOrMove(var WarehouseRequest: Record "Warehouse Request"; LineCreated: Boolean; var WarehouseActivityHeader: Record "Warehouse Activity Header"; Location: Record Location; HideDialog: Boolean)` (integration)
- `OnAfterCreateATOPickLine(QtyToPickBase: Decimal; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; NewWarehouseActivityLine: Record "Warehouse Activity Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration)
- `OnAfterCreateInventoryPickMovement(var WarehouseRequest: Record "Warehouse Request"; LineCreated: Boolean; var WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration)
- `OnAfterCreateInvtMvntWithoutSource(WhseActivHeader: Record "Warehouse Activity Header"; var InternalMovementHeader: Record "Internal Movement Header")` (integration)
- `OnAfterCreatePickOrMoveFromTransfer(var WarehouseActivityHeader: Record "Warehouse Activity Header"; TransferHeader: Record "Transfer Header"; var TransferLine: Record "Transfer Line")` (integration)
- `OnAfterCreatePickOrMoveFromSales(var WarehouseActivityHeader: Record "Warehouse Activity Header"; AutoCreation: Boolean; HideDialog: Boolean; var LineCreated: Boolean; IsInvtMovement: Boolean; IsBlankInvtMovement: Boolean)` (integration)
- `OnAfterGetSourceDocHeader(var WarehouseRequest: Record "Warehouse Request"; var PostingDate: Date; var VendorDocNo: Code[35])` (integration)
- `OnAfterInsertWhseActivLine(var WarehouseActivityLine: Record "Warehouse Activity Line"; SNRequired: Boolean; LNRequired: Boolean; var RemQtyToPickBase: Decimal; var CompleteShipment: Boolean; var ReservationExists: Boolean; WhseItemTrackingSetup: Record "Item Tracking Setup")` (integration)
- `OnAfterInsertPickOrMoveBinWhseActLine(WarehouseActivityLine: Record "Warehouse Activity Line"; WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration)
- `OnAfterCalcTotalAvailQtyToPickBase(ItemNo: Code[20]; VariantNo: Code[10]; SerialNo: Code[50]; LotNo: Code[50]; LocationCode: Code[10]; BinCode: Code[20]; SourceType: Integer; SourceSubtype: Integer; SourceNo: Code[20]; SourceLineNo: Integer; SourceSublineNo: Integer; RemQtyToPickBase: Decimal; var TotalAvailQtyToPickBase: Decimal)` (integration)
- `OnAfterPrepareItemTrackingFromWhseIT(var ReservationEntry: Record "Reservation Entry"; EntryNo: Integer)` (integration)
- `OnAfterPrepareItemTrackingForInternalMovement(InternalMovementLine: Record "Internal Movement Line"; var ReservationEntryBuffer: Record "Reservation Entry")` (integration)
- `OnAfterSetFilterSalesLine(var SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header"; WarehouseActivityHeader: Record "Warehouse Activity Header"; WarehouseRequest: Record "Warehouse Request"; ShowError: Boolean; var Result: Boolean)` (integration)
- `OnAfterSetLineData(WarehouseActivityHeader: Record "Warehouse Activity Header"; Location: Record Location; var WarehouseActivityLine: Record "Warehouse Activity Line")` (integration)
- `OnBeforeGetSpecEquipmentCode(WarehouseActivityLine: Record "Warehouse Activity Line"; TakeBinCode: Code[20]; var AllowBlankBin: Boolean)` (integration)
  - subscribers: [Codeunit 20573 "Subc. Invt. Pick Ext"](../codeunit/20573.md) AllowBlankBinForWipItemPickLine_OnBeforeGetSpecEquipmentCode
- `OnAfterUpdateWhseActivHeader(var WarehouseActivityHeader: Record "Warehouse Activity Header"; var WarehouseRequest: Record "Warehouse Request"; Location: Record Location)` (integration)
- `OnBeforeAutoCreatePickOrMove(WarehouseRequest: Record "Warehouse Request"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var LineCreated: Boolean; var IsHandled: Boolean; var HideDialog: Boolean; IsInvtMovement: Boolean; IsBlankInvtMovement: Boolean; var CompleteShipment: Boolean)` (integration)
- `OnBeforeCheckSourceDoc(WarehouseRequest: Record "Warehouse Request"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreatePickOrMoveLines(WarehouseRequest: Record "Warehouse Request"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var LinesCreated: Boolean; var IsHandled: Boolean; var HideDialog: Boolean; IsInvtMovement: Boolean; IsBlankInvtMovement: Boolean; var CompleteShipment: Boolean)` (integration)
- `OnBeforeCreatePickOrMoveFromSales(var WarehouseActivityHeader: Record "Warehouse Activity Header"; SalesHeader: Record "Sales Header"; AutoCreation: Boolean; HideDialog: Boolean; var SalesLine: Record "Sales Line")` (integration)
- `OnBeforeCreatePickOrMoveLineFromSalesLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; SalesHeader: Record "Sales Header"; var IsHandled: Boolean; SalesLine: Record "Sales Line"; Location: Record Location; var NextLineNo: Integer; var LineCreated: Boolean; var CompleteShipment: Boolean; AutoCreation: Boolean; ShowError: Boolean)` (integration)
- `OnBeforeCreatePickOrMoveLineFromProductionLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; ProductionOrder: Record Microsoft.Manufacturing.Document."Production Order"; var IsHandled: Boolean; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component")` (integration, obsolete 27.0)
- `OnBeforeCreateATOInventoryMovementsAutomatically(AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; PrintDocumentForATOMvmt: Boolean; ShowErrorForATOMvmt: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreatePickOrMoveLineFromPurchaseLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean; PurchaseLine: Record "Purchase Line")` (integration)
- `OnBeforeCreatePickOrMoveLineFromTransferLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; TransferHeader: Record "Transfer Header"; var IsHandled: Boolean; TransferLine: Record "Transfer Line")` (integration)
- `OnBeforeCreatePickOrMoveLineFromAssemblyLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; var IsHandled: Boolean; AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line")` (integration, obsolete 27.0)
- `OnBeforeCreateTempHandlingSpec(WarehouseActivityLine: Record "Warehouse Activity Line"; var TotalQtyToPickBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertPickOrMoveBinWhseActLine(NewWhseActivLine: Record "Warehouse Activity Line"; BinCode: Code[20]; DefaultBin: Boolean; var RemQtyToPickBase: Decimal; var IsHandled: Boolean; var WhseRequest: Record "Warehouse Request"; var WhseActivHeader: Record "Warehouse Activity Header"; IsInvtMovement: Boolean; AutoCreation: Boolean; PostingDate: Date; VendorDocNo: Code[35]; var LineCreated: Boolean; var NextLineNo: Integer)` (integration)
- `OnBeforeNewWhseActivLineInsert(var WarehouseActivityLine: Record "Warehouse Activity Line"; WarehouseActivityHeader: Record "Warehouse Activity Header"; Location: Record Location)` (integration)
- `OnBeforeNewWhseActivLineInsertFromPurchase(var WarehouseActivityLine: Record "Warehouse Activity Line"; var PurchaseLine: Record "Purchase Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration)
- `OnBeforeNewWhseActivLineInsertFromSales(var WarehouseActivityLine: Record "Warehouse Activity Line"; var SalesLine: Record "Sales Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration)
- `OnBeforeNewWhseActivLineInsertFromTransfer(var WarehouseActivityLine: Record "Warehouse Activity Line"; var TransferLine: Record "Transfer Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration)
  - subscribers: [Codeunit 20573 "Subc. Invt. Pick Ext"](../codeunit/20573.md) SetNonBaseQtyForWipItemTransferLine_OnBeforeNewWhseActivLineInsertFromTransfer
- `OnBeforeNewWhseActivLineInsertFromAssembly(var WarehouseActivityLine: Record "Warehouse Activity Line"; var AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration, obsolete 27.0)
- `OnBeforeNewWhseActivLineInsertFromComp(var WarehouseActivityLine: Record "Warehouse Activity Line"; var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration, obsolete 27.0)
- `OnBeforeOnRun(var WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration)
- `OnBeforeFindPurchLine(var PurchaseLine: Record "Purchase Line"; PurchaseHeader: Record "Purchase Header"; WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration)
- `OnBeforeFindSalesLine(var SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header"; WarehouseActivityHeader: Record "Warehouse Activity Header"; WarehouseRequest: Record "Warehouse Request"; CheckLineExist: Boolean)` (integration)
- `OnBeforeFindTransLine(var TransferLine: Record "Transfer Line"; TransferHeader: Record "Transfer Header"; WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration)
- `OnBeforeFindAssemblyLine(var AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration, obsolete 27.0)
- `OnBeforeFindProdOrderComp(var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; ProductionOrder: Record Microsoft.Manufacturing.Document."Production Order"; WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration, obsolete 27.0)
- `OnBeforeGetSourceDocHeader(var WhseRequest: Record "Warehouse Request"; var IsHandled: Boolean; var RecordExists: Boolean)` (integration)
- `OnBeforePickStrictExpirationPosting(ItemNo: Code[20]; SNRequired: Boolean; LNRequired: Boolean; var StrictExpirationPosting: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeFindFromBinContent(var FromBinContent: Record "Bin Content"; var WarehouseActivityLine: Record "Warehouse Activity Line"; FromBinCode: Code[20]; BinCode: Code[20]; IsInvtMovement: Boolean; IsBlankInvtMovement: Boolean; DefaultBin: Boolean; WhseItemTrackingSetup: Record "Item Tracking Setup"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var WarehouseRequest: Record "Warehouse Request")` (integration)
- `OnBeforeMakeHeader(WhseActivHeader: Record "Warehouse Activity Header"; var AutoCreation: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeTempReservEntryInsert(var ReservationEntry: Record "Reservation Entry"; WhseItemTrackingLine: Record "Whse. Item Tracking Line")` (integration)
- `OnBeforeModifyWarehouseActivityHeader(var WarehouseActivityHeader: Record "Warehouse Activity Header"; WarehouseRequest: Record "Warehouse Request"; Location: Record Location)` (integration)
- `OnBeforeWhseItemTrackingLineInsert(var WhseItemTrackingLine: Record "Whse. Item Tracking Line"; TrackingSpecification: Record "Tracking Specification")` (integration)
- `OnAfterRunCreatePickOrMoveLine(var WhseActivHeader: Record "Warehouse Activity Header"; var WhseRequest: Record "Warehouse Request")` (integration)
- `OnBeforeRunCreatePickOrMoveLine(var WhseActivHeader: Record "Warehouse Activity Header"; var WhseRequest: Record "Warehouse Request")` (integration)
- `OnCalcInvtAvailabilityOnAfterCalcQtyBlocked(WarehouseActivityLine: Record "Warehouse Activity Line"; ItemTrackingSetup: Record "Item Tracking Setup"; var QtyBlocked: Decimal)` (integration)
- `OnCreateATOPickLineOnAfterCalcQtyToPickBase(var RemQtyToPickBase: Decimal; var QtyToPickBase: Decimal; ATOSalesLine: Record "Sales Line")` (integration)
- `OnCreatePickOrMoveLineOnAfterCheckForCompleteShipment(WarehouseActivityHeader: Record "Warehouse Activity Header"; WhseItemTrackingSetup: Record "Item Tracking Setup"; ReservationExists: Boolean; var RemQtyToPickBase: Decimal; var QtyAvailToPickBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnCreatePickOrMoveLineOnAfterCalcQtyAvailToPickBase(var WarehouseActivityLine: Record "Warehouse Activity Line"; SNRequired: Boolean; LNRequired: Boolean; ReservationExists: Boolean; var RemQtyToPickBase: Decimal; var QtyAvailToPickBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnCreatePickOrMoveLineOnAfterFindTakeQtyForBinCodeOfSourceLineHandlingSpec(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; TempHandlingSpecification: Record "Tracking Specification"; WhseItemTrackingSetup: Record "Item Tracking Setup"; var ITQtyToPickBase: Decimal; WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration)
- `OnCreatePickOrMoveLineOnAfterFindTakeQtyForBinCodeSourceLine(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; WhseItemTrackingSetup: Record "Item Tracking Setup"; var RemQtyToPickBase: Decimal; WarehouseActivityHeader: Record "Warehouse Activity Header")` (integration)
- `OnCreatePickOrMoveLineOnAfterGetWhseItemTrkgSetup(NewWarehouseActivityLine: Record "Warehouse Activity Line"; var WhseItemTrackingSetup: Record "Item Tracking Setup")` (integration)
- `OnCreatePickOrMoveFromSalesOnAfterCreatePickOrMoveLine(var WarehouseActivityLine: Record "Warehouse Activity Line"; var SalesLine: Record "Sales Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; ShowError: Boolean; AutoCreation: Boolean; var LineCreated: Boolean)` (integration)
- `OnCheckSourceDocForWhseRequest(var WarehouseRequest: Record "Warehouse Request"; SourceDocRecRef: RecordRef; var WhseActivHeader: Record "Warehouse Activity Header"; CheckLineExist: Boolean; var Result: Boolean; var IsHandled: Boolean; IsInvtMovement: Boolean; var WarehouseSourceFilter: Record "Warehouse Source Filter"; ApplyAdditionalSourceDocFilters: Boolean; var SourceDocRecordVar: Variant)` (integration)
  - subscribers: [Codeunit 989 "Asm. Create Invt.Pick/Movement"](../codeunit/989.md) OnCheckSourceDocForWhseRequest, [Codeunit 99000899 "Mfg. Create Invt.Pick/Movement"](../codeunit/99000899.md) OnCheckSourceDocForWhseRequest
- `OnCreateInvtMvntWithoutSourceOnAfterTransferFields(var WarehouseActivityLine: Record "Warehouse Activity Line"; InternalMovementLine: Record "Internal Movement Line")` (integration)
- `OnCreatePickOrMoveLineFromHandlingSpec(var WarehouseActivityLine: Record "Warehouse Activity Line"; TrackingSpecification: Record "Tracking Specification"; EntriesExist: Boolean)` (integration)
- `OnBeforeCreatePickOrMoveLinePerTrackingSpec(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; var TempTrackingSpecification: Record "Tracking Specification" temporary; var RemQtyToPickBase: Decimal; OutstandingQtyBase: Decimal; ReservationExists: Boolean; var IsHandled: Boolean)` (integration)
- `OnAutoCreatePickOrMoveFromWhseRequest(var WarehouseRequest: Record "Warehouse Request"; SourceDocRecRef: RecordRef; var LineCreated: Boolean; var WhseActivityHeader: Record "Warehouse Activity Header"; Location: Record Location; HideDialog: Boolean; var CompleteShipment: Boolean; CheckLineExist: Boolean; IsInvtMovement: Boolean; var WarehouseSourceFilter: Record "Warehouse Source Filter"; ApplyAdditionalSourceDocFilters: Boolean; ReservedFromStock: Enum "Reservation From Stock"; var SourceDocRecVar: Variant)` (integration)
  - subscribers: [Codeunit 989 "Asm. Create Invt.Pick/Movement"](../codeunit/989.md) OnAutoCreatePickOrMoveFromWhseRequest, [Codeunit 99000899 "Mfg. Create Invt.Pick/Movement"](../codeunit/99000899.md) OnAutoCreatePickOrMoveFromWhseRequest
- `OnCreatePickOrMoveFromWhseRequest(var WarehouseRequest: Record "Warehouse Request"; SourceDocRecRef: RecordRef; var LineCreated: Boolean; var WhseActivityHeader: Record "Warehouse Activity Header"; Location: Record Location; HideDialog: Boolean; var CompleteShipment: Boolean; CheckLineExist: Boolean; IsInvtMovement: Boolean; var WarehouseSourceFilter: Record "Warehouse Source Filter"; ApplySourceFilters: Boolean; ReservedFromStock: Enum "Reservation From Stock"; var SourceDocRecVar: Variant)` (integration)
  - subscribers: [Codeunit 989 "Asm. Create Invt.Pick/Movement"](../codeunit/989.md) OnCreatePickOrMoveFromWhseRequest, [Codeunit 99000899 "Mfg. Create Invt.Pick/Movement"](../codeunit/99000899.md) OnCreatePickOrMoveFromWhseRequest
- `OnCreateTempHandlingSpecOnAfterCalcTotalAvailQtyToPickBase(WhseActivLine: Record "Warehouse Activity Line"; EntrySummary: Record "Entry Summary"; var TotalAvailQtyToPickBase: Decimal)` (integration)
- `OnCreateTempHandlingSpecOnAfterWhseItemTrackingFEFOSetSource(var WhseItemTrackingFEFO: Codeunit "Whse. Item Tracking FEFO"; WarehouseActivityLine: Record "Warehouse Activity Line"; WarehouseRequest: Record "Warehouse Request")` (integration)
- `OnCreateTempHandlingSpecOnAfterCalcQtyTracked(EntrySummary: Record "Entry Summary"; var QuantityTracked: Decimal; var TempHandlingSpecification: Record "Tracking Specification" temporary)` (integration)
- `OnCodeOnAfterCreatePickOrMoveLines(WarehouseRequest: Record "Warehouse Request"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var LinesCreated: Boolean; AutoCreation: Boolean; var SuppressMessage: Boolean; var IsHandled: Boolean)` (integration)
- `OnDeleteHandledInternalMovementLinesOnAfterInternalMovementLineSetFilters(var InternalMovementLine: Record "Internal Movement Line"; InternalMovementHeaderNo: Code[20])` (integration)
- `OnDeleteHandledInternalMovementLinesOnBeforeInternalMovementLineModify(var InternalMovementLine: Record "Internal Movement Line"; TempInternalMovementLine: Record "Internal Movement Line" temporary)` (integration)
- `OnDeleteHandledInternalMovementLinesOnBeforeModifyTempInternalMovementLine(var TempInternalMovementLine: Record "Internal Movement Line" temporary; InternalMovementLine: Record "Internal Movement Line")` (integration)
- `OnGetSourceDocHeaderFromWhseRequest(var WarehouseRequest: Record "Warehouse Request"; var SourceDocRecRef: RecordRef; var PostingDate: Date; VendorDocNo: Code[35]; var RecordExists: Boolean; var SourceDocRecordVar: Variant)` (integration)
  - subscribers: [Codeunit 989 "Asm. Create Invt.Pick/Movement"](../codeunit/989.md) OnGetSourceDocHeaderFromWhseRequest, [Codeunit 99000899 "Mfg. Create Invt.Pick/Movement"](../codeunit/99000899.md) OnGetSourceDocHeaderFromWhseRequest
- `OnGetWhseRequestOnBeforeSourceDocumentsRun(var WarehouseRequest: Record "Warehouse Request"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnInsertTempHandlingSpecOnBeforeValidateQtyBase(var TempTrackingSpecification: Record "Tracking Specification" temporary; EntrySummary: Record "Entry Summary")` (integration)
- `OnInvtMvntWithoutSourceOnBeforeWhseActivHeaderModify(var WarehouseActivityHeader: Record "Warehouse Activity Header"; InternalMovementHeader: Record "Internal Movement Header")` (integration)
- `OnItemTrackedQuantityOnAfterCheckTracking(var TempHandlingSpecification: Record "Tracking Specification" temporary; WhseItemTrackingSetup: Record "Item Tracking Setup"; var IsTrackingEmpty: Boolean)` (integration)
  - subscribers: [Codeunit 6516 "Package Management"](../codeunit/6516.md) OnItemTrackedQuantityOnAfterCheckTracking
- `OnMakeLineOnBeforeUpdatePlaceLine(var NewWhseActivLine: Record "Warehouse Activity Line"; var PlaceBinCode: Code[20])` (integration)
- `OnSetFilterInternalMomementOnAfterSetFilters(var InternalMovementLine: Record "Internal Movement Line"; InternalMovementHeader: Record "Internal Movement Header")` (integration)
- `OnSetFilterJobPlanningLineOnBeforeJobPlanningLineFind(var JobPlanningLine: Record "Job Planning Line"; Job: Record Job; var WhseActivHeader: Record "Warehouse Activity Header")` (integration)
- `OnUpdateHandledWhseActivityLineBufferOnBeforeTempInternalMovementLineInsert(var TempInternalMovementLine: Record "Internal Movement Line" temporary; WarehouseActivityLine: Record "Warehouse Activity Line")` (integration)
- `OnUpdateHandledWhseActivityLineBufferOnBeforeTempInternalMovementLineModify(var TempInternalMovementLine: Record "Internal Movement Line" temporary; WarehouseActivityLine: Record "Warehouse Activity Line")` (integration)
- `OnInsertPickOrMoveBinWhseActLineOnBeforeLoopMakeLine(var WhseActivHeader: Record "Warehouse Activity Header"; WhseRequest: Record "Warehouse Request"; var NewWhseActivLine: Record "Warehouse Activity Line"; FromBinContent: Record "Bin Content"; AutoCreation: Boolean; var QtyToPickBase: Decimal)` (integration)
- `OnInsertPickOrMoveBinWhseActLineOnBeforeLoopIteration(var FromBinContent: Record "Bin Content"; NewWarehouseActivityLine: Record "Warehouse Activity Line"; BinCode: Code[20]; DefaultBin: Boolean; var RemQtyToPickBase: Decimal; var IsHandled: Boolean; var QtyAvailToPickBase: Decimal)` (integration)
- `OnCreatePickOrMoveLineOnAfterCalcShouldInsertPickOrMoveDefaultBin(NewWarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal; OutstandingQtyBase: Decimal; ReservationExists: Boolean; var ShouldInsertPickOrMoveDefaultBin: Boolean)` (integration)
- `OnInsertPickOrMoveBinWhseActLineOnAfterCalcQtyAvailToPick(var QtyAvailToPickBase: Decimal; var FromBinContent: Record "Bin Content")` (integration)
- `OnBeforeCalcInvtAvailability(WhseActivLine: Record "Warehouse Activity Line"; Location: Record Location; var Result: Decimal; var IsHandled: Boolean; WhseItemTrackingSetup: Record "Item Tracking Setup"; IsBlankInvtMovement: Boolean)` (integration)
- `OnBeforeCalcQtyAvailToPickOnBins(WhseActivLine: Record "Warehouse Activity Line"; LotNo: Code[50]; SerialNo: Code[50]; RemQtyToPickBase: Decimal; var Result: Decimal; var IsHandled: Boolean)` (integration)
- `OnInsertShelfWhseActivLineOnAfterMakeHeader(var NewWhseActivLine: Record "Warehouse Activity Line")` (integration)
- `OnCreatePickOrMoveFromTransferOnAfterCreatePickOrMoveLine(var WarehouseActivityLine: Record "Warehouse Activity Line"; var TransferLine: Record "Transfer Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; ShowError: Boolean; AutoCreation: Boolean; var LineCreated: Boolean)` (integration)
- `OnAutoCreatePickOrMoveOnBeforeWarehouseActivityHeaderModify(var WarehouseActivityHeader: Record "Warehouse Activity Header"; WarehouseRequest: Record "Warehouse Request"; Location: Record Location)` (integration)
- `OnInsertPickOrMoveBinWhseActLineOnBeforeMakeHeader(var RemQtyToPickBase: Decimal; var QtyAvailToPickBase: Decimal; var DefaultBin: Boolean; var FromBinContent: Record "Bin Content")` (integration)
- `OnInsertPickOrMoveBinWhseActLineOnAfterMakeLine(var QtyToPickBase: Decimal; var DefaultBin: Boolean)` (integration)
- `OnCreatePickOrMoveLineOnBeforeCheckIfInsertPickOrMoveBinWhseActLine(var WarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal)` (integration)
- `OnInsertPickOrMoveBinWhseActLineOnBeforeMakeLineWhenSNoReq(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; WhseItemTrackingSetup: Record "Item Tracking Setup"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal; var QtyAvailToPickBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnInsertShelfWhseActivLineOnBeforeMakeShelfLineWhenSNoReq(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; WhseItemTrackingSetup: Record "Item Tracking Setup"; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnInsertPickOrMoveBinWhseActivityLine(var WarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal)` (integration)
- `OnBeforeMakeWarehouseActivityLine(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal; var NextLineNo: Integer; TakeBinCode: Code[20]; var QtyToPickBase: Decimal; IsInvtMovement: Boolean; var LineCreated: Boolean; CompleteShipment: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterCalcPickOrMoveLineQuantity(WarehouseActivityLine: Record "Warehouse Activity Line"; QtyToPickBase: Decimal; var QtyToPick: Decimal)` (integration)
  - subscribers: [Codeunit 20573 "Subc. Invt. Pick Ext"](../codeunit/20573.md) SetNonBaseQtyForWipItemPickLine_OnAfterCalcPickOrMoveLineQuantity
- `OnBeforeCreatePickOrMoveLineWithZeroBaseQty(WarehouseActivityLine: Record "Warehouse Activity Line"; var CreateLineWithZeroBaseQty: Boolean)` (integration)
  - subscribers: [Codeunit 20573 "Subc. Invt. Pick Ext"](../codeunit/20573.md) CreateWipItemPickLineWithZeroBaseQty_OnBeforeCreatePickOrMoveLineWithZeroBaseQty
- `OnInsertShelfWhseActivLineOnAfterMakeWarehouseActivityLine(var NewWhseActivLine: Record "Warehouse Activity Line")` (integration)
- `OnBeforeSetLineData(var WarehouseActivityLine: Record "Warehouse Activity Line"; WarehouseActivityHeader: Record "Warehouse Activity Header"; TakeBinCode: Code[20]; var NextLineNo: Integer; Location: Record Location; var LineCreated: Boolean; var IsHandled: Boolean)` (integration)
- `OnCreateInvtMvntWithoutSourceOnBeforeCreatePickOrMoveLine(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; var WhseWorksheetLine: Record "Whse. Worksheet Line")` (integration)
- `OnBeforeNewWhseActivLineInsertFromJobPlanning(var WarehouseActivityLine: Record "Warehouse Activity Line"; var JobPlanningLine: Record "Job Planning Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (integration)
- `OnCreateInvtMvntWithoutSourceOnBeforeNothingToHandleError(var WarehouseActivityHeader: Record "Warehouse Activity Header"; var IsHandled: Boolean)` (integration)

## Procedures

- `SetSourceDocDetailsFilter(var WarehouseSourceFilter2: Record "Warehouse Source Filter")`
- `FindNextLineNo()`
- `SetHideDialog(NewHideDialogValue: Boolean)`
- `SetWhseActivHeader(WhseActivHeader: Record "Warehouse Activity Header")`
- `GetWhseActivHeader(var WhseActivHeader: Record "Warehouse Activity Header")`
- `RunCreatePickOrMoveLine(NewWarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal; OutstandingQtyBase: Decimal; ReservationExists: Boolean)`
- `CreatePickOrMoveLine(NewWarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal; OutstandingQtyBase: Decimal; ReservationExists: Boolean)` (internal)
- `InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine: Record "Warehouse Activity Line"; BinCode: Code[20]; DefaultBin: Boolean; var RemQtyToPickBase: Decimal; WhseItemTrackingSetup: Record "Item Tracking Setup")`
- `CheckBinContentWithToAssemblyBinCode(var ITQtyToPickBase: Decimal; NewWarehouseActivityLine: Record "Warehouse Activity Line")`
- `InsertShelfWhseActivLine(NewWarehouseActivityLine: Record "Warehouse Activity Line"; var RemQtyToPickBase: Decimal; WhseItemTrackingSetup: Record "Item Tracking Setup")`
- `CalcInvtAvailability(WarehouseActivityLine: Record "Warehouse Activity Line"; WhseItemTrackingSetup: Record "Item Tracking Setup"): Decimal`
- `SetWhseRequest(NewWarehouseRequest: Record "Warehouse Request"; NewSetHideDialog: Boolean)`
- `CheckSourceDoc(NewWarehouseRequest: Record "Warehouse Request"): Boolean`
- `AutoCreatePickOrMove(var NewWarehouseActivityHeader: Record "Warehouse Activity Header")`
- `SetReportGlobals(PrintDocument2: Boolean; ShowError2: Boolean)`
- `SetReportGlobals(PrintDocument2: Boolean; ShowError2: Boolean; ReservedFromStock2: Enum "Reservation From Stock")`
- `SetInvtMovement(InvtMovement: Boolean)`: Sets the global option for inventory movement status.
- `UndefinedItemTracking(var QtyToTrackBase: Decimal): Boolean`: Determines and updates quantity to track.
- `CreateTempHandlingSpec(WarehouseActivityLine: Record "Warehouse Activity Line"; TotalQtyToPickBase: Decimal)`: Creates a temporary handling specification for a warehouse activity line.
- `CreateInvtMvntWithoutSource(var InternalMovementHeader: Record "Internal Movement Header")`: Creates an inventory movement document for internal warehouse activities, based on provided inventory movement header.
- `CreateInvtMvntWithoutSource(var WhseWorksheetLine: Record "Whse. Worksheet Line")`: Creates an inventory movement document for internal warehouse activities, based on provided warehouse worksheet line.
- `SynchronizeWhseItemTracking(var TrackingSpecification: Record "Tracking Specification")`: Synchronizes warehouse item tracking information with the tracking specification.
- `GetExpiredItemMessage(): Text[100]`: Retrieves the message text for expired items.
- `PickStrictExpirationPosting(ItemNo: Code[20]; WhseItemTrackingSetup: Record "Item Tracking Setup"): Boolean`: Determines whether strict expiration posting is required for an item based on the provided item tracking setup.
- `MakeWarehouseActivityHeader()`: Creates a warehouse activity header if auto creation is enabled and no lines have been created yet.
- `MakeWarehouseActivityLine(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal)`: Creates a warehouse activity line based on the provided parameters and updates remaining quantity.
- `MakeLineWhenSNoReq(var NewWarehouseActivityLine: Record "Warehouse Activity Line"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal; var RemQtyToPick: Decimal)`: Creates a warehouse activity line when serial number is required and updates remaining quantities.
- `GetSpecEquipmentCode(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; BinCode: Code[20]): Code[10]`: Retrieves the special equipment code based on the provided parameters.
- `CreateATOPickLine(NewWarehouseActivityLine: Record "Warehouse Activity Line"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)`: Creates a warehouse activity line for assemble-to-order operation based on the provided parameters and updates remaining quantity to pick.
- `GetATOMovementsCounters(var MovementsCreated: Integer; var TotalMovementsCreated: Integer)`
- `SetSuppressCommit(NewSuppressCommit: Boolean)`: Sets the option to suppress committing transactions to the database.
- `SetHideDialogForTracking(NewHideDialogForTracking: Boolean)`
- `RaiseNothingToHandleMessage()`
- `RunOnBeforeCreatePickOrMoveLineFromProductionLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; ProductionOrder: Record Microsoft.Manufacturing.Document."Production Order"; var IsHandled: Boolean; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component")` (internal)
- `RunOnBeforeCreatePickOrMoveLineFromAssemblyLoop(var WarehouseActivityHeader: Record "Warehouse Activity Header"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; var IsHandled: Boolean; AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line")` (internal)
- `RunOnBeforeNewWhseActivLineInsertFromAssembly(var WarehouseActivityLine: Record "Warehouse Activity Line"; var AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (internal)
- `RunOnBeforeNewWhseActivLineInsertFromComp(var WarehouseActivityLine: Record "Warehouse Activity Line"; var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var WarehouseActivityHeader: Record "Warehouse Activity Header"; var RemQtyToPickBase: Decimal)` (internal)
- `RunOnBeforeFindAssemblyLine(var AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; WarehouseActivityHeader: Record "Warehouse Activity Header")` (internal)
- `RunOnBeforeFindProdOrderComp(var ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; ProductionOrder: Record Microsoft.Manufacturing.Document."Production Order"; WarehouseActivityHeader: Record "Warehouse Activity Header")` (internal)

Plus 49 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 5766 "Warehouse Activity Header"](../table/5766.md)

## 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 7302 "WMS Management"](../codeunit/7302.md) (8 calls: `CalcRemQtyToPickOrMoveBase → CalcLineReservedQtyNotonInvt`, `CalcRemQtyToPickOrMoveBase → GetATOJobPlanningLine`, `CalcRemQtyToPickOrMoveBase → GetATOSalesLine`, …)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (7 calls: `CreateATOPickLine → SumUpItemTracking`, `CreatePickOrMoveLine → GetWhseItemTrkgSetup`, `CreatePickOrMoveLine → SumUpItemTrackingOnlyInventoryOrATO`, …)
- [Codeunit 7314 "Warehouse Availability Mgt."](../codeunit/7314.md) (6 calls: `CalcInvtAvailability → CalcLineReservedQtyOnInvt`, `CalcInvtAvailability → CalcQtyAssgndtoPick`, `CalcInvtAvailability → CalcQtyOnBlockedItemTracking`, …)
- [Codeunit 7326 "Whse. Item Tracking FEFO"](../codeunit/7326.md) (6 calls: `CreateTempHandlingSpec → CreateEntrySummaryFEFO`, `CreateTempHandlingSpec → FindFirstEntrySummaryFEFO`, `CreateTempHandlingSpec → FindNextEntrySummaryFEFO`, …)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (2 calls: `MakeLineWhenSNoReq → CalcBaseQty`, `MakeLineWhenSNoReq → RoundQty`)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (2 calls: `CreatePickOrMoveFromJobPlanning → LogUsage`, `CreatePickOrMoveLine → LogUsage`)
- [Page 5793 "Source Documents"](../page/5793.md) (1 call: `GetWhseRequest → (object)`)

## Called by

- [Codeunit 989 "Asm. Create Invt.Pick/Movement"](../codeunit/989.md) (4 calls: `CreatePickOrMoveFromAssembly → (object)`, `CreatePickOrMoveFromAssembly → CreatePickOrMoveLine`, `CreatePickOrMoveFromAssembly → FindNextLineNo`, …)
- [Codeunit 20450 "Qlty. Disp. Internal Move"](../codeunit/20450.md) (3 calls: `CreateInventoryMovementFromInternalMovement → CreateInvtMvntWithoutSource`, `CreateInventoryMovementFromInternalMovement → GetWhseActivHeader`, `CreateInventoryMovementFromInternalMovement → SetWhseRequest`)
- [Codeunit 99000899 "Mfg. Create Invt.Pick/Movement"](../codeunit/99000899.md) (3 calls: `CreatePickOrMoveFromProduction → CreatePickOrMoveLine`, `CreatePickOrMoveFromProduction → FindNextLineNo`, `CreatePickOrMoveFromProduction → RaiseNothingToHandleMessage`)
- [Table 7326 "Whse. Worksheet Line"](../table/7326.md) (2 calls: `MovementCreate → CreateInvtMvntWithoutSource`, `MovementCreate → SetHideDialogForTracking`)
- [Report 7323 "Create Invt Put-away/Pick/Mvmt"](../report/7323.md) (1 call: `OnPreReport → SetInvtMovement`)

## Recent changes

- 2026-10-05 [#12293 Remove CLEAN27 from Warehouse](../../changes/bcapps/12293.md) (main, BC30, obsoletion)
- 2026-09-29 [#11947 [29x]-Create Movement from Movement Worksheet doesn't respect Quantity nor Qty. to Handle if we Get Bin Content](../../changes/bcapps/11947.md) (releases/29.x, BC29, fix)
- 2026-09-26 [#11823 [Main]-Create Movement from Movement Worksheet doesn't respect Quantity nor Qty. to Handle if we Get Bin Content](../../changes/bcapps/11823.md) (main, BC30, fix)
- 2026-09-03 [#10795 [master] Discrepancy in inventory picks when the quantity exceeds the available inventory.](../../changes/bcapps/10795.md) (main, BC30, fix)
- 2026-08-27 [#10522 [main] Bug 647499 Bin Replenishment with Pick by FEFO Creates Incorrect Inventory Movements](../../changes/bcapps/10522.md) (main, BC30, fix)
- 2026-08-20 [#10277 Slice 554749: Inventory put-away/pick support for subcontracting purchase lines and WIP item transfers](../../changes/bcapps/10277.md) (main, BC30, feature)
- 2026-07-17 [#8905 [Master] Different source reference on reservation entries created directly from Job Planning Line and via a warehouse pick.](../../changes/bcapps/8905.md) (main, BC30, fix)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-30

## Deprecations

- procedure RunOnBeforeCreatePickOrMoveLineFromAssemblyLoop: guarded (#if not CLEAN27)
- procedure RunOnBeforeCreatePickOrMoveLineFromProductionLoop: guarded (#if not CLEAN27)
- procedure RunOnBeforeFindAssemblyLine: guarded (#if not CLEAN27)
- procedure RunOnBeforeFindProdOrderComp: guarded (#if not CLEAN27)
- procedure RunOnBeforeNewWhseActivLineInsertFromAssembly: guarded (#if not CLEAN27)
- procedure RunOnBeforeNewWhseActivLineInsertFromComp: guarded (#if not CLEAN27)
- procedure OnBeforeCreatePickOrMoveLineFromAssemblyLoop: Pending 27.0 (#if not CLEAN27), "Moved to codeunit AsmCreateInvtPickMovement"
- procedure OnBeforeCreatePickOrMoveLineFromProductionLoop: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgCreateInvtPickMovement"
- procedure OnBeforeFindAssemblyLine: Pending 27.0 (#if not CLEAN27), "Moved to codeunit AsmCreateInvtPickMovement"
- procedure OnBeforeFindProdOrderComp: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgCreateInvtPickMovement"
- procedure OnBeforeNewWhseActivLineInsertFromAssembly: Pending 27.0 (#if not CLEAN27), "Moved to codeunit AsmCreateInvtPickMovement"
- procedure OnBeforeNewWhseActivLineInsertFromComp: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgCreateInvtPickMovement"

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: "Create Inventory Pick/Movement")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
