Share via


Codeunit "Available to Promise"

ID 5790
Namespace: Microsoft.Inventory.Availability

Properties

Name Value
Permissions tabledata "Assembly Header" = r, tabledata "Assembly Line" = r, tabledata "Item Ledger Entry" = r, tabledata "Job Planning Line" = r, tabledata "Planning Component" = r, #if not CLEAN27 tabledata Microsoft.Manufacturing.Document."Prod. Order Component" = r, tabledata Microsoft.Manufacturing.Document."Prod. Order Line" = r, #endif tabledata "Purchase Line" = r, tabledata "Requisition Line" = r, tabledata "Reservation Entry" = r, tabledata "Sales Line" = r, tabledata "Transfer Line" = r, tabledata "Value Entry" = r

Methods

SetRecalculateFields

procedure SetRecalculateFields()

CalcQtyAvailableToPromise

procedure CalcQtyAvailableToPromise(var Item: Record Item, var GrossRequirement: Decimal, var ScheduledReceipt: Decimal, AvailabilityDate: Date, PeriodType: Enum "Analysis Period Type", LookaheadDateFormula: DateFormula): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
GrossRequirement Decimal
ScheduledReceipt Decimal
AvailabilityDate Date
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"
LookaheadDateFormula DateFormula

Returns

Type Description
Decimal

CalcAvailableInventory

procedure CalcAvailableInventory(var Item: Record Item): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

Returns

Type Description
Decimal

CalcGrossRequirement

procedure CalcGrossRequirement(var Item: Record Item): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

Returns

Type Description
Decimal

CalcReservedRequirement

procedure CalcReservedRequirement(var Item: Record Item): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

Returns

Type Description
Decimal

CalcScheduledReceipt

procedure CalcScheduledReceipt(var Item: Record Item): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

Returns

Type Description
Decimal

CalcReservedReceipt

procedure CalcReservedReceipt(var Item: Record Item): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

Returns

Type Description
Decimal

CalcEarliestAvailabilityDate

procedure CalcEarliestAvailabilityDate(var Item: Record Item, NeededQty: Decimal, StartDate: Date, ExcludeQty: Decimal, ExcludeOnDate: Date, var AvailableQty: Decimal, PeriodType: Enum "Analysis Period Type", LookaheadDateFormula: DateFormula): Date

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
NeededQty Decimal
StartDate Date
ExcludeQty Decimal
ExcludeOnDate Date
AvailableQty Decimal
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"
LookaheadDateFormula DateFormula

Returns

Type Description
Date

CalculateForward

procedure CalculateForward(var Item: Record Item, PeriodType: Enum "Analysis Period Type", StartDate: Date, EndDate: Date): Decimal

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"
StartDate Date
EndDate Date

Returns

Type Description
Decimal

CalculateAvailability

procedure CalculateAvailability(var Item: Record Item, var AvailabilityAtDate: Record "Availability at Date")

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"

UpdateScheduledReceipt

procedure UpdateScheduledReceipt(var AvailabilityAtDate: Record "Availability at Date", ReceiptDate: Date, ScheduledReceipt: Decimal)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
ReceiptDate Date
ScheduledReceipt Decimal

UpdateGrossRequirement

procedure UpdateGrossRequirement(var AvailabilityAtDate: Record "Availability at Date", ShipmentDate: Date, GrossRequirement: Decimal)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
ShipmentDate Date
GrossRequirement Decimal

GetRequiredShipmentDate

procedure GetRequiredShipmentDate(): Date

Returns

Type Description
Date

GetForwardPeriodEndDate

procedure GetForwardPeriodEndDate(LookaheadDateFormula: DateFormula, PeriodType: Enum "Analysis Period Type", StartDate: Date): Date

Parameters

Name Type Description
LookaheadDateFormula DateFormula
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"
StartDate Date

Returns

Type Description
Date

GetPeriodEndingDate

procedure GetPeriodEndingDate(PeriodEnd: Date, PeriodType: Enum "Analysis Period Type"): Date

Parameters

Name Type Description
PeriodEnd Date
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"

Returns

Type Description
Date

SetPromisingReqShipDate

procedure SetPromisingReqShipDate(OrderPromisingLine: Record "Order Promising Line")

Parameters

Name Type Description
OrderPromisingLine Table Microsoft.Inventory.Availability."Order Promising Line"

SetOriginalShipmentDate

procedure SetOriginalShipmentDate(OrderPromisingLine: Record "Order Promising Line")

Parameters

Name Type Description
OrderPromisingLine Table Microsoft.Inventory.Availability."Order Promising Line"

SetChangedSalesLine

procedure SetChangedSalesLine(SalesLine: Record "Sales Line")

Parameters

Name Type Description
SalesLine Table Microsoft.Sales.Document."Sales Line"

SetChangedAsmLine

procedure SetChangedAsmLine(AssemblyLine: Record "Assembly Line")

Parameters

Name Type Description
AssemblyLine Table Microsoft.Assembly.Document."Assembly Line"

