---
id: object/codeunit/99000854
type: object
title: Codeunit 99000854 "Inventory Profile Offsetting"
summary: Codeunit 99000854 "Inventory Profile Offsetting" in Base Application (Microsoft.Inventory.Tracking). 39 public procedures, 215 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: 2342eac9707262637766e18ee43d644ecbbbf10b365f63a8ebd4e7cf33e638ee
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al
    title: src/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.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
    - change/bcapps/9196
    - change/bcapps/10166
    - change/bcapps/9346
object_type: codeunit
object_id: 99000854
name: Inventory Profile Offsetting
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:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 379
  events: 215
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 49
  calls: 11
  called_by: 5
  implements: 0
---

# Codeunit 99000854 "Inventory Profile Offsetting"

> Codeunit 99000854 "Inventory Profile Offsetting" in Base Application (Microsoft.Inventory.Tracking). 39 public procedures, 215 events. Present since at least BC23, still in BC30, changed in BC24-30.

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

## Properties

| Property | Value |
|---|---|
| Permissions | TableData "Reservation Entry" = id |

## Events published

- `OnAfterAdjustPlanLine(var RequisitionLine: Record "Requisition Line"; var SupplyInventoryProfile: Record "Inventory Profile")` (integration)
- `OnAfterAllowScheduleIn(SupplyInvtProfile: Record "Inventory Profile"; TargetDate: Date; var CanReschedule: Boolean)` (integration)
- `OnAfterAllowScheduleOut(SupplyInvtProfile: Record "Inventory Profile"; TargetDate: Date; var CanReschedule: Boolean; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary)` (integration)
- `OnAfterAllowLotAccumulation(SupplyInventoryProfile: Record "Inventory Profile"; DemandDueDate: Date; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var AccumulationOK: Boolean)` (integration)
- `OnAdjustPlanLineAfterValidateQuantity(var ReqLine: Record "Requisition Line"; var SupplyInventoryProfile: Record "Inventory Profile")` (integration)
- `OnAfterCalculatePlanFromWorksheet(var Item: Record Item)` (integration)
- `OnAfterForecastInitDemand(var InventoryProfile: Record "Inventory Profile"; ProductionForecastEntry: Record Microsoft.Manufacturing.Forecast."Production Forecast Entry"; ItemNo: Code[20]; LocationCode: Code[10]; TotalForecastQty: Decimal)` (integration)
- `OnAfterGetRoutingFromProdOrder(var RequisitionLine: Record "Requisition Line")` (integration, obsolete 27.0)
- `OnAfterInitSupply(var InventoryProfile: Record "Inventory Profile"; var StockkeepingUnit: Record "Stockkeeping Unit"; Item: Record Item)` (integration)
  - subscribers: [Codeunit 927 "Assembly Header Invt. Profile"](../codeunit/927.md) OnAfterInitSupply
- `OnAfterTransToChildInvProfile(var ReservEntry: Record "Reservation Entry"; var ChildInvtProfile: Record "Inventory Profile")` (integration)
- `OnAfterDemandToInvProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; var ReservEntry: Record "Reservation Entry"; var NextLineNo: Integer; PlanMRP: Boolean)` (integration)
  - subscribers: [Codeunit 1035 "Job Planning Invt. Profile"](../codeunit/1035.md) OnAfterDemandToInvProfile, [Codeunit 928 "Assembly Line Invt. Profile"](../codeunit/928.md) OnAfterDemandToInvProfile, [Codeunit 99000860 "Plng. Component Invt. Profile"](../codeunit/99000860.md) OnAfterDemandToInvProfile, [Codeunit 99000862 "Sales Line Invt. Profile"](../codeunit/99000862.md) OnAfterDemandToInvProfile, [Codeunit 99000863 "Service Line Invt. Profile"](../codeunit/99000863.md) OnAfterDemandToInvProfile, [Codeunit 99000868 "Prod. Order Comp. Invt.Profile"](../codeunit/99000868.md) OnAfterDemandToInvProfile
