Codeunit 99000834 "Purch. Line-Reserve"
Base Application · Microsoft.Purchases.Document
Across versions
- BC23present
- BC241 events added, 1 events removed
- BC2522 procedures added, 5 events added
- BC26unchanged
- BC271 events changed
- BC281 procedures added
- BC29-30unchanged
Neighbourhood 30 connected objects and pages
Base Application · Microsoft.Purchases.Document · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | TableData “Reservation Entry” = rimd |
Events published
OnVerifyChangeOnBeforeHasError(NewPurchLine: Record "Purchase Line"; OldPurchLine: Record "Purchase Line"; var HasError: Boolean; var ShowError: Boolean)(integration)OnAfterUpdateItemTrackingAfterPosting(var PurchHeader: Record "Purchase Header")(integration)OnBeforeCreateReservation(var PurchLine: Record "Purchase Line")(integration)OnBeforeDeleteLine(var PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)(integration)OnBeforeTransferPurchLineToItemJnlLine(var PurchaseLine: Record "Purchase Line"; var ItemJournalLine: Record "Item Journal Line"; TransferQty: Decimal; var CheckApplToItemEntry: Boolean; var Result: Decimal; var IsHandled: Boolean)(integration)OnBeforeTransferPurchLineToItemJnlLineReservEntry(var OldReservEntry: Record "Reservation Entry"; PurchLine: Record "Purchase Line"; ItemJnlLine: Record "Item Journal Line"; var TransferQty: Decimal; var IsHandled: Boolean)(integration)OnBeforeRunItemTrackingLinesPage(var ItemTrackingLines: Page "Item Tracking Lines"; var IsHandled: Boolean)(integration)OnBeforeVerifyQuantity(PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean; OldPurchaseLine: Record "Purchase Line")(integration)OnTransferPurchLineToPurchLineOnAfterOldReservEntrySetFilters(var OldPurchLine: record "Purchase Line"; var NewPurchLine: Record "Purchase Line")(integration)OnTransferPurchLineToItemJnlLineOnBeforeInitRecordSet(var OldReservationEntry: Record "Reservation Entry")(integration)OnVerifyChangeOnBeforeTestVariantCode(var NewPurchaseLine: Record "Purchase Line"; var OldPurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)(integration)OnCallItemTrackingOnBeforeItemTrackingFormRunModal(var PurchLine: Record "Purchase Line"; var ItemTrackingForm: Page "Item Tracking Lines")(integration)OnRetrieveInvoiceSpecification2OnBeforeInsert(var TempInvoicingSpecification: Record "Tracking Specification" temporary; ReservEntry: Record "Reservation Entry")(integration)OnUpdateStatisticsOnBeforeCheckSpecialOrder(var PurchLine: Record "Purchase Line")(integration)OnBeforeAssignForPlanning(PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)(integration)OnBeforeRetrieveInvoiceSpecification(PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean; var OK: Boolean; var TempInvoicingSpecification: Record "Tracking Specification" temporary)(integration)OnBeforeRetrieveInvoiceSpecification2(PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)(integration)OnCreateReservationOnBeforeCreateReservEntry(var PurchLine: Record "Purchase Line"; var Quantity: Decimal; var QuantityBase: Decimal; var ForReservEntry: Record "Reservation Entry"; var IsHandled: Boolean; var FromTrackingSpecification: Record "Tracking Specification"; ExpectedReceiptDate: Date; var Description: Text[100]; ShipmentDate: Date)+ BC24 − BC24 (integration)OnCallItemTrackingOnAfterCalcShouldProcessDropShipment(var PurchLine: Record "Purchase Line"; var ShouldProcessDropShipment: Boolean; var ItemTrackingLinesPage: Page "Item Tracking Lines")(integration)OnAfterCreateReservation(var PurchaseLine: Record "Purchase Line")(integration)OnBeforeCallItemTracking(var PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)(integration)OnAfterReservQuantity(PurchaseLine: Record "Purchase Line"; var QtyToReserve: Decimal)(integration)OnBeforeVerifyChange(var NewPurchaseLine: Record "Purchase Line"; var OldPurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)(integration)OnBeforeAutoReservePurchLine(ReservSummEntryNo: Integer; var RemainingQtyToReserve: Decimal; var RemainingQtyToReserveBase: Decimal; Description: Text[100]; AvailabilityDate: Date; var IsReserved: Boolean; var Search: Text[1]; var NextStep: Integer; CalcReservEntry: Record "Reservation Entry")+ BC25 (integration)OnAutoReservePurchLineOnBeforeSetQtyToReserveDownToTrackedQuantity(PurchLine: Record "Purchase Line"; CalcReservEntry: Record "Reservation Entry"; var ReservQty: Decimal; var QtyThisLine: Decimal; var QtyThisLineBase: Decimal)+ BC25 (integration)OnAfterAutoReservePurchLine(var PurchLine: Record "Purchase Line"; ReservSummEntryNo: Integer; var RemainingQtyToReserve: Decimal; var RemainingQtyToReserveBase: Decimal; Description: Text[100]; AvailabilityDate: Date)+ BC25 (integration)OnSetSourceForReservationOnBeforeUpdateReservation(var ReservEntry: Record "Reservation Entry"; PurchLine: Record "Purchase Line")+ BC25 Δ BC27 (integration, obsolete 27.0)OnAfterInitFromPurchLine(var TrackingSpecification: Record "Tracking Specification"; PurchaseLine: Record "Purchase Line")+ BC25 (integration)
Event subscriptions
- OnGetQtyPerUOMFromSourceRecRef subscribes to Page “Reservation” OnGetQtyPerUOMFromSourceRecRef
- ReservationOnSetReservSource subscribes to Page “Reservation” OnSetReservSource
- ReservationOnDrillDownTotalQuantity subscribes to Page “Reservation” OnDrillDownTotalQuantity
- ReservationOnFilterReservEntry subscribes to Page “Reservation” OnFilterReservEntry
- ReservationOnRelatesToEntrySummary subscribes to Page “Reservation” OnAfterRelatesToSummEntry
- ItemLedgerEntryOnDrillDownTotalQuantity subscribes to Codeunit “Item Ledger Entry-Reserve” OnDrillDownTotalQuantity
- OnCreateReservation subscribes to Codeunit “Reservation Management” OnCreateReservation
- OnLookupDocument subscribes to Codeunit “Reservation Management” OnLookupDocument
- OnLookupLine subscribes to Codeunit “Reservation Management” OnLookupLine
- OnFilterReservFor subscribes to Codeunit “Reservation Management” OnFilterReservFor
- OnCalculateRemainingQty subscribes to Codeunit “Reservation Management” OnCalculateRemainingQty
- OnGetSourceRecordValue subscribes to Codeunit “Reservation Management” OnGetSourceRecordValue
- OnUpdateStatistics subscribes to Codeunit “Reservation Management” OnUpdateStatistics
- OnLookupReserved subscribes to Page “Reservation Entries” OnLookupReserved
- OnAfterAutoReserveOneLine subscribes to Codeunit “Reservation Management” OnAfterAutoReserveOneLine
- OnAutoReserveOnBeforeStopReservation subscribes to Codeunit “Reservation Management” OnAutoReserveOnBeforeStopReservation
- OnAutoTrackOnCheckSourceType subscribes to Codeunit “Reservation Management” OnAutoTrackOnCheckSourceType
- OnTestItemType subscribes to Codeunit “Reservation Management” OnTestItemType
- OnIssueActionMessageOnSetSourceTypeFromSKU subscribes to Codeunit “Reservation Management” OnIssueActionMessageOnSetSourceTypeFromSKU
- CheckSourceTypeSubtype subscribes to Codeunit “Create Reserv. Entry” OnCheckSourceTypeSubtype
- OnRevertDateToSourceDate subscribes to Codeunit “Reservation Engine Mgt.” OnRevertDateToSourceDate
- OnGetActivePointerFieldsOnBeforeAssignArrayValues subscribes to Codeunit “Reservation Engine Mgt.” OnGetActivePointerFieldsOnBeforeAssignArrayValues
- OnAfterCreateText subscribes to Codeunit “Reservation Engine Mgt.” OnCreateText
- OnBeforeSummEntryNo subscribes to Table “Reservation Entry” OnAfterSummEntryNo
- ReservationEntryOnUpdateSourceCost subscribes to Table “Reservation Entry” OnUpdateSourceCost
- OrderTrackingManagementOnSetSourceRecord subscribes to Codeunit “OrderTrackingManagement” OnSetSourceRecord
- OnInsertOrderTrackingEntry subscribes to Codeunit “OrderTrackingManagement” OnInsertOrderTrackingEntry
- OnGetSourceShipmentDate subscribes to Table “Tracking Specification” OnGetSourceShipmentDate
Procedures
CreateReservation(var PurchaseLine: Record "Purchase Line"; Description: Text[100]; ExpectedReceiptDate: Date; Quantity: Decimal; QuantityBase: Decimal; ForReservationEntry: Record "Reservation Entry")CreateReservationSetFrom(TrackingSpecification: Record "Tracking Specification")ReservQuantity(PurchaseLine: Record "Purchase Line"): DecimalCaption(PurchaseLine: Record "Purchase Line"): TextFindReservEntry(PurchaseLine: Record "Purchase Line"; var ReservationEntry: Record "Reservation Entry"): BooleanGetReservedQtyFromInventory(PurchaseLine: Record "Purchase Line"): DecimalGetReservedQtyFromInventory(PurchaseHeader: Record "Purchase Header"): DecimalReservEntryExist(PurchaseLine: Record "Purchase Line"): BooleanVerifyChange(var NewPurchaseLine: Record "Purchase Line"; var OldPurchaseLine: Record "Purchase Line")VerifyQuantity(var NewPurchaseLine: Record "Purchase Line"; var OldPurchaseLine: Record "Purchase Line")UpdatePlanningFlexibility(var PurchaseLine: Record "Purchase Line")TransferPurchLineToItemJnlLine(var PurchaseLine: Record "Purchase Line"; var ItemJournalLine: Record "Item Journal Line"; TransferQty: Decimal; var CheckApplToItemEntry: Boolean): DecimalTransferPurchLineToPurchLine(var OldPurchaseLine: Record "Purchase Line"; var NewPurchaseLine: Record "Purchase Line"; TransferQty: Decimal)DeleteLineConfirm(var PurchaseLine: Record "Purchase Line"): BooleanDeleteLine(var PurchaseLine: Record "Purchase Line")Block(SetBlocked: Boolean)CallItemTracking(var PurchaseLine: Record "Purchase Line")+ BC28CallItemTracking(var PurchaseLine: Record "Purchase Line"; SecondSourceQuantityArray: array[3] of Decimal)+ BC28CallItemTracking(var PurchaseLine: Record "Purchase Line"; ItemLedgerEntryFilter: Text)+ BC28RetrieveInvoiceSpecification(var PurchaseLine: Record "Purchase Line"; var TempInvoicingTrackingSpecification: Record "Tracking Specification" temporary): BooleanRetrieveInvoiceSpecification2(var PurchaseLine: Record "Purchase Line"; var TempInvoicingTrackingSpecification: Record "Tracking Specification" temporary): BooleanDeleteInvoiceSpecFromHeader(PurchaseHeader: Record "Purchase Header")DeleteInvoiceSpecFromLine(PurchaseLine: Record "Purchase Line")UpdateItemTrackingAfterPosting(PurchaseHeader: Record "Purchase Header")SetApplySpecificItemTracking(ApplySpecific: Boolean)SetOverruleItemTracking(Overrule: Boolean)InitFromPurchLine(var TransactionSpecification: Record "Tracking Specification"; PurchLine: Record "Purchase Line")+ BC25
Plus 13 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 99000845 “Reservation Management” (18 calls:
AutoReservePurchLine → GetAvailabilityFilter,AutoReservePurchLine → InsertReservationEntries,AutoReservePurchLine → SetQtyToReserveDownToTrackedQuantity, …) - Codeunit 99000830 “Create Reserv. Entry” (12 calls:
CreateReservation → CreateReservEntry,CreateReservation → CreateReservEntryFor,CreateReservation → CreateReservEntryFrom, …) - Codeunit 6500 “Item Tracking Management” (4 calls:
CallItemTracking → ComposeRowID,DeleteInvoiceSpecFromHeader → DeleteInvoiceSpecFromHeader,DeleteInvoiceSpecFromLine → DeleteInvoiceSpecFromLine, …) - Codeunit 99000831 “Reservation Engine Mgt.” (2 calls:
TransferPurchLineToItemJnlLine → InitRecordSet,TransferPurchLineToItemJnlLine → NEXTRecord) - Page 518 “Purchase Lines” (2 calls:
OnLookupLine → (object),ShowSourceLines → (object)) - Codeunit 5402 “Unit of Measure Management” (1 call:
RetrieveInvoiceSpecification2 → QtyRndPrecision) - Codeunit 99000841 “Item Ledger Entry-Reserve” (1 call:
ItemLedgerEntryOnDrillDownTotalQuantity → DrillDownTotalQuantity) - Page 49 “Purchase Quote” (1 call:
OnLookupDocument → (object)) - Page 50 “Purchase Order” (1 call:
OnLookupDocument → (object)) - Page 51 “Purchase Invoice” (1 call:
OnLookupDocument → (object)) - Page 52 “Purchase Credit Memo” (1 call:
OnLookupDocument → (object)) - Page 6640 “Purchase Return Order” (1 call:
OnLookupDocument → (object))
Called by
- Table 39 “Purchase Line” (6 calls:
BlockDynamicTracking → Block,CheckIfPurchaseLineMeetsReservedFromStockSetting → GetReservedQtyFromInventory,OnDelete → DeleteLine, …) - Codeunit 90 “Purch.-Post” (4 calls:
DeleteAfterPosting → DeleteInvoiceSpecFromHeader,InsertTrackingSpecification → UpdateItemTrackingAfterPosting,PostItemJnlLine → TransferPurchLineToItemJnlLine, …) - Codeunit 80 “Sales-Post” (3 calls:
TransferReservFromPurchLine → SetOverruleItemTracking,TransferReservFromPurchLine → TransferPurchLineToItemJnlLine,UpdateAssociatedPurchaseOrder → UpdateItemTrackingAfterPosting) - Codeunit 96 “Purch.-Quote to Order” (2 calls:
TransferQuoteToOrderLines → TransferPurchLineToPurchLine,TransferQuoteToOrderLines → VerifyQuantity) - Codeunit 99000973 “Purch. Availability Mgt.” (2 calls:
TransferFromPurchase → ReservQuantity,TransferFromPurchReturn → ReservQuantity) - Page 54 “Purchase Order Subform” (2 calls:
OnDeleteRecord → DeleteLine,OnDeleteRecord → DeleteLineConfirm) - Page 55 “Purch. Invoice Subform” (2 calls:
OnDeleteRecord → DeleteLine,OnDeleteRecord → DeleteLineConfirm) - Page 6641 “Purchase Return Order Subform” (2 calls:
OnDeleteRecord → DeleteLine,OnDeleteRecord → DeleteLineConfirm) - Page 97 “Purchase Quote Subform” (2 calls:
OnDeleteRecord → DeleteLine,OnDeleteRecord → DeleteLineConfirm) - Page 98 “Purch. Cr. Memo Subform” (2 calls:
OnDeleteRecord → DeleteLine,OnDeleteRecord → DeleteLineConfirm) - Table 38 “Purchase Header” (2 calls:
GetQtyReservedFromStockState → GetReservedQtyFromInventory,UpdatePurchLinesByFieldNo → VerifyChange) - Codeunit 20438 “Qlty. Warehouse Integration” (1 call:
CollectSourceItemTracking → FindReservEntry) - Codeunit 5817 “Undo Posting Management” (1 call:
PurchLineReserveVerifyQuantity → VerifyQuantity) - Codeunit 5826 “Matched Order Line Mgmt.” (1 call:
ShowItemTrackingEntriesForPurchaseInvoice → CallItemTracking) - Codeunit 97 “Blanket Purch. Order to Order” (1 call:
OnRun → TransferPurchLineToPurchLine) - Codeunit 99000815 “Reservation-Check Date Confl.” (1 call:
PurchLineCheck → FindReservEntry) - Table 7317 “Warehouse Receipt Line” (1 call:
OpenItemTrackingLines → CallItemTracking) - Table 7321 “Warehouse Shipment Line” (1 call:
OpenItemTrackingLines → CallItemTracking)
Recent changes
- 2026-07-31 #9783 [Master] Purchase Return Order Posting Fails for Manually Reserved Lot-Tracked Items with Exact Cost Reversing Mandatory Enabled: “Applies-to Entry must not be filled out when reservations exist in Item Ledger Entry Entry No.=‘XXX’” (main, BC30, fix)
Deprecations
- procedure OnSetSourceForReservationOnBeforeUpdateReservation: Pending 27.0 (#if not CLEAN27), “This event is never raised.”
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: "Purch. Line-Reserve"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.