---
id: object/codeunit/99000815
type: object
title: Codeunit 99000815 "Reservation-Check Date Confl."
summary: Codeunit 99000815 "Reservation-Check Date Confl." in Base Application (Microsoft.Inventory.Tracking). 26 public procedures, 27 events. Present since at least BC23, still in BC30, changed in BC25-28, BC30.
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: d78d1bf2b3b387e975e70d39b6cbb7fba86ff8722a9cb1078ab8f61a8ba7d230
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Tracking/ReservationCheckDateConfl.Codeunit.al
    title: src/Layers/W1/BaseApp/Inventory/Tracking/ReservationCheckDateConfl.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/12066
object_type: codeunit
object_id: 99000815
name: Reservation-Check Date Confl.
namespace: Microsoft.Inventory.Tracking
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "25"
  - "26"
  - "27"
  - "28"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 55
  events: 27
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 1
  calls: 10
  called_by: 6
  implements: 0
---

# Codeunit 99000815 "Reservation-Check Date Confl."

> Codeunit 99000815 "Reservation-Check Date Confl." in Base Application (Microsoft.Inventory.Tracking). 26 public procedures, 27 events. Present since at least BC23, still in BC30, changed in BC25-28, BC30.

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

## Events published

- `OnBeforeCheckProdOrderLineDateConflict(DueDate: Date; var ForceRequest: Boolean; var ReservationEntry: Record "Reservation Entry"; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; NewDate: Date; var IsHandled: Boolean)` (integration)
- `OnSalesLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; SalesLine: Record "Sales Line"; var IsHandled: Boolean)` (integration)
- `OnPurchLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; PurchaseLine: Record "Purchase Line"; var IsHandled: Boolean)` (integration)
- `OnReqLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; RequisitionLine: Record "Requisition Line"; var IsHandled: Boolean)` (integration)
- `OnItemJnlLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line"; var IsHandled: Boolean)` (integration)
- `OnProdOrderLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnProdOrderComponentCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnPlanningComponentCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; PlanningComponent: Record "Planning Component"; var IsHandled: Boolean)` (integration)
- `OnAssemblyHeaderCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnAssemblyLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnAfterDateConflict(var ReservationEntry: Record "Reservation Entry"; var Date: Date; var IsConflict: Boolean; var ForceRequest: Boolean)` (integration)
- `OnBeforeDateConflict(var ReservationEntry: Record "Reservation Entry"; var Date: Date; var IsConflict: Boolean; var IsHandled: Boolean)` (integration)
- `OnTransLineCheckOnBeforeUpdateDate(var ReservationEntry: Record "Reservation Entry"; TransferLine: Record "Transfer Line"; Direction: Option; var IsHandled: Boolean)` (integration)
- `OnUpdateDateFilterReservEntryLoop(var ReservationEntry: Record "Reservation Entry"; var ForceModifyShipmentDate: Boolean; Date: Date)` (integration)
- `OnSalesLineCheckOnBeforeIssueError(ReservationEntry: Record "Reservation Entry"; SalesLine: Record "Sales Line"; var IsHandled: Boolean; var ForceRequest: Boolean)` (integration)
- `OnPurchLineCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; PurchaseLine: Record "Purchase Line"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration)
- `OnReqLineCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; RequisitionLine: Record "Requisition Line"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration)
- `OnProdOrderComponentCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnItemJnlLineCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration)
- `OnAssemblyHeaderCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnTransferLineCheckOutboundOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; TransferLine: Record "Transfer Line"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration)
- `OnTransferLineCheckInboundOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; TransferLine: Record "Transfer Line"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration)
- `OnPlanningComponentCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; PlanningComponent: Record "Planning Component"; var ForceRequest: Boolean; var IsHandled: Boolean)` (integration)
- `OnSameProdOrderAutoReserve(var FilterReservationEntry: Record "Reservation Entry"; var Result: Boolean)` (integration)
  - subscribers: [Codeunit 99000849 "Mfg. ReservCheckDateConfl"](../codeunit/99000849.md) OnSameProdOrderAutoReserve
- `OnReqLineCheckOnBeforeClearSurplus(var ReservMgt: Codeunit "Reservation Management"; var IsHandled: Boolean)` (integration)
- `OnDateConflictOnAfterSetReservationEntry2Filters(var ReservationEntry2: Record "Reservation Entry"; Date: Date; var ForceRequest: Boolean)` (integration)

## Procedures

- `SalesLineCheck(SalesLine: Record "Sales Line"; ForceRequest: Boolean)`
- `PurchLineCheck(PurchaseLine: Record "Purchase Line"; ForceRequest: Boolean)`
- `ItemJnlLineCheck(ItemJournalLine: Record "Item Journal Line"; ForceRequest: Boolean)`
- `ReqLineCheck(RequisitionLine: Record "Requisition Line"; ForceRequest: Boolean)`
- `ProdOrderLineCheck(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; ForceRequest: Boolean)` (obsolete 27.0: Moved to codeunit "Mfg. ReservCheckDateConfl")
- `ProdOrderComponentCheck(ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component"; ForceRequest: Boolean; IsCritical: Boolean): Boolean` (obsolete 27.0: Moved to codeunit "Mfg. ReservCheckDateConfl")
- `AssemblyHeaderCheck(AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; ForceRequest: Boolean)` (obsolete 27.0: Moved to codeunit "Asm. ReservCheckDateConfl")
- `AssemblyLineCheck(AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; ForceRequest: Boolean)` (obsolete 27.0: Moved to codeunit "Asm. ReservCheckDateConfl")
- `PlanningComponentCheck(PlanningComponent: Record "Planning Component"; ForceRequest: Boolean)`
- `TransferLineCheck(TransferLine: Record "Transfer Line")`
- `JobPlanningLineCheck(JobPlanningLine: Record "Job Planning Line"; ForceRequest: Boolean)`
- `InvtDocLineCheck(InvtDocumentLine: Record "Invt. Document Line"; ForceRequest: Boolean): Boolean`
- `UpdateDate(var FilterReservationEntry: Record "Reservation Entry"; Date: Date)`
- `DateConflict(Date: Date; var ForceRequest: Boolean; var ReservationEntry1: Record "Reservation Entry"): Boolean`
- `IssueError(NewDate: Date)`
- `IssueError(var CalcReservEntry: Record "Reservation Entry"; NewDate: Date)`
- `IssueWarning(NewDate: Date)`
- `IssueWarning(var CalcReservEntry: Record "Reservation Entry"; NewDate: Date)`
- `CalcReservQty(var CalcReservEntry: Record "Reservation Entry"; NewDate: Date): Decimal` (internal)
- `RunOnBeforeCheckProdOrderLineDateConflict(DueDate: Date; var ForceRequest: Boolean; var ReservationEntry2: Record "Reservation Entry"; var IsHandled: Boolean)` (internal)
- `RunOnProdOrderLineCheckOnBeforeUpdateDate(var ReservationEntry2: Record "Reservation Entry"; ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var IsHandled: Boolean)` (internal)
- `RunOnProdOrderComponentCheckOnBeforeUpdateDate(var ReservationEntry2: Record "Reservation Entry"; ProdOrderComp: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var IsHandled: Boolean)` (internal)
- `RunOnAssemblyHeaderCheckOnBeforeUpdateDate(var ReservationEntry2: Record "Reservation Entry"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; var IsHandled: Boolean)` (internal)
- `RunOnAssemblyLineCheckOnBeforeUpdateDate(var ReservationEntry2: Record "Reservation Entry"; AssemblyLine: Record Microsoft.Assembly.Document."Assembly Line"; var IsHandled: Boolean)` (internal)
- `RunOnProdOrderComponentCheckOnBeforeIssueError(var ReservationEntry2: Record "Reservation Entry"; ProdOrderComponent: Record Microsoft.Manufacturing.Document."Prod. Order Component"; var ForceRequest: Boolean; var IsHandled: Boolean)` (internal)
- `RunOnAssemblyHeaderCheckOnBeforeIssueError(var ReservationEntry: Record "Reservation Entry"; AssemblyHeader: Record Microsoft.Assembly.Document."Assembly Header"; var ForceRequest: Boolean; var IsHandled: Boolean)` (internal)

Plus 2 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"](../codeunit/99000845.md) (24 calls: `InvtDocLineCheck → AutoTrack`, `InvtDocLineCheck → ClearSurplus`, `InvtDocLineCheck → SetReservSource`, …)
- [Codeunit 99000831 "Reservation Engine Mgt."](../codeunit/99000831.md) (4 calls: `UpdateDate → CloseReservEntry`, `UpdateDate → ModifyExpectedReceiptDate`, `UpdateDate → ModifyShipmentDate`, …)
- [Codeunit 99000836 "Transfer Line-Reserve"](../codeunit/99000836.md) (2 calls: `TransferLineCheck → FindInboundReservEntry`, `TransferLineCheck → FindReservEntry`)
- [Codeunit 1032 "Job Planning Line-Reserve"](../codeunit/1032.md) (1 call: `JobPlanningLineCheck → FindReservEntry`)
- [Codeunit 5854 "Invt. Doc. Line-Reserve"](../codeunit/5854.md) (1 call: `InvtDocLineCheck → FindReservEntry`)
- [Codeunit 99000832 "Sales Line-Reserve"](../codeunit/99000832.md) (1 call: `SalesLineCheck → FindReservEntry`)
- [Codeunit 99000833 "Req. Line-Reserve"](../codeunit/99000833.md) (1 call: `ReqLineCheck → FindReservEntry`)
- [Codeunit 99000834 "Purch. Line-Reserve"](../codeunit/99000834.md) (1 call: `PurchLineCheck → FindReservEntry`)
- [Codeunit 99000835 "Item Jnl. Line-Reserve"](../codeunit/99000835.md) (1 call: `ItemJnlLineCheck → FindReservEntry`)
- [Codeunit 99000840 "Plng. Component-Reserve"](../codeunit/99000840.md) (1 call: `PlanningComponentCheck → FindReservEntry`)

## Called by

- [Codeunit 99000849 "Mfg. ReservCheckDateConfl"](../codeunit/99000849.md) (9 calls: `CheckProdOrderLineDateConflict → DateConflict`, `CheckProdOrderLineDateConflict → IssueError`, `ProdOrderComponentCheck → (object)`, …)
- [Codeunit 937 "Asm. ReservCheckDateConfl"](../codeunit/937.md) (8 calls: `AssemblyHeaderCheck → (object)`, `AssemblyHeaderCheck → DateConflict`, `AssemblyHeaderCheck → IssueError`, …)
- [Codeunit 99000842 "Service Line-Reserve"](../codeunit/99000842.md) (3 calls: `ServiceInvLineCheck → DateConflict`, `ServiceInvLineCheck → IssueError`, `ServiceInvLineCheck → UpdateDate`)
- [Table 1003 "Job Planning Line"](../table/1003.md) (1 call: `UpdateReservation → JobPlanningLineCheck`)
- [Table 246 "Requisition Line"](../table/246.md) (1 call: `CheckEndingDate → ReqLineCheck`)
- [Table 5741 "Transfer Line"](../table/5741.md) (1 call: `DateConflictCheck → TransferLineCheck`)

## Recent changes

- 2026-10-02 [#12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026](../../changes/bcapps/12066.md) (main, BC30, obsoletion)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC25-28, BC30

## Deprecations

- procedure RunOnAssemblyHeaderCheckOnBeforeIssueError: guarded (#if not CLEAN27)
- procedure RunOnAssemblyHeaderCheckOnBeforeUpdateDate: guarded (#if not CLEAN27)
- procedure RunOnAssemblyLineCheckOnBeforeUpdateDate: guarded (#if not CLEAN27)
- procedure RunOnBeforeCheckProdOrderLineDateConflict: guarded (#if not CLEAN27)
- procedure RunOnProdOrderComponentCheckOnBeforeIssueError: guarded (#if not CLEAN27)
- procedure RunOnProdOrderComponentCheckOnBeforeUpdateDate: guarded (#if not CLEAN27)
- procedure RunOnProdOrderLineCheckOnBeforeUpdateDate: guarded (#if not CLEAN27)
- procedure AssemblyHeaderCheck: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Asm. ReservCheckDateConfl""
- procedure AssemblyLineCheck: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Asm. ReservCheckDateConfl""
- procedure OnAssemblyHeaderCheckOnBeforeIssueError: Pending 27.0 (#if not CLEAN27), "Moved to codeunit AsmReservCheckDateConfl"
- procedure OnAssemblyHeaderCheckOnBeforeUpdateDate: Pending 27.0 (#if not CLEAN27), "Moved to codeunit AsmReservCheckDateConfl"
- procedure OnAssemblyLineCheckOnBeforeUpdateDate: Pending 27.0 (#if not CLEAN27), "Moved to codeunit AsmReservCheckDateConfl"
- procedure OnBeforeCheckProdOrderLineDateConflict: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Mfg. ReservCheckDateConfl""
- procedure OnProdOrderComponentCheckOnBeforeIssueError: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Mfg. ReservCheckDateConfl""
- procedure OnProdOrderComponentCheckOnBeforeUpdateDate: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Mfg. ReservCheckDateConfl""
- procedure OnProdOrderLineCheckOnBeforeUpdateDate: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Mfg. ReservCheckDateConfl""
- procedure ProdOrderComponentCheck: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Mfg. ReservCheckDateConfl""
- procedure ProdOrderLineCheck: Pending 27.0 (#if not CLEAN27), "Moved to codeunit "Mfg. ReservCheckDateConfl""

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: "Reservation-Check Date Confl.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