- `OnAfterSetFiltersForSisterInventoryProfile(CurrentInventoryProfile: Record "Inventory Profile"; var SisterInventoryProfile: Record "Inventory Profile")` (integration)
- `OnAfterShallSupplyBeClosed(StockkeepingUnit: Record "Stockkeeping Unit"; SupplyInventoryProfile: Record "Inventory Profile"; DemandDueDate: Date; IsReorderPointPlanning: Boolean; var CloseSupply: Boolean)` (integration)
- `OnAfterUpdateAppliedItemEntry(var ReservationEntry: Record "Reservation Entry"; var TempItemTrackingEntry: Record "Reservation Entry"; RequisitionLine: Record "Requisition Line")` (integration)
- `OnAfterMatchAttributes(var SupplyInvtProfile: Record "Inventory Profile"; var DemandInvtProfile: Record "Inventory Profile"; var TempTrkgReservEntry: Record "Reservation Entry" temporary)` (integration)
- `OnAfterPlanItemNextStateStartOver(var SupplyInvtProfile: Record "Inventory Profile"; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnAfterSupplyToInvProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; var ToDate: Date; var ReservEntry: Record "Reservation Entry" temporary; var NextLineNo: Integer; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var TempTransferStockkeepingUnit: Record "Stockkeeping Unit" temporary)` (integration)
  - subscribers: [Codeunit 927 "Assembly Header Invt. Profile"](../codeunit/927.md) OnAfterSupplyToInvProfile, [Codeunit 99000864 "Purchase Line Invt. Profile"](../codeunit/99000864.md) OnAfterSupplyToInvProfile, [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnAfterSupplyToInvProfile
- `OnAfterUnfoldItemTracking(var ParentInvProfile: Record "Inventory Profile"; var ChildInvProfile: Record "Inventory Profile")` (integration)
- `OnBeforeSupplyToInvProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; var ToDate: Date; var ReservEntry: Record "Reservation Entry"; var NextLineNo: Integer)` (integration)
- `OnBeforeValidateUOMFromInventoryProfile(var RequisitionLine: Record "Requisition Line"; InventoryProfile: Record "Inventory Profile"; StockkeepingUnit: Record "Stockkeeping Unit"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertTempTracking(var FromReservationEntry: Record "Reservation Entry"; var ToReservationEntry: Record "Reservation Entry"; var IsHandled: Boolean)` (integration)
- `OnAfterSetQtyToHandle(var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnAfterSetOrderPriority(var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnAfterSetProdOrder(var ReqLine: Record "Requisition Line"; var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var InventoryProfile: Record "Inventory Profile")` (integration, obsolete 27.0)
- `OnAfterSetPurchase(var PurchaseLine: Record "Purchase Line"; ReqLine: Record "Requisition Line"; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnSetPurchaseOnBeforeTransferFromPurchaseLine(var RequisitionLine: Record "Requisition Line"; var PurchaseLine: Record "Purchase Line"; var DocumentType: Enum "Purchase Document Type"; var PurchaseLineExists: Boolean)` (integration)
- `OnAfterShouldDeleteReservEntry(ReservationEntry: Record "Reservation Entry"; ToDate: Date; var DeleteCondition: Boolean; TemplateName: Code[10]; WorksheetName: Code[10])` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnAfterShouldDeleteReservEntry
- `OnAfterTransferAttributes(var ToInventoryProfile: Record "Inventory Profile"; var FromInventoryProfile: Record "Inventory Profile"; var TempSKU: Record "Stockkeeping Unit" temporary; SpecificLotTracking: Boolean; SpecificSNTracking: Boolean)` (integration)
- `OnBeforeAdjustPlanLine(var RequisitionLine: Record "Requisition Line"; var SupplyInventoryProfile: Record "Inventory Profile")` (integration)
- `OnBeforeBlanketOrderConsumpFind(var BlanketSalesLine: Record "Sales Line")` (integration)
- `OnBeforeBlanketOrderConsump(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; ToDate: Date; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckScheduleOut(var InventoryProfile: Record "Inventory Profile"; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; BucketSize: DateFormula; var DampenersDays: Integer)` (integration)
- `OnBeforeCheckUpdateInventoryProfileMaxQuantity(var InventoryProfile: Record "Inventory Profile"; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnBeforeCommitTracking(TempReservationEntry: Record "Reservation Entry" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeCommonBalancing(var TempSKU: Record "Stockkeeping Unit" temporary; var DemandInvtProfile: Record "Inventory Profile"; var SupplyInvtProfile: Record "Inventory Profile"; PlanningStartDate: Date; ToDate: Date; var NewSupplyHasTakenOver: Boolean; var NeedOfPublishSurplus: Boolean; var FutureSupplyWithinLeadtime: Decimal; var OverflowLevel: Decimal)` (integration)
- `OnBeforeCreateSupply(var SupplyInvtProfile: Record "Inventory Profile"; var DemandInvtProfile: Record "Inventory Profile")` (integration)
- `OnBeforeDecreaseQty(var SupplyInvtProfile: Record "Inventory Profile"; ReduceQty: Decimal; var SKU: Record "Stockkeeping Unit"; var IsHandled: Boolean)` (integration)
- `OnBeforeDemandInvtProfileInsert(var InventoryProfile: Record "Inventory Profile"; StockkeepingUnit: Record "Stockkeeping Unit")` (integration)
- `OnBeforeDemandToInvProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnBeforeForecastConsumption(var DemandInvtProfile: Record "Inventory Profile"; var Item: Record Item; OrderDate: Date; ToDate: Date; var UpdatedOrderDate: Date; var IsHandled: Boolean; var CurrForecast: Code[10]; var ExcludeForecastBefore: Date; var UseParm: Boolean; var LineNo: Integer)` (integration)
- `OnBeforeIncreaseQty(var SupplyInvtProfile: Record "Inventory Profile"; NeededQty: Decimal; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnBeforeInsertEmergencyOrderSupply(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean; var PlanningStartDate: Date)` (integration)
- `OnBeforeIsTrkgForSpecialOrderOrDropShpt(ReservEntry: Record "Reservation Entry"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeMaintainPlanningLine(var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; NewPhase: Option " ","Line Created","Routing Created",Exploded,Obsolete; Direction: Option Forward,Backward; var TrackingReservEntry: Record "Reservation Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeTempTransferSKUInsert(var TempTransferSKU: Record "Stockkeeping Unit" temporary; TransferLine: Record "Transfer Line")` (integration)
- `OnBeforeTrack(var FromProfile: Record "Inventory Profile"; var ToProfile: Record "Inventory Profile"; IsSurplus: Boolean; IssueActionMessage: Boolean; Binding: Enum "Reservation Binding")` (integration)
- `OnBeforeTransItemLedgEntryToProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; var ItemLedgerEntry: Record "Item Ledger Entry"; var IsHandled: Boolean; var LineNo: Integer)` (integration)
- `OnBeforeTransShptTransLineToProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; LineNo: Integer; var IsHandled: Boolean; var TransferLine: Record "Transfer Line")` (integration)
- `OnBeforeTransRcptTransLineToProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; ToDate: Date)` (integration)
- `OnBeforeMatchAttributesDemandApplicationLoop(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean)` (integration)
- `OnBeforeUpdateActionMessageOnReschedule(var InventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean)` (integration)
- `OnBeforeUnfoldItemTracking(var ParentInvProfile: Record "Inventory Profile"; var ChildInvProfile: Record "Inventory Profile"; var TempItemTrkgEntry: Record "Reservation Entry" temporary)` (integration)
- `OnCreateSupplyOnBeforeSupplyInvtProfileInsert(var SupplyInvtProfile: Record "Inventory Profile"; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnCreateSupplyForwardOnBeforeSupplyInvtProfileInsert(var SupplyInvtProfile: Record "Inventory Profile"; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnCreateSupplyForInitialSafetyStockWarningOnBeforeSupplyInventoryProfileInsert(var SupplyInvtProfile: Record "Inventory Profile"; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnEndMatchAttributesDemandApplicationLoop(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean)` (integration)
- `OnStartOfMatchAttributesDemandApplicationLoop(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean)` (integration)
- `OnScheduleAllOutChangesSequenceOnBeforeSupplyInvtProfileInsert(var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnBeforePrePlanDateApplicationLoop(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var LastProjectedInventory: Decimal)` (integration)
- `OnStartOfPrePlanDateApplicationLoop(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var IncrementLastProjectedInventory: Boolean)` (integration)
- `OnBeforePrePlanDateDemandProc(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean)` (integration)
- `OnBeforePrePlanDateSupplyProc(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean)` (integration)
- `OnBeforePlanItemNextStateMatchDates(var DemandInventoryProfile: Record "Inventory Profile"; var SupplyInventoryProfile: Record "Inventory Profile"; NextState: Option; var IsHandled: Boolean; var ShouldCalcNewSupplyDate: Boolean)` (integration)
- `OnAfterPrePlanDateSupplyProc(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var TempSKU: Record "Stockkeeping Unit" temporary; var TempTrkgReservEntry: Record "Reservation Entry" temporary; var ReqLine: Record "Requisition Line"; var DoInsertInsertSupplyForEmergencyOrder: Boolean)` (integration)
- `OnAfterRecalculateReqLine(var RequisitionLine: Record "Requisition Line")` (integration)
- `OnBeforePlanStepSettingOnStartOver(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var NextState: Option; var IsHandled: Boolean)` (integration)
- `OnBeforeCalculatePlanFromWorksheet(var Item: Record Item; ManufacturingSetup2: Record Microsoft.Manufacturing.Setup."Manufacturing Setup"; TemplateName: Code[10]; WorksheetName: Code[10]; OrderDate: Date; ToDate: Date; MRPPlanning: Boolean; RespectPlanningParm: Boolean)` (integration, obsolete 27.0)
- `OnBeforeCalculatePlanFromWorksheet2(var Item: Record Item; TemplateName: Code[10]; WorksheetName: Code[10]; OrderDate: Date; ToDate: Date; MRPPlanning: Boolean; RespectPlanningParm: Boolean)` (integration)
- `OnAfterInsertSafetyStockDemands(var DemandInvtProfile: Record "Inventory Profile"; xDemandInvtProfile: Record "Inventory Profile"; var TempSafetyStockInvtProfile: Record "Inventory Profile" temporary; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var PlanningStartDate: Date; var PlanToDate: Date)` (integration)
- `OnFindCombinationAfterAssignTempSKU(var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; InventoryProfile: Record "Inventory Profile")` (integration)
- `OnBeforePostInvChgReminder(var InventoryProfileChangeReminder: Record "Inventory Profile"; var InventoryProfile: Record "Inventory Profile"; PostOnlyMinimum: Boolean)` (integration)
- `OnAfterPlanItemNextStateCloseDemand(var SupplyInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean)` (integration)
- `OnAfterPostInvChgReminder(var InventoryProfileChangeReminder: Record "Inventory Profile"; var InventoryProfile: Record "Inventory Profile"; PostOnlyMinimum: Boolean)` (integration)
- `OnBeforeAdjustReorderQty(OrderQty: Decimal; var SKU: Record "Stockkeeping Unit"; SupplyLineNo: Integer; MinQty: Decimal; var DeltaQty: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeTempSKUInsert(var TempSKU: Record "Stockkeeping Unit"; var PlanningGetParameters: Codeunit "Planning-Get Parameters")` (integration)
- `OnEndOfPrePlanDateApplicationLoop(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean)` (integration)
- `OnMaintainPlanningLineOnAfterReqLineInsert(var RequisitionLine: Record "Requisition Line")` (integration)
- `OnMaintainPlanningLineOnBeforeReqLineInsert(var RequisitionLine: Record "Requisition Line"; var SupplyInvtProfile: Record "Inventory Profile"; PlanToDate: Date; CurrentForecast: Code[10]; NewPhase: Option " ","Line Created","Routing Created",Exploded,Obsolete; Direction: Option Forward,Backward; var DemandInvtProfile: Record "Inventory Profile"; ExcludeForecastBefore: Date)` (integration)
- `OnPlanItemNextStateCloseDemandOnBeforeDemandInvtProfileDelete(DemandInventoryProfile: Record "Inventory Profile"; RequisitionLine: Record "Requisition Line")` (integration)
- `OnPlanItemOnBeforeSumDemandInvtProfile(DemandInvtProfile: Record "Inventory Profile"; var IsHandled: Boolean; PlanningStartDate: Date; var LastProjectedInventory: Decimal; var LastAvailableInventory: Decimal)` (integration)
- `OnPlanItemOnBeforePlanThisSKULoop(var StockkeepingUnit: Record "Stockkeeping Unit"; var DemandInventoryProfile: Record "Inventory Profile")` (integration)
- `OnPlanItemOnBeforePlanThisSKULoopIteration(var StockkeepingUnit: Record "Stockkeeping Unit"; var NextState: Option; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var LotAccumulationPeriodStartDate: Date)` (integration)
- `OnPlanItemOnBeforeSumSupplyInvtProfile(SupplyInvtProfile: Record "Inventory Profile"; var IsHandled: Boolean; var LastProjectedInventory: Decimal; var LastAvailableInventory: Decimal)` (integration)
- `OnPlanItemAfterCalcIsReorderPointPlanning(var TempSKU: Record "Stockkeeping Unit"; var IsReorderPointPlanning: Boolean; var RequisitionLine: Record "Requisition Line"; var PlanningTransparency: Codeunit "Planning Transparency"; PlanningResilicency: Boolean; var CurrTemplateName: Code[10]; var CurrWorksheetName: Code[10]; var PlanningStartDate: Date)` (integration)
- `OnUpdateAppliedItemEntryOnBeforeFindApplEntry(var TempItemTrackingEntry: Record "Reservation Entry"; var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnBeforeMaintainProjectedInventory(var ReminderInvtProfile: Record "Inventory Profile"; AtDate: Date; var LastProjectedInventory: Decimal; var LatestBucketStartDate: Date; var ROPHasBeenCrossed: Boolean; var IsHandled: Boolean)` (integration)
- `OnMaintainPlanningLineOnAfterLineCreated(var SupplyInvtProfile: Record "Inventory Profile"; var RequisitionLine: Record "Requisition Line")` (integration)
- `OnMaintainPlanningLineOnBeforeCreateDemandInvtProfileForTransfer(var RequisitionLine: Record "Requisition Line"; var SupplyInventoryProfile: Record "Inventory Profile"; var TempTrackingReservationEntry: Record "Reservation Entry" temporary; var InventoryProfileLineNo: Integer; var IsHandled: Boolean)` (integration)
- `OnMaintainPlanningLineOnBeforeSupplyInvtProfileInsert(var SupplyInventoryProfile: Record "Inventory Profile"; CurrentSupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnCalculatePlanFromWorksheetOnAfterPlanItem(CurrTemplateName: Code[10]; CurrWorksheetName: Code[10]; var Item: Record Item; var RequisitionLine: Record "Requisition Line"; var TrackingReservEntry: Record "Reservation Entry")` (integration)
- `OnCalculatePlanFromWorksheetOnAfterForecastConsumption(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; var OrderDate: Date; var ToDate: Date; var LineNo: Integer)` (integration)
- `OnCalcReorderQtyOnCaseElse(var QtyToOrder: Decimal; NeededQty: Decimal; ProjectedInventory: Decimal; SupplyLineNo: Integer; TempSKU: Record "Stockkeeping Unit"; PlanningResilicency: Boolean; var IsHandled: Boolean)` (integration)
- `OnForecastConsumptionOnBeforeFindDemandInvtProfile(var DemandInventoryProfile: Record "Inventory Profile"; ComponentForecast: Boolean)` (integration)
- `OnForecastConsumptionOnAfterCalcDueDate(var DemandInventoryProfile: Record "Inventory Profile"; TotalForecastQty: Decimal; ForecastEntry: Record Microsoft.Manufacturing.Forecast."Production Forecast Entry"; NextForecastEntry: Record Microsoft.Manufacturing.Forecast."Production Forecast Entry"; var Item: Record Item; OrderDate: Date; ToDate: Date)` (integration)
- `OnForecastConsumptionOnAfterSetSalesSourceTypeFilter(var DemandInventoryProfile: Record "Inventory Profile")` (integration)
  - subscribers: [Codeunit 99000863 "Service Line Invt. Profile"](../codeunit/99000863.md) OnForecastConsumptionOnAfterSetSalesSourceTypeFilter
- `OnForecastConsumptionOnAfterSetPlanningSourceTypeFilter(var DemandInventoryProfile: Record "Inventory Profile")` (integration)
  - subscribers: [Codeunit 928 "Assembly Line Invt. Profile"](../codeunit/928.md) OnForecastConsumptionOnAfterSetPlanningSourceTypeFilter
- `OnFindReplishmentLocationOnBeforeFindSKU(var StockkeepingUnit: Record "Stockkeeping Unit")` (integration)
- `OnFindNextSKUOnAfterAssignTempSKU(var TempSKU: Record "Stockkeeping Unit" temporary; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnMaintainPlanningLineOnBeforeAdjustPlanLine(var RequisitionLine: Record "Requisition Line"; InventoryProfile: Record "Inventory Profile"; StockkeepingUnit: Record "Stockkeeping Unit")` (integration)
- `OnMaintainPlanningLineOnBeforeValidateNo(var RequisitionLine: Record "Requisition Line"; InventoryProfile: Record "Inventory Profile"; StockkeepingUnit: Record "Stockkeeping Unit")` (integration)
  - subscribers: [Codeunit 927 "Assembly Header Invt. Profile"](../codeunit/927.md) OnMaintainPlanningLineOnBeforeValidateNo, [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnMaintainPlanningLineOnBeforeValidateNo
- `OnMaintainPlanningLineOnAfterValidateFieldsForNewReqLine(var RequisitionLine: Record "Requisition Line"; InventoryProfile: Record "Inventory Profile"; StockkeepingUnit: Record "Stockkeeping Unit")` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnMaintainPlanningLineOnAfterValidateFieldsForNewReqLine
- `OnMaintainPlanningLineOnAfterSetSourceForNotNewReqLine(var RequisitionLine: Record "Requisition Line"; var InventoryProfile: Record "Inventory Profile")` (integration)
  - subscribers: [Codeunit 927 "Assembly Header Invt. Profile"](../codeunit/927.md) OnMaintainPlanningLineOnAfterSetSourceForNotNewReqLine, [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnMaintainPlanningLineOnAfterSetSourceForNotNewReqLine
- `OnPrepareTempTrackingOnBeforeInsertTempTracking(var FromReservEntry: Record "Reservation Entry"; var ToReservEntry: Record "Reservation Entry"; IsSurplus: Boolean)` (integration)
- `OnSetAcceptActionOnBeforeAcceptActionMsg(var RequisitionLine: Record "Requisition Line"; var AcceptActionMsg: Boolean; var PlanningTransparency: Codeunit "Planning Transparency")` (integration)
  - subscribers: [Codeunit 927 "Assembly Header Invt. Profile"](../codeunit/927.md) OnSetAcceptActionOnBeforeAcceptActionMsg
- `OnAdjustTransferDatesOnBeforeTransferReqLineModify(var RequisitionLine: Record "Requisition Line")` (integration)
- `OnBeforeIncreaseQtyToMeetDemand(var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; CheckSourceType: Boolean; var Result: Boolean; var IsHandled: Boolean; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary)` (integration)
- `OnBeforeInsertPlanningComponent(var PlanningComponent: Record "Planning Component")` (integration)
- `OnAfterCalcOrderQty(TempSKU: Record "Stockkeeping Unit" temporary; NeededQty: Decimal; ProjectedInventory: Decimal; SupplyLineNo: Integer; var QtyToOrder: Decimal)` (integration)
- `OnAfterGetComponents(var RequisitionLine: Record "Requisition Line")` (integration, obsolete 27.0)
- `OnBeforeInsertInitialSafetyStockWarningSupply(var SupplyInvtProfile: Record "Inventory Profile"; var LastAvailableInventory: Decimal; var LastProjectedInventory: Decimal; PlanningStartDate: Date; RespectPlanningParm: Boolean; var IsReorderPointPlanning: Boolean; var IsHandled: Boolean)` (integration)
- `OnCalculatePlanFromWorksheetOnBeforeUnfoldItemTracking(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; ToDate: Date; var LineNo: Integer; var TempTrkgReservEntry: Record "Reservation Entry" temporary)` (integration)
- `OnBeforeAdjustTransferDates(TransferReqLine: Record "Requisition Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeFillSkUBuffer(var SKU: Record "Stockkeeping Unit"; var TempSKU: Record "Stockkeeping Unit" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertInventoryProfile(RequisitionLine: Record "Requisition Line"; var IsHandled: Boolean)` (integration)
- `OnPlanItemOnAfterTempSKULoop(var TempSKU: Record "Stockkeeping Unit"; var ReqLine: Record "Requisition Line")` (integration)
- `OnSyncTransferDemandWithReqLineOnAfterSetFilters(var TransferReqLine: Record "Requisition Line"; var InventoryProfile: Record "Inventory Profile"; LocationCode: Code[10]; CurrTemplateName: Code[10]; CurrWorksheetName: Code[10])` (integration)
- `OnFindCombinationOnBeforeSKUFindSet(var SKU: Record "Stockkeeping Unit"; var Item: Record Item)` (integration)
- `OnFindCombinationOnBeforeFilterDemandAndSupply(var DemandInvtProfile: Record "Inventory Profile"; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnAfterPlanItemSetInvtProfileFilters(var DemandInvtProfile: Record "Inventory Profile"; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnPlanItemOnBeforeTempSKUFind(var TempSKU: Record "Stockkeeping Unit" temporary; var PlanningStartDate: Date)` (integration)
- `OnAfterTrack(FromProfile: Record "Inventory Profile"; ToProfile: Record "Inventory Profile"; IsSurplus: Boolean; IssueActionMessage: Boolean; Binding: Enum "Reservation Binding")` (integration)
- `OnAfterTransferPlanningParameters(var SKU: Record "Stockkeeping Unit")` (integration)
- `OnBeforeInsertTempSKU(var TempSKU: Record "Stockkeeping Unit" temporary; var IsHandled: Boolean)` (integration)
- `OnAfterFindCombination(var DemandInvtProfile: Record "Inventory Profile"; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnAfterInitVariables(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item)` (integration)
- `OnFindCombinationOnBeforeSetState(var TempSKU: Record "Stockkeeping Unit" temporary; var Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnGetRoutingOnAfterSetResiliencyOn(var ReqLine: Record "Requisition Line")` (integration)
- `OnBeforeUpdateReqLineQuantity(var ReqLine: Record "Requisition Line"; var SupplyInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateReqLineOriginalQuantity(var ReqLine: Record "Requisition Line"; var SupplyInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean; TempStockkeepingUnit: Record "Stockkeeping Unit" temporary)` (integration)
- `OnMaintainPlanningLineOnAfterPopulateReqLineFields(var ReqLine: Record "Requisition Line"; var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; NewPhase: Option " ","Line Created","Routing Created",Exploded,Obsolete; Direction: Option Forward,Backward; var TempSKU: Record "Stockkeeping Unit"; CurrTemplateName: Code[10]; CurrWorksheetName: Code[10])` (integration)
- `OnMaintainPlanningLineOnBeforeReqLineModify(var ReqLine: Record "Requisition Line"; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnAfterMaintainPlanningLine(var ReqLine: Record "Requisition Line"; SupplyInvtProfile: Record "Inventory Profile"; NewPhase: Option " ","Line Created","Routing Created",Exploded,Obsolete)` (integration)
- `OnTrackBeforePrepareTempTracking(var TrkgReservEntryArray: array[6] of Record "Reservation Entry"; SplitState: Option; var IsSurplus: Boolean; var IssueActionMessage: Boolean; var Binding: Enum "Reservation Binding")` (integration)
- `OnTransItemLedgEntryToProfileOnBeforeTransferFromItemLedgerEntry(var Item: Record Item; var ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnTransItemLedgEntryToProfileOnAfterTransferFromItemLedgerEntry(var Item: Record Item; var ItemLedgerEntry: Record "Item Ledger Entry"; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnTransItemLedgEntryToProfileOnAfterInsertInventoryProfile(var Item: Record Item; var ItemLedgerEntry: Record "Item Ledger Entry"; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnTransShptTransLineToProfileOnBeforeTransferFromOutboundTransfer(var Item: Record Item; var TransferLine: Record "Transfer Line")` (integration)
- `OnTransShptTransLineToProfileOnAfterTransferFromOutboundTransfer(var Item: Record Item; var TransferLine: Record "Transfer Line"; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnTransShptTransLineToProfileOnAfterInventoryProfileInsert(var Item: Record Item; var TransferLine: Record "Transfer Line"; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnMaintainPlanLineOnAfterAdjustPlanLine(var TempSKU: Record "Stockkeeping Unit" temporary; var RequisitionLine: Record "Requisition Line"; var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; PlanToDate: Date; CurrentForecast: Code[10]; NewPhase: Option " ","Line Created","Routing Created",Exploded,Obsolete; Direction: Option Forward,Backward)` (integration)
- `OnAfterCanDecreaseSupply(InventoryProfile: Record "Inventory Profile"; ReduceQty: Decimal; DampenerQty: Decimal; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnPlanItemOnBeforeSupplyInvtProfileModify(var SupplyInvtProfileP: Record "Inventory Profile")` (integration)
- `OnPlanItemNextStateMatchDatesOnBeforeCheckScheduleOut(var SupplyInvtProfile: Record "Inventory Profile"; var LimitedHorizon: Boolean)` (integration)
- `OnDemandMatchedSupplyOnAfterSetFiltersToInvProfile(var ToInventoryProfile: Record "Inventory Profile"; FromInventoryProfile: Record "Inventory Profile")` (integration)
- `OnBeforeUpdateOriginalDueDate(SupplyInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean)` (integration)
- `OnSetTransferOnBeforeTransferFromTransLine(InventoryProfile: Record "Inventory Profile"; RequisitionLine: Record "Requisition Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateTempSKUForComponentsLocation(var Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnCreateTempSKUForComponentsLocationOnBeforeSetLocationCodeFilter(Item: Record Item; var StockkeepingUnit: Record "Stockkeeping Unit"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateTempSKUForLocation(var TempStockkeeping: Record "Stockkeeping Unit" temporary; LocationCode: Code[10]; var IsHandled: Boolean; ItemNo: Code[20])` (integration)
- `OnInsertSafetyStockDemandsOnBeforeCreateDemand(DemandInvtProfile: Record "Inventory Profile"; var PlanningStartDate: Date; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary)` (integration)
- `OnBeforeCalcMaximumReorderQty(var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var RequisitionLine: Record "Requisition Line"; PlanningResiliency: Boolean; var IsHandled: Boolean)` (integration)
- `OnTransShptTransLineToProfileOnBeforeProcessLine(TransferLine: Record "Transfer Line"; var ShouldProcess: Boolean; var Item: Record Item)` (integration)
- `OnCreateSupplyOnAfterInitSupply(var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile")` (integration)
- `OnFindCombinationOnBeforeCreateTempSKUForLocation(var Item: Record Item; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnPlanItemNextStateCreateSupplyOnAfterCalcNewSupplyDate(var NewSupplyDate: Date; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnTransRcptTransLineToProfileOnBeforeProcessLine(TransferLine: Record "Transfer Line"; var ShouldProcess: Boolean; var Item: Record Item)` (integration)
- `OnTransProdOrderToProfileOnBeforeProcessLine(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var ShouldProcess: Boolean)` (integration, obsolete 27.0)
- `OnMaintainPlanningLineOnAfterCopyDatesToInvtProfile(var SupplyInvtProfile: Record "Inventory Profile"; var RequisitionLine: Record "Requisition Line")` (integration)
- `OnCheckScheduleOutOnNotAllowScheduleOut(var SupplyInvtProfile: Record "Inventory Profile"; var ShouldExitAllowLotAccumulation: Boolean)` (integration)
- `OnMaintainPlanningLineOnAfterCalcPlanLineNo(RequisitionLine: Record "Requisition Line"; var PlanLineNo: Integer)` (integration)
- `OnSetAcceptActionOnCaseRefOrderTypeTransfer(ReqLine: Record "Requisition Line"; var AcceptActionMsg: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckPlanSKU(var StockkeepingUnit: Record "Stockkeeping Unit"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckSupplyAndTrack(var InventoryProfileFromDemand: Record "Inventory Profile"; var InventoryProfileFromSupply: Record "Inventory Profile")` (integration)
- `OnPrepareOrderToOrderLinkOnBeforeInventoryProfileModify(var InventoryProfile: Record "Inventory Profile"; var TempSKU: Record "Stockkeeping Unit" temporary; var IsHandled: Boolean)` (integration)
- `OnPlanItemOnBeforeInitSupply(LastProjectedInventory: Decimal; SupplyWithinLeadtime: Decimal; var TempSKU: Record "Stockkeeping Unit" temporary; var IsHandled: Boolean; var PlanningStartDate: Date)` (integration)
- `OnAfterAdjustReorderQty(OrderQty: Decimal; var SKU: Record "Stockkeeping Unit"; SupplyLineNo: Integer; MinQty: Decimal; var DeltaQty: Decimal)` (integration)
- `OnCheckScheduleOutOnBeforeAllowLotAccumulation(PossibleDate: Date; TargetDate: Date; SupplyInvtProfile: Record "Inventory Profile"; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnBeforeCheckScheduleIn(var InventoryProfile: Record "Inventory Profile"; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; TargetDate: date; var PossibleDate: Date; LimitedHorizon: Boolean; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnPlanItemOnBeforeCreateSupplyForward(var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var TempReminderInventoryProfile: Record "Inventory Profile" temporary; PlanningStartDate: Date; LastAvailableInventory: Decimal; LastProjectedInventory: Decimal; var NewSupplyHasTakenOver: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeFromLotAccumulationPeriodStartDate(LotAccumulationPeriodStartDate: Date; DemandDueDate: Date; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnRescheduleOnBeforeModifySupplyInvtProfile(var SupplyInventoryProfile: Record "Inventory Profile"; TargetDate: Date; TargetTime: Time)` (integration)
- `OnPlanItemOnBeforeInsertSafetyStockDemands(var InventoryProfile: Record "Inventory Profile"; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var DoUpdatePriorities: Boolean)` (integration)
- `OnInsertEmergencyOrderSupplyOnAfterInitSupply(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile")` (integration)
- `OnMatchAttributesOnAfterInitSupply(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile")` (integration)
- `OnBeforePlanItemNextStateMatchQty(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var NextState: Option StartOver,MatchDates,MatchQty,CreateSupply,ReduceSupply,CloseDemand,CloseSupply,CloseLoop; var IsHandled: Boolean)` (integration)
- `OnPlanItemSetInvtProfileFiltersOnBeforeSetCurrentKeys(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean)` (integration)
- `OnPlanItemNextStateCloseSupplyOnBeforeUpdateDemandUntrackedQty(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean)` (integration)
- `OnPlanItemNextStateCloseSupplyOnBeforeProcessActionMessageNew(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var IsHandled: Boolean)` (integration)
- `OnPlanItemNextStateCloseSupplyOnAfterCheckSupplyExist(var SupplyInventoryProfile: Record "Inventory Profile"; SupplyExist: Boolean)` (integration)
- `OnAfterCheckForecastExist(var ProductionForecastEntry: Record Microsoft.Manufacturing.Forecast."Production Forecast Entry"; ExcludeForecastBefore: Date; OrderDate: Date; ToDate: Date; var ForecastExist: Boolean)` (integration)
- `OnAfterSetSupplyPriority(var InventoryProfile: Record "Inventory Profile")` (integration)
  - subscribers: [Codeunit 1035 "Job Planning Invt. Profile"](../codeunit/1035.md) OnAfterSetSupplyPriority, [Codeunit 927 "Assembly Header Invt. Profile"](../codeunit/927.md) OnAfterSetSupplyPriority, [Codeunit 99000833 "Req. Line-Reserve"](../codeunit/99000833.md) OnAfterSetSupplyPriority, [Codeunit 99000837 "Prod. Order Line-Reserve"](../codeunit/99000837.md) OnAfterSetSupplyPriority, [Codeunit 99000860 "Plng. Component Invt. Profile"](../codeunit/99000860.md) OnAfterSetSupplyPriority, [Codeunit 99000862 "Sales Line Invt. Profile"](../codeunit/99000862.md) OnAfterSetSupplyPriority, [Codeunit 99000863 "Service Line Invt. Profile"](../codeunit/99000863.md) OnAfterSetSupplyPriority, [Codeunit 99000864 "Purchase Line Invt. Profile"](../codeunit/99000864.md) OnAfterSetSupplyPriority, [Codeunit 99000868 "Prod. Order Comp. Invt.Profile"](../codeunit/99000868.md) OnAfterSetSupplyPriority
- `OnAfterSetDemandPriority(var InventoryProfile: Record "Inventory Profile")` (integration)
  - subscribers: [Codeunit 1035 "Job Planning Invt. Profile"](../codeunit/1035.md) OnAfterSetDemandPriority, [Codeunit 928 "Assembly Line Invt. Profile"](../codeunit/928.md) OnAfterSetDemandPriority, [Codeunit 99000833 "Req. Line-Reserve"](../codeunit/99000833.md) OnAfterSetDemandPriority, [Codeunit 99000860 "Plng. Component Invt. Profile"](../codeunit/99000860.md) OnAfterSetDemandPriority, [Codeunit 99000862 "Sales Line Invt. Profile"](../codeunit/99000862.md) OnAfterSetDemandPriority, [Codeunit 99000863 "Service Line Invt. Profile"](../codeunit/99000863.md) OnAfterSetDemandPriority, [Codeunit 99000864 "Purchase Line Invt. Profile"](../codeunit/99000864.md) OnAfterSetDemandPriority, [Codeunit 99000868 "Prod. Order Comp. Invt.Profile"](../codeunit/99000868.md) OnAfterSetDemandPriority
- `OnAfterCommitTracking(var TempReservationEntryItemTrkgEntry: Record "Reservation Entry" temporary)` (integration)
- `OnTransRcptTransLineToProfileOnAfterInsertInventoryProfile(var TransferLine: Record "Transfer Line"; var InventoryProfile: Record "Inventory Profile")` (integration)
- `OnPlanItemNextStateMatchDatesOnAfterCalcNewSupplyDate(var NewSupplyDate: Date; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var SupplyInvtProfile: Record "Inventory Profile"; LotAccumulationPeriodStartDate: Date)` (integration)
- `OnAfterFilterDemandSupplyRelatedToSKU(var InventoryProfile: Record "Inventory Profile"; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary)` (integration)
- `OnBeforeTransProdOrderToProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; ToDate: Date; var IsHandled: Boolean)` (integration, obsolete 27.0)
- `OnGetComponentsOnNewActionMessage(var RequisitionLine: Record "Requisition Line")` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnGetComponentsOnNewActionMessage
- `OnGetComponentsOnUpdateForActionMessage(var RequisitionLine: Record "Requisition Line")` (integration)
  - subscribers: [Codeunit 928 "Assembly Line Invt. Profile"](../codeunit/928.md) OnGetComponentsOnUpdateForActionMessage, [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnGetComponentsOnUpdateForActionMessage
- `OnPlanItemOnBeforeCheckSupplyWithinLeadtime(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var TempTrkgReservationEntry: Record "Reservation Entry" temporary; var RequisitionLine: Record "Requisition Line"; var DoCheckSupplyWithinLeadtime: Boolean)` (integration)
- `OnCheckIsLotSpecificTracking(ItemTrackingCode: Record "Item Tracking Code"; var LotSepecificTracking: Boolean)` (integration)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnCheckIsLotSpecificTracking, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnCheckIsLotSpecificTracking
- `OnCheckIsSNSpecificTracking(ItemTrackingCode: Record "Item Tracking Code"; var SNSepecificTracking: Boolean)` (integration)
  - subscribers: [Codeunit 935 "Asm. Item Tracking Mgt."](../codeunit/935.md) OnCheckIsSNSpecificTracking, [Codeunit 99000891 "Mfg. Item Tracking Mgt."](../codeunit/99000891.md) OnCheckIsSNSpecificTracking
- `OnAfterDisableRelations(var RequisitionLine: Record "Requisition Line")` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnAfterDisableRelations
- `OnIsProdOrderPlanned(var ReservEntry: Record "Reservation Entry"; var Planned: Boolean)` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnIsProdOrderPlanned
- `OnGetComponentsAtLocationCode(var LocationCode: Code[10])` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnGetComponentsAtLocationCode
- `OnGetComponents(var RequisitionLine: Record "Requisition Line")` (integration)
- `OnGetRouting(var RequisitionLine: Record "Requisition Line")` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnGetRouting
- `OnFillTempSKUForLocation(var Item: Record Item; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) OnFillTempSKUForLocation
- `OnCreateTempSKUForComponentsLocationOnBeforeItemCopyFilter(var StockkeepingUnit: Record "Stockkeeping Unit"; var Item: Record Item; var IsHandled: Boolean)` (integration)
- `OnAdjustTransferDatesOnAfterInboundWhseTimeSet(var TransferRequisitionLine: Record "Requisition Line"; var Location: Record Location; var InboundWhseTime: DateFormula)` (integration)
- `OnBeforeMatchAttributes(var SupplyInvtProfile: Record "Inventory Profile"; var DemandInvtProfile: Record "Inventory Profile"; var SkipMatchingAttributes: Boolean)` (integration)
  - subscribers: [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) CheckDemandAndSupplyQuantityAreEqual
- `OnPlanItemOnAfterCheckDemandMatchedSupplyPlanThisSKU(var DemandInventoryProfile: Record "Inventory Profile"; var SupplyInventoryProfile: Record "Inventory Profile"; PlanThisSKU: Boolean)` (integration)
- `OnScheduleAllOutChangesSequenceOnBeforeCheckIfRescheduleIsNeeded(SupplyInventoryProfile: Record "Inventory Profile"; var NextRecExists: Integer; var IsHandled: Boolean; NewDate: Date; var NumberofSupplies: Integer)` (integration)
- `OnCreateSupplyForwardOnBeforeLoopQtyToOrderMoreThanZero(var TempStockkeepingUnit: Record "Stockkeeping Unit" temporary; var QtoToOrder: Decimal; SupplyWithinLeadtime: Decimal; var SupplyInvtProfile: Record "Inventory Profile")` (integration)
- `OnCommitTrackingOnAfterInsertReservationEntry(var ReservationEntry: Record "Reservation Entry")` (integration)
- `OnTransRcptTransLineToProfileOnBeforeInsertSupplyInvtProfile(var InventoryProfile: Record "Inventory Profile"; TransferLine: Record "Transfer Line")` (integration)
- `OnPlanItemOnAfterInitLatestBucketStartDate(var LatestBucketStartDate: Date)` (integration)
- `OnAfterInsertEmergencyOrderSupply(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var PlanningStartDate: Date)` (integration)
- `OnPlanItemOnAfterCreateInitialReorderPointSupply(var PlanningStartDate: Date)` (integration)
- `OnBeforeCreateSupplyForInitialSafetyStockWarning(var PlanningStartDate: Date; var SupplyInventoryProfile: Record "Inventory Profile")` (integration)
- `OnBeforeSumUpProjectedSupply(var SupplyInventoryProfile: Record "Inventory Profile"; var FromDate: Date; var ToDate: Date)` (integration)
- `OnBeforeSumUpAvailableSupply(var SupplyInventoryProfile: Record "Inventory Profile"; var FromDate: Date; var ToDate: Date)` (integration)
- `OnPlanItemCalcInitialInventoryOnBeforeChechkIncrementLastProjectedInventory(var SupplyInventoryProfile: Record "Inventory Profile"; var DemandInventoryProfile: Record "Inventory Profile"; var SupplyExists: Boolean; var DemandExists: Boolean; var IncrementLastProjectedInventory: Boolean; var LastProjectedInventory: Decimal)` (integration)
- `OnDeleteTrackingOnAfterSetReservEntryFilters(var ReservationEntry: Record "Reservation Entry"; StockkeepingUnit: Record "Stockkeeping Unit"; ToDate: Date)` (integration)
- `OnAfterCalcInventoryProfileRemainingQty(var InventoryProfile: Record "Inventory Profile"; DocumentNo: Code[20]; LineNo: Integer; var RemQty: Decimal)` (integration)

## Procedures

- `CalculatePlanFromWorksheet(var Item: Record Item; TemplateName: Code[10]; WorksheetName: Code[10]; OrderDate: Date; ToDate: Date; MRPPlanning: Boolean; RespectPlanningParm: Boolean)`
- `CreateTempSKUForLocation(ItemNo: Code[20]; LocationCode: Code[10])`
- `ForecastConsumption(var DemandInvtProfile: Record "Inventory Profile"; var Item: Record Item; OrderDate: Date; ToDate: Date): Date`
- `CheckForecastExist(var ForecastEntry: Record Microsoft.Manufacturing.Forecast."Production Forecast Entry"; OrderDate: Date; ToDate: Date): Boolean`
- `FindReplishmentLocation(var ReplenishmentLocation: Code[10]; var Item: Record Item): Boolean`
- `ScheduleForward(var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; StartingDate: Date)`
- `DecreaseQty(var SupplyInvtProfile: Record "Inventory Profile"; ReduceQty: Decimal; RespectPlanningParm: Boolean): Boolean`
- `CanDecreaseSupply(InventoryProfileSupply: Record "Inventory Profile"; var ReduceQty: Decimal): Boolean`
- `CreateDemand(var DemandInvtProfile: Record "Inventory Profile"; var SKU: Record "Stockkeeping Unit"; NeededQuantity: Decimal; NeededDueDate: Date; OrderRelation: Option Normal,"Safety Stock","Reorder Point")`
- `MaintainPlanningLine(var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; NewPhase: Option " ","Line Created","Routing Created",Exploded,Obsolete; Direction: Option Forward,Backward)`
- `AdjustReorderQty(OrderQty: Decimal; SKU: Record "Stockkeeping Unit"; SupplyLineNo: Integer; MinQty: Decimal): Decimal`
- `CalcReorderQty(NeededQty: Decimal; ProjectedInventory: Decimal; SupplyLineNo: Integer): Decimal`
- `CalcMaximumReorderQty()`
- `CalcOrderQty(NeededQty: Decimal; ProjectedInventory: Decimal; SupplyLineNo: Integer): Decimal`
- `DisableRelations(var ReqLine2: Record "Requisition Line")`
- `TransferReqLineToInvProfiles(var InventoryProfile: Record "Inventory Profile"; var TransferReqLine: Record "Requisition Line")`
- `CheckNewOverflow(var SupplyInvtProfile: Record "Inventory Profile"; InventoryLevel: Decimal; QtyToDecreaseOverFlow: Decimal; LastDueDate: Date)`
- `CreateSupplyForward(var SupplyInvtProfile: Record "Inventory Profile"; DemandInvtProfile: Record "Inventory Profile"; var TempReminderInvtProfile: Record "Inventory Profile" temporary; AtDate: Date; ProjectedInventory: Decimal; var NewSupplyHasTakenOver: Boolean; CurrDueDate: Date)`
- `InitSupply(var SupplyInvtProfile: Record "Inventory Profile"; OrderQty: Decimal; DueDate: Date; DueTime: Time)`
- `SumUpProjectedSupply(var SupplyInvtProfile: Record "Inventory Profile"; FromDate: Date; ToDate: Date): Decimal`
- `GetRouting(var ReqLine2: Record "Requisition Line")`
- `GetComponents(var ReqLine2: Record "Requisition Line")`
- `Recalculate(var ReqLine: Record "Requisition Line"; Direction: Option Forward,Backward; RefreshRouting: Boolean)`
- `GetPlanningCompList(var PlanningCompList: Record "Planning Component" temporary)`
- `SetParm(Forecast: Code[10]; ExclBefore: Date; WorksheetType: Option Requisition,Planning; PriceCalcMethod: Enum "Price Calculation Method")`
- `SetParm(Forecast: Code[10]; ExclBefore: Date; WorksheetType: Option Requisition,Planning)`
- `SetResiliencyOn()`
- `GetPlanningSkippedForMissingSKUPolicy(): Boolean`: Gets the policy whether planning should be skipped for missing SKU policy.
- `GetResiliencyError(var PlanningErrorLog: Record "Planning Error Log"): Boolean`
- `GetResiliencyErrors(var PlanningErrorLog: Record "Planning Error Log"): Boolean`: Gets all resiliency errors from the planning error log.
- `FrozenZoneTrack(FromInventoryProfile: Record "Inventory Profile"; ToInventoryProfile: Record "Inventory Profile")`
- `ForecastInitDemand(var InventoryProfile: Record "Inventory Profile"; ProductionForecastEntry: Record Microsoft.Manufacturing.Forecast."Production Forecast Entry"; ItemNo: Code[20]; LocationCode: Code[10]; TotalForecastQty: Decimal)`
- `InsertPlanningComponent(var PlanningComponent: Record "Planning Component")`
- `RunOnAfterGetRoutingFromProdOrder(var RequisitionLine: Record "Requisition Line")` (internal)
- `RunOnAfterSetProdOrder(var ReqLine: Record "Requisition Line"; var ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var InventoryProfile: Record "Inventory Profile")` (internal)
- `RunOnAfterGetComponents(var RequisitionLine: Record "Requisition Line")` (internal)
- `RunOnFindCombinationOnBeforeCreateTempSKUForLocation(var Item: Record Item; var IsHandled: Boolean)` (internal)
- `RunOnTransProdOrderToProfileOnBeforeProcessLine(ProdOrderLine: Record Microsoft.Manufacturing.Document."Prod. Order Line"; var ShouldProcess: Boolean)` (internal)
- `RunOnBeforeTransProdOrderToProfile(var InventoryProfile: Record "Inventory Profile"; var Item: Record Item; ToDate: Date; var IsHandled: Boolean)` (internal)

Plus 125 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 99000856 "Planning Transparency"](../codeunit/99000856.md) (24 calls: `AdjustReorderQty → LogPlanningSurplus`, `CalcReorderQty → LogPlanningSurplus`, `CheckNewOverflow → LogWarning`, …)
- [Codeunit 99000855 "Planning-Get Parameters"](../codeunit/99000855.md) (7 calls: `FillSKUBuffer → AdjustInvalidSettings`, `InsertTempSKU → AtSKU`, `InsertTempSKU → SetLotForLot`, …)
- [Codeunit 99000809 "Planning Line Management"](../codeunit/99000809.md) (6 calls: `GetResiliencyError → GetResiliencyError`, `GetResiliencyErrors → GetResiliencyError`, `Recalculate → BlockDynamicTracking`, …)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (3 calls: `PrepareTempTracking → QtyRndPrecision`, `Track → QtyRndPrecision`, `UpdateReqLineQuantity → QtyRndPrecision`)
- [Codeunit 7600 "Calendar Management"](../codeunit/7600.md) (2 calls: `ForecastConsumption → CalcDateBOC2`, `GetPrevAvailDateFromCompanyCalendar → CalcDateBOC2`)
- [Codeunit 10 "Type Helper"](../codeunit/10.md) (1 call: `SetQtyToHandle → Maximum`)
- [Codeunit 5404 "Lead-Time Management"](../codeunit/5404.md) (1 call: `AdjustPlanLine → GetPlannedEndingDate`)
- [Codeunit 7314 "Warehouse Availability Mgt."](../codeunit/7314.md) (1 call: `SetQtyToHandle → CalcQtyRegisteredPick`)
- [Codeunit 99000831 "Reservation Engine Mgt."](../codeunit/99000831.md) (1 call: `CloseTracking → CloseReservEntry`)
- [Codeunit 99000833 "Req. Line-Reserve"](../codeunit/99000833.md) (1 call: `TransReqLineToProfile → TransferInventoryProfileFromRequisitionLine`)
- [Codeunit 99000862 "Sales Line Invt. Profile"](../codeunit/99000862.md) (1 call: `BlanketOrderConsump → TransferInventoryProfileFromSalesLine`)

## Called by

- [Codeunit 5431 "Calc. Item Plan - Plan Wksh."](../codeunit/5431.md) (7 calls: `CalculateAndGetPlanningCompList → CalculatePlanFromWorksheet`, `CalculateAndGetPlanningCompList → GetPlanningCompList`, `CalculateAndGetPlanningCompList → SetParm`, …)
- [Report 99001023 "Get Action Messages"](../report/99001023.md) (4 calls: `GetActionMessages → GetPlanningCompList`, `GetRoutingAndComponents → GetComponents`, `GetRoutingAndComponents → GetRouting`, …)
- [Codeunit 99000869 "Mfg. Invt. Profile Offsetting"](../codeunit/99000869.md) (3 calls: `GetRouting → DisableRelations`, `OnFillTempSKUForLocation → CreateTempSKUForLocation`, `OnGetComponentsOnUpdateForActionMessage → InsertPlanningComponent`)
- [Report 699 "Calculate Plan - Req. Wksh."](../report/699.md) (2 calls: `SetParamAndCalculatePlanFromWorksheet → CalculatePlanFromWorksheet`, `SetParamAndCalculatePlanFromWorksheet → SetParm`)
- [Codeunit 928 "Assembly Line Invt. Profile"](../codeunit/928.md) (1 call: `OnGetComponentsOnUpdateForActionMessage → InsertPlanningComponent`)

## Recent changes

- 2026-10-02 [#12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026](../../changes/bcapps/12066.md) (main, BC30, obsoletion)
- 2026-08-27 [#9196 [Master] - What If Impact on Planning and Supply](../../changes/bcapps/9196.md) (main, BC30, feature)
- 2026-08-20 [#10166 [Extensibility Request] issue 29643: enable split transfer demand profiles](../../changes/bcapps/10166.md) (main, BC30, feature)
- 2026-07-28 [#9346 [master]-Cannot delete Project Planning Line due to incorrect reservation entries](../../changes/bcapps/9346.md) (main, BC30, fix)

## Across versions

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

## Deprecations

- procedure RunOnAfterGetComponents: guarded (#if not CLEAN27)
- procedure RunOnAfterGetRoutingFromProdOrder: guarded (#if not CLEAN27)
- procedure RunOnAfterSetProdOrder: guarded (#if not CLEAN27)
- procedure RunOnBeforeTransProdOrderToProfile: guarded (#if not CLEAN27)
- procedure RunOnFindCombinationOnBeforeCreateTempSKUForLocation: guarded (#if not CLEAN27)
- procedure RunOnTransProdOrderToProfileOnBeforeProcessLine: guarded (#if not CLEAN27)
- procedure OnAfterGetComponents: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgInvtProfileOffsetting"
- procedure OnAfterGetRoutingFromProdOrder: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgInvtProfileOffsetting"
- procedure OnAfterSetProdOrder: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgInvtProfileOffsetting"
- procedure OnBeforeCalculatePlanFromWorksheet: Pending 27.0 (#if not CLEAN27), "Replaced by event OnBeforeCalculatePlanFromWorksheet2"
- procedure OnBeforeTransProdOrderToProfile: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgInvtProfileOffsetting"
- procedure OnFindCombinationOnBeforeCreateTempSKUForLocation: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgInvtProfileOffsetting"
- procedure OnTransProdOrderToProfileOnBeforeProcessLine: Pending 27.0 (#if not CLEAN27), "Moved to codeunit MfgInvtProfileOffsetting"

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: "Inventory Profile Offsetting")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