ResetItemNo

procedure ResetItemNo()

Events

OnAfterCalculateAvailability

[IntegrationEvent(True,False)]
local procedure OnAfterCalculateAvailability(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item

OnAfterCalcGrossRequirement

[IntegrationEvent(False,False)]
local procedure OnAfterCalcGrossRequirement(var Item: Record Item, var GrossRequirement: Decimal)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
GrossRequirement Decimal

OnAfterCalcScheduledReceipt

[IntegrationEvent(False,False)]
local procedure OnAfterCalcScheduledReceipt(var Item: Record Item, var ScheduledReceipt: Decimal)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ScheduledReceipt Decimal

OnAfterCalcReservedRequirement

[IntegrationEvent(False,False)]
local procedure OnAfterCalcReservedRequirement(var Item: Record Item, var ReservedRequirement: Decimal)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ReservedRequirement Decimal

OnAfterCalcReservedReceipt

[IntegrationEvent(False,False)]
local procedure OnAfterCalcReservedReceipt(var Item: Record Item, var ReservedReceipt: Decimal)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ReservedReceipt Decimal

OnAfterQtyAvailableToPromise

[IntegrationEvent(False,False)]
local procedure OnAfterQtyAvailableToPromise(var Item: Record Item, ScheduledReceipt: Decimal, GrossRequirement: Decimal, var AvailableToPromise: Decimal)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ScheduledReceipt Decimal
GrossRequirement Decimal
AvailableToPromise Decimal

OnAfterCalcAvailableInventory

[IntegrationEvent(False,False)]
local procedure OnAfterCalcAvailableInventory(var Item: Record Item, var AvailableInventory: Decimal)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
AvailableInventory Decimal

OnBeforeCalcAvailableInventory

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcAvailableInventory(var Item: Record Item, var AvailableInventory: Decimal, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
AvailableInventory Decimal
IsHandled Boolean

OnBeforeCalcGrossRequirement

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcGrossRequirement(var Item: Record Item, var GrossRequirement: Decimal, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
GrossRequirement Decimal
IsHandled Boolean

OnBeforeCalcScheduledReceipt

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcScheduledReceipt(var Item: Record Item, var ScheduledReceipt: Decimal, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ScheduledReceipt Decimal
IsHandled Boolean

OnBeforeCalcReservedRequirement

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcReservedRequirement(var Item: Record Item, var ReservedRequirement: Decimal, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ReservedRequirement Decimal
IsHandled Boolean

OnBeforeCalcReservedReceipt

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcReservedReceipt(var Item: Record Item, var ReservedReceipt: Decimal, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
ReservedReceipt Decimal
IsHandled Boolean

OnBeforeUpdateSalesOrderAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateSalesOrderAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, ChangedSalesLine: Record "Sales Line", CurrentOrderPromisingLine: Record "Order Promising Line", ReqShipDate: Date, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
ChangedSalesLine Table Microsoft.Sales.Document."Sales Line"
CurrentOrderPromisingLine Table Microsoft.Inventory.Availability."Order Promising Line"
ReqShipDate Date
IsHandled Boolean

OnBeforeCalcQtyAvailableToPromise

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcQtyAvailableToPromise(var Item: Record Item, var AvailabilityDate: Date, var GrossRequirement: Decimal, var ScheduledReceipt: Decimal, PeriodType: Enum "Analysis Period Type", LookaheadDateFormula: DateFormula, var AvailableToPromise: Decimal, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
AvailabilityDate Date
GrossRequirement Decimal
ScheduledReceipt Decimal
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"
LookaheadDateFormula DateFormula
AvailableToPromise Decimal
IsHandled Boolean

OnBeforeUpdatePurchOrderAvail

Obsolete

This element will become obsolete from version 25.0. Moved to codeunit JobPlanningAvailabilityMgt

[Obsolete(Moved to codeunit JobPlanningAvailabilityMgt,25.0)]
[IntegrationEvent(False,False)]
local procedure OnBeforeUpdatePurchOrderAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnCalcAllItemFieldsOnAfterItemCalcFields

[IntegrationEvent(False,False)]
local procedure OnCalcAllItemFieldsOnAfterItemCalcFields(var Item: Record Item)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

OnCalcAllItemFieldsOnBeforeItemCalcFields

[IntegrationEvent(False,False)]
local procedure OnCalcAllItemFieldsOnBeforeItemCalcFields(var Item: Record Item)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item

OnCalculateAvailabilityAfterClearAvailabilityAtDate

[IntegrationEvent(False,False)]
local procedure OnCalculateAvailabilityAfterClearAvailabilityAtDate(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var ReqShipDate: Date)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
ReqShipDate Date

OnCalcEarliestAvailabilityDateOnBeforeFilterDate

[IntegrationEvent(False,False)]
local procedure OnCalcEarliestAvailabilityDateOnBeforeFilterDate(var Item: Record Item, NeededQty: Decimal, StartDate: Date, var AvailableQty: Decimal, PeriodType: Enum "Analysis Period Type", LookaheadDateFormula: DateFormula, var AvailabilityAtDate: Record "Availability at Date", var AvailableDate: Date, var IsHandled: Boolean, ExcludeOnDate: Date)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
NeededQty Decimal
StartDate Date
AvailableQty Decimal
PeriodType Enum Microsoft.Foundation.Enums."Analysis Period Type"
LookaheadDateFormula DateFormula
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
AvailableDate Date
IsHandled Boolean
ExcludeOnDate Date

OnBeforeCalcAllItemFields

[IntegrationEvent(False,False)]
local procedure OnBeforeCalcAllItemFields(var Item: Record Item, var AllFieldCalculated: Boolean, var PrevItemNo: Code[20], var PrevItemFilters: Text, var IsHandled: Boolean)

Parameters

Name Type Description
Item Table Microsoft.Inventory.Item.Item
AllFieldCalculated Boolean
PrevItemNo Code[20]
PrevItemFilters Text
IsHandled Boolean

OnBeforeUpdateSchedRcptAvail

Obsolete

This element will become obsolete from version 25.0. Moved to codeunit ProdOrderAvailabilityMgt

[Obsolete(Moved to codeunit ProdOrderAvailabilityMgt,25.0)]
[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateSchedRcptAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdatePurchReqRcptAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdatePurchReqRcptAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateTransOrderRcptAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateTransOrderRcptAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateSchedNeedAvail

Obsolete

This element will become obsolete from version 25.0. Moved to codeunit ProdOrderAvailabilityMgt

[Obsolete(Moved to codeunit ProdOrderAvailabilityMgt,25.0)]
[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateSchedNeedAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdatePlanningIssuesAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdatePlanningIssuesAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateServOrderAvail

Obsolete

This element will become obsolete from version 25.0. Moved to codeunit ServAvailabilityMgt

[Obsolete(Moved to codeunit ServAvailabilityMgt,25.0)]
[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateServOrderAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateJobOrderAvail

Obsolete

This element will become obsolete from version 25.0. Moved to codeunit JobPlanningAvailabilityMgt

[Obsolete(Moved to codeunit JobPlanningAvailabilityMgt,25.0)]
[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateJobOrderAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateTransOrderShptAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateTransOrderShptAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateAsmOrderAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateAsmOrderAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean

OnBeforeUpdateAsmCompAvail

[IntegrationEvent(False,False)]
local procedure OnBeforeUpdateAsmCompAvail(var AvailabilityAtDate: Record "Availability at Date", var Item: Record Item, var IsHandled: Boolean, var ChangedAssemblyLine: Record "Assembly Line")

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Item Table Microsoft.Inventory.Item.Item
IsHandled Boolean
ChangedAssemblyLine Table Microsoft.Assembly.Document."Assembly Line"

OnCalcEarliestAvailabilityDateOnAfterUpdateScheduledReceipt

[IntegrationEvent(True,False)]
local procedure OnCalcEarliestAvailabilityDateOnAfterUpdateScheduledReceipt(var TempAvailabilityAtDate: Record "Availability at Date" temporary)

Parameters

Name Type Description
TempAvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"

OnUpdateAvailabilityOnBeforeInsertModify

[IntegrationEvent(True,False)]
local procedure OnUpdateAvailabilityOnBeforeInsertModify(var AvailabilityAtDate: Record "Availability at Date", Date: Date, var ScheduledReceipt: Decimal, var GrossRequirement: Decimal)

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"
Date Date
ScheduledReceipt Decimal
GrossRequirement Decimal

OnCalculateAvailabilityByPeriodOnBeforeDeleteAvailabilityAtDate

[IntegrationEvent(True,False)]
local procedure OnCalculateAvailabilityByPeriodOnBeforeDeleteAvailabilityAtDate(var AvailabilityInPeriod: Record "Availability at Date", AvailabilityAtDate: Record "Availability at Date")

Parameters

Name Type Description
AvailabilityInPeriod Table Microsoft.Inventory.Availability."Availability at Date"
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"

OnCalcEarliestAvailabilityDateOnBeforeNextTempAvailabilityAtDate

[IntegrationEvent(True,False)]
local procedure OnCalcEarliestAvailabilityDateOnBeforeNextTempAvailabilityAtDate(var AvailabilityAtDate: Record "Availability at Date")

Parameters

Name Type Description
AvailabilityAtDate Table Microsoft.Inventory.Availability."Availability at Date"

OnCalcEarliestAvailabilityDateOnAfterCalculateAvailableQty

[IntegrationEvent(True,False)]
local procedure OnCalcEarliestAvailabilityDateOnAfterCalculateAvailableQty(var AvailableQty: Decimal, var Item: Record Item, ScheduledReceipt: Decimal, GrossRequirement: Decimal)

Parameters

Name Type Description
AvailableQty Decimal
Item Table Microsoft.Inventory.Item.Item
ScheduledReceipt Decimal
GrossRequirement Decimal

See also