Mit diesem Formular können Sie fehlende, unklare oder fehlerhafte Inhalte in der Dokumentation melden und Verbesserungsvorschläge machen. Ihr Feedback hilft uns, die Qualität und Vollständigkeit kontinuierlich zu verbessern.
GOB Shipment Date Projection
Properties
| Property | Value |
|---|---|
| Object Type | Codeunit |
| Object Subtype | Normal |
| Object ID | 5234592 |
| Accessibility Level | Public |
Procedures
SetSuspendShipmentDateCalcStatusUpdate()
If set, the shipment date calc. status field is not changed when the document line is updated.
Syntax
SetSuspendShipmentDateCalcStatusUpdate(NewSuspendShipmentDateCalcStatusUpdate: Boolean)
Parameters
NewSuspendShipmentDateCalcStatusUpdate
Type: Boolean
SetHideProgressWindow()
Syntax
SetHideProgressWindow(NewHideProgressWindow: Boolean)
Parameters
NewHideProgressWindow
Type: Boolean
SetHideDialog()
Syntax
SetHideDialog(NewHideDialog: Boolean)
Parameters
NewHideDialog
Type: Boolean
UpdateShipmentDate_Single()
Performs a shipment date projection for a single sales line. The shipment date projection is done by calculating the availability, followed by a standard BC CTP if needed. If the shipment date changes, the sales header is also updated.
Syntax
UpdateShipmentDate_Single(var SalesLine: Record "Sales Line")
Parameters
SalesLine
Type: Record "Sales Line"
A single sales line of type "Item". Returns the updated record.
UpdateShipmentDate()
Performs a shipment date projection for all lines of a single sales header. Behaves exactly like UpdateShipmentDate_Single - only differences are extra steps to handle all lines at once.
Syntax
UpdateShipmentDate(var SalesHeader: Record "Sales Header")
Parameters
SalesHeader
Type: Record "Sales Header"
A single sales header. Returns the updated record.
CalcEarliestShipmentDate()
Calculates the shipment date projection of a single sales line. The shipment date projection is done by calculating the availability, followed by a standard BC CTP if needed.
Syntax
[Boolean] := CalcEarliestShipmentDate(var SalesLine: Record "Sales Line", var CalculatedEarliestShipmentDate: Date)
Parameters
SalesLine
Type: Record "Sales Line"
A single sales line of type "Item". This parameter remains unchanged by the calculation.
CalculatedEarliestShipmentDate
Type: Date
The result of the calculation. If the calculation is not successful, this will be set to document shipment date or WorkDate().
Return
Success: Boolean
Returns if the calculation was successful, i.e. an earliest shipment date could be calculated.
ProcessCalculationResult()
Evaluates the earliest shipment date from the availability calculation and executes standard BC CTP, if unsuccessful. Will also show a message, if the evaluation was not successful. This function can be used to start the shipment date projection with a modified result set.
Syntax
[Boolean] := ProcessCalculationResult(var SalesLine: Record "Sales Line", var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary, var CalculatedEarliestShipmentDate: Date)
Parameters
SalesLine
Type: Record "Sales Line"
A single sales line of type "Item".
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
The result set of an availability calculation.
CalculatedEarliestShipmentDate
Type: Date
The result of the evaluation. If the evaluation is not successful, this will be set to document shipment date or WorkDate().
Return
Success: Boolean
Return variable Success of type Boolean.
CalculateCTPDecision()
Decides, if capable-to-promise should be calculated and calculates it, if needed. The condition is, that the "CalculatedEarliestShipmentDate" lies within the replenishment lead time period (i.e. "if I purchase the item today, when will it be available?").
Syntax
[Boolean] := CalculateCTPDecision(ForDocLineRecID: RecordId, var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary, var CalculatedEarliestShipmentDate: Date)
Parameters
ForDocLineRecID
Type: RecordId
The CTP will be calculated for this document line.
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
The result set of an availability calculation.
CalculatedEarliestShipmentDate
Type: Date
Returns the resulting shipment date (from availability calculation with "GOB Calc Availability by Order" or CTP, if needed)
Return
Success: Boolean
True, if a new shipment date was successfully calculated. Returns false, when availability calculation and CTP each return 0D. "CalculatedEarliestShipmentDate" is then set to either document line due date or workdate.
CalcCTP()
Performs a standard BC CTP (capable-to-promise) calculation.
Syntax
[Date] := CalcCTP(ForAvailabilityEntry: Record "GOB Availability Entry")
Parameters
ForAvailabilityEntry
Type: Record "GOB Availability Entry"
The availability entry for some document line.
Return
CalculatedEarliestShipmentDate: Date
The earliest shipment date as calculated by CTP.
CalcCTPForATO()
Performs a standard BC CTP (capable-to-promise) calculation for all assembly components of an ATO (assemble-to-order) item. The CTP is only executed if the availability calculation (result contained in "TempGOBAvailabilityEntryResult") does not return a proper result.
Syntax
[Date] := CalcCTPForATO(ForDocLineRecID: RecordId, var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary)
Parameters
ForDocLineRecID
Type: RecordId
A sale line with ATO quantity.
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
The result set of an availability calculation.
Return
CalculatedEarliestShipmentDate: Date
The latest availability date of all assembly components of the ATO item.
GetCalculatedEarliestShipmentDate()
Syntax
[Date] := GetCalculatedEarliestShipmentDate(DocLineRecID: RecordId, var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary)
Parameters
DocLineRecID
Type: RecordId
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
GetReplenishmentLeadTimePeriod()
Returns the replenishment lead time period for an item at a certain location. The location calender is respected.
Syntax
GetReplenishmentLeadTimePeriod(ItemNo: Code[20], VariantCode: Code[10], LocationCode: Code[10], var ReplenishmentLeadTimeStartingDate: Date, var ReplenishmentLeadTimeEndingDate: Date)
Parameters
ItemNo
Type: Code[20]
An item number.
VariantCode
Type: Code[10]
A variant code.
LocationCode
Type: Code[10]
A location code.
ReplenishmentLeadTimeStartingDate
Type: Date
Always WorkDate(), but could be overwritten by an event subscriber.
ReplenishmentLeadTimeEndingDate
Type: Date
Calculates as: "Purchase Lead Time" + "Whse. Inbound Handling Time" + "Safety Lead Time"
GetWhseInBoundHandlingTime()
Returns the warehouse inbound handling time of a certain location.
Syntax
[Code[10]] := GetWhseInBoundHandlingTime(LocationCode: Code[10])
Parameters
LocationCode
Type: Code[10]
A location code. If empty, Inventory Setup will be queried.
Return
Code[10]
Should actually be of type "DateFormula" instead of Code but BC standard decided to use Code for PurchaseLeadTime and SafetyLeadTime. So we use Code here as well to keep it analogous.
CheckReservedAgainstReceipt()
Syntax
[Boolean] := CheckReservedAgainstReceipt(ForAvailabilityEntry: Record "GOB Availability Entry")
Parameters
ForAvailabilityEntry
Type: Record "GOB Availability Entry"
CalcReservedQty()
Syntax
[Decimal] := CalcReservedQty(ForAvailabilityEntry: Record "GOB Availability Entry", BaseQty: Boolean)
Parameters
ForAvailabilityEntry
Type: Record "GOB Availability Entry"
BaseQty
Type: Boolean
HandleCalculationFailure()
Syntax
HandleCalculationFailure(var SalesLine: Record "Sales Line")
Parameters
SalesLine
Type: Record "Sales Line"
CheckReservationConflict()
Checks for a sales line, if the reservation, as specified by "ForReservEntry", would lead to a reservation conflict. A reservation conflict happens, if there is a document that would be available before the the reservation is issued, but would not be available anymore after the reservation.
Syntax
CheckReservationConflict(SalesLine: Record "Sales Line", ForReservEntry: Record "Reservation Entry")
Parameters
SalesLine
Type: Record "Sales Line"
A sales line of type "Item".
ForReservEntry
Type: Record "Reservation Entry"
A reservation entry that contains the information on a new reservation.
ThrowManualShipmentDateChangeError()
Syntax
ThrowManualShipmentDateChangeError(LocationCode: Code[10])
Parameters
LocationCode
Type: Code[10]
FilterSalesLines()
Syntax
FilterSalesLines(SalesHeader: Record "Sales Header", var SalesLine_InputDataSet: Record "Sales Line")
Parameters
SalesHeader
Type: Record "Sales Header"
SalesLine_InputDataSet
Type: Record "Sales Line"
TestInputDataSet()
Syntax
TestInputDataSet(var SalesLine_InputDataSet: Record "Sales Line")
Parameters
SalesLine_InputDataSet
Type: Record "Sales Line"
TestSalesLine()
Syntax
TestSalesLine(SalesLine: Record "Sales Line")
Parameters
SalesLine
Type: Record "Sales Line"
BuildFilters()
Syntax
BuildFilters(var SalesLine_InputDataSet: Record "Sales Line", var ItemNoFilter: Text, var VariantCodeFilter: Text, var LocationFilter: Text)
Parameters
SalesLine_InputDataSet
Type: Record "Sales Line"
ItemNoFilter
Type: Text
VariantCodeFilter
Type: Text
LocationFilter
Type: Text
UpdateAvailabilityEntriesForInputDataSet()
Simply calls UpdateAvailabilityEntryForSalesLine for multiple sales lines.
Syntax
UpdateAvailabilityEntriesForInputDataSet(var SalesLine_InputDataSet: Record "Sales Line", var TempGOBAvailabilityEntryOutbound: Record "GOB Availability Entry" temporary)
Parameters
SalesLine_InputDataSet
Type: Record "Sales Line"
Filtered sales line.
TempGOBAvailabilityEntryOutbound
Type: Record "GOB Availability Entry"
A result set of outbound availability entries, that are going to be used as input in an availability calculation.
UpdateAvailabilityEntryForSalesLine()
Modifies the outbound availability entry set, that will be used as input for an availability calculation. Reduces the allocation priority for a selected sales line and excludes all entries with "Shipment Date Calc. Status"::Initial. This is required to prevent delays of already calculated sales lines.
Syntax
UpdateAvailabilityEntryForSalesLine(SalesLine: Record "Sales Line", var TempGOBAvailabilityEntryOutbound: Record "GOB Availability Entry" temporary)
Parameters
SalesLine
Type: Record "Sales Line"
A single sales line of type "Item".
TempGOBAvailabilityEntryOutbound
Type: Record "GOB Availability Entry"
The outbound availability entry set to be modified.
IncreaseReservedQtyBaseForSalesLine()
Syntax
IncreaseReservedQtyBaseForSalesLine(SalesLine: Record "Sales Line", QtyToReserveBase: Decimal, var TempGOBAvailabilityEntryOutbound: Record "GOB Availability Entry" temporary)
Parameters
SalesLine
Type: Record "Sales Line"
QtyToReserveBase
Type: Decimal
TempGOBAvailabilityEntryOutbound
Type: Record "GOB Availability Entry"
InsertTempAvailabilityEntryOutbound()
Inserts a availability entry with reduced allocation priority for a selected sales line. If "Shipment Date Calc. Status"::Initial then the "Shipment Date" is overwritten with WorkDate(). Except for the allocation priority and shipment date part, the created entry is analogous to those created in codeunit 5022210 "GOB Fetch Availability Data".
Syntax
InsertTempAvailabilityEntryOutbound(SalesLine: Record "Sales Line", QtyToReserveBase: Decimal, var TempGOBAvailabilityEntryOutbound: Record "GOB Availability Entry" temporary)
Parameters
SalesLine
Type: Record "Sales Line"
A single sales line of type "Item".
QtyToReserveBase
Type: Decimal
A new reserved quantity can be specified here (used for reservation conflict detection).
TempGOBAvailabilityEntryOutbound
Type: Record "GOB Availability Entry"
The inserted availability entry.
UpdateSalesLine_InputDataSet()
Simply calls UpdateSalesLine in a loop over multiple sales lines.
Syntax
UpdateSalesLine_InputDataSet(var SalesLine_InputDataSet: Record "Sales Line", var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary)
Parameters
SalesLine_InputDataSet
Type: Record "Sales Line"
Filtered sales line.
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
The result set of an availability calculation.
UpdateSalesLine()
Takes the result of a shipment date projection and updates the sales line accordingly: "Shipment date" and "Shipment Date Calc. Status" are set. If the sales line exists in the database, a Modify() is called.
Syntax
UpdateSalesLine(var SalesLine: Record "Sales Line", CalculationSuccess: Boolean, CalculatedEarliestShipmentDate: Date)
Parameters
SalesLine
Type: Record "Sales Line"
A single sales line of type "Item". Returns the updated record.
CalculationSuccess
Type: Boolean
Specifies if the availability calculation or CTP have been successful.
CalculatedEarliestShipmentDate
Type: Date
The result of availability calculation or CTP.
UpdateSalesHeader()
This function is to be used after all its lines have been updated. Updates the sales header "shipment date" and "promised delivery date" depending on its shipping advice. "Shipping Advice"::Complete: latest shipment date over all lines "Shipping Advice"::Partial: earliest shipment date over all lines
Can trigger a confirm dialog.
Syntax
UpdateSalesHeader(var SalesHeader: Record "Sales Header")
Parameters
SalesHeader
Type: Record "Sales Header"
A single sales header. Returns the updated, modified record.
UpdatePromisedDeliveryDate()
Updates the "promised delivery date" of a sales header based on the values of its sales lines and depending on the "shipping advice". Maximum "promised delivery date" in a sales line is later: "Shipping Advice"::Complete: update and apply the maximum date to all lines "Shipping Advice"::Partial: update
Minimum "promised delivery date" in a sales line is earlier: User can choose to apply the date or not. If "Shipping Advice"::Complete, the minimum date is applied to all lines.
Can trigger a confirm dialog and/or string menu.
Syntax
UpdatePromisedDeliveryDate(var SalesHeader: Record "Sales Header")
Parameters
SalesHeader
Type: Record "Sales Header"
A single sales header. Returns the updated, modified record.
SendUIFeedback()
Syntax
SendUIFeedback(SalesLine: Record "Sales Line", var TempGOBAvailabilityEntryResultWithoutReservation: Record "GOB Availability Entry" temporary, var TempGOBAvailabilityEntryResultWithReservation: Record "GOB Availability Entry" temporary)
Parameters
SalesLine
Type: Record "Sales Line"
TempGOBAvailabilityEntryResultWithoutReservation
Type: Record "GOB Availability Entry"
TempGOBAvailabilityEntryResultWithReservation
Type: Record "GOB Availability Entry"
FindReservationConflict()
Syntax
[Boolean] := FindReservationConflict(SalesLine: Record "Sales Line", var TempGOBAvailabilityEntryResultWithoutReservation: Record "GOB Availability Entry" temporary, var TempGOBAvailabilityEntryResultWithReservation: Record "GOB Availability Entry" temporary)
Parameters
SalesLine
Type: Record "Sales Line"
TempGOBAvailabilityEntryResultWithoutReservation
Type: Record "GOB Availability Entry"
TempGOBAvailabilityEntryResultWithReservation
Type: Record "GOB Availability Entry"
GetMinMaxDateFromLines()
Syntax
[Date] := GetMinMaxDateFromLines(SalesHeader: Record "Sales Header", DateFieldNo: Integer, Minimum: Boolean)
Parameters
SalesHeader
Type: Record "Sales Header"
DateFieldNo
Type: Integer
Minimum
Type: Boolean
RefreshSalesLineAfterHeaderChange()
Syntax
RefreshSalesLineAfterHeaderChange(var SalesLine: Record "Sales Line")
Parameters
SalesLine
Type: Record "Sales Line"
CheckRecordExists()
Syntax
[Boolean] := CheckRecordExists(SalesLine: Record "Sales Line")
Parameters
SalesLine
Type: Record "Sales Line"
OnBeforeCalcEarliestShipmentDate()
Syntax
OnBeforeCalcEarliestShipmentDate(var NoFilter: Text, var VariantFilter: Text, var LocationFilter: Text, var SalesLine_InputDataSet: Record "Sales Line", var HideProgressWindow: Boolean, var HideDialog: Boolean)
Parameters
NoFilter
Type: Text
VariantFilter
Type: Text
LocationFilter
Type: Text
SalesLine_InputDataSet
Type: Record "Sales Line"
HideProgressWindow
Type: Boolean
HideDialog
Type: Boolean
OnAfterProcessCalculationResult()
Syntax
OnAfterProcessCalculationResult(SalesLine: Record "Sales Line", var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary, var CalculatedEarliestShipmentDate: Date, var Success: Boolean)
Parameters
SalesLine
Type: Record "Sales Line"
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
CalculatedEarliestShipmentDate
Type: Date
Success
Type: Boolean
OnBeforeHandleCalculationFailure()
Syntax
OnBeforeHandleCalculationFailure(var SalesLine: Record "Sales Line", var IsHandled: Boolean)
Parameters
SalesLine
Type: Record "Sales Line"
IsHandled
Type: Boolean
OnBeforeCheckReservationConflict()
Syntax
OnBeforeCheckReservationConflict(var NoFilter: Text, var VariantFilter: Text, var LocationFilter: Text, var SalesLine_InputDataSet: Record "Sales Line", var HideProgressWindow: Boolean, var HideDialog: Boolean)
Parameters
NoFilter
Type: Text
VariantFilter
Type: Text
LocationFilter
Type: Text
SalesLine_InputDataSet
Type: Record "Sales Line"
HideProgressWindow
Type: Boolean
HideDialog
Type: Boolean
OnBeforeThrowManualShipmentDateChangeError()
Syntax
OnBeforeThrowManualShipmentDateChangeError(GOBAvailabilitySetup: Record "GOB Availability Setup", var SkipError: Boolean)
Parameters
GOBAvailabilitySetup
Type: Record "GOB Availability Setup"
SkipError
Type: Boolean
OnAfterFilterSalesLines()
Syntax
OnAfterFilterSalesLines(SalesHeader: Record "Sales Header", var SalesLine_InputDataSet: Record "Sales Line")
Parameters
SalesHeader
Type: Record "Sales Header"
SalesLine_InputDataSet
Type: Record "Sales Line"
OnBeforeTestSalesLine()
Syntax
OnBeforeTestSalesLine(SalesLine: Record "Sales Line", var IsHandled: Boolean)
Parameters
SalesLine
Type: Record "Sales Line"
IsHandled
Type: Boolean
OnAfterBuildFilters()
Syntax
OnAfterBuildFilters(var SalesLine_InputDataSet: Record "Sales Line", var ItemNoFilter: Text, var VariantCodeFilter: Text, var LocationFilter: Text)
Parameters
SalesLine_InputDataSet
Type: Record "Sales Line"
ItemNoFilter
Type: Text
VariantCodeFilter
Type: Text
LocationFilter
Type: Text
OnBeforeInsertAvailabilityEntry()
Syntax
OnBeforeInsertAvailabilityEntry(SalesLine: Record "Sales Line", QtyToReserve: Decimal, var TempGOBAvailabilityEntryOutbound: Record "GOB Availability Entry" temporary)
Parameters
SalesLine
Type: Record "Sales Line"
QtyToReserve
Type: Decimal
TempGOBAvailabilityEntryOutbound
Type: Record "GOB Availability Entry"
OnBeforeUpdateSalesLine()
Syntax
OnBeforeUpdateSalesLine(var SalesLine: Record "Sales Line", CalculationSuccess: Boolean, HideDialog: Boolean, var CalculatedEarliestShipmentDate: Date, var IsHandled: Boolean)
Parameters
SalesLine
Type: Record "Sales Line"
CalculationSuccess
Type: Boolean
HideDialog
Type: Boolean
CalculatedEarliestShipmentDate
Type: Date
IsHandled
Type: Boolean
OnAfterUpdateSalesLine()
Syntax
OnAfterUpdateSalesLine(var SalesLine: Record "Sales Line", CalculationSuccess: Boolean, HideDialog: Boolean, CalculatedEarliestShipmentDate: Date, var DoModify: Boolean)
Parameters
SalesLine
Type: Record "Sales Line"
CalculationSuccess
Type: Boolean
HideDialog
Type: Boolean
CalculatedEarliestShipmentDate
Type: Date
DoModify
Type: Boolean
OnBeforeUpdateSalesHeader()
Syntax
OnBeforeUpdateSalesHeader(var SalesHeader: Record "Sales Header", var IsHandled: Boolean)
Parameters
SalesHeader
Type: Record "Sales Header"
IsHandled
Type: Boolean
OnAfterUpdateSalesHeader()
Syntax
OnAfterUpdateSalesHeader(var SalesHeader: Record "Sales Header")
Parameters
SalesHeader
Type: Record "Sales Header"
OnBeforeSendUIFeedback()
Syntax
OnBeforeSendUIFeedback(SalesLine: Record "Sales Line", var TempGOBAvailabilityEntryResultWithoutReservation: Record "GOB Availability Entry" temporary, var TempGOBAvailabilityEntryResultWithReservation: Record "GOB Availability Entry" temporary, HideDialog: Boolean, var IsHandled: Boolean)
Parameters
SalesLine
Type: Record "Sales Line"
TempGOBAvailabilityEntryResultWithoutReservation
Type: Record "GOB Availability Entry"
TempGOBAvailabilityEntryResultWithReservation
Type: Record "GOB Availability Entry"
HideDialog
Type: Boolean
IsHandled
Type: Boolean
OnBeforeGetReplenishLeadTimePeriod()
Syntax
OnBeforeGetReplenishLeadTimePeriod(ItemNo: Code[20], VariantCode: Code[10], LocationCode: Code[10], var ReplenishmentLeadTimeStartingDate: Date, var ReplenishmentLeadTimeEndingDate: Date, var IsHandled: Boolean)
Parameters
ItemNo
Type: Code[20]
VariantCode
Type: Code[10]
LocationCode
Type: Code[10]
ReplenishmentLeadTimeStartingDate
Type: Date
ReplenishmentLeadTimeEndingDate
Type: Date
IsHandled
Type: Boolean
OnAfterCalculateCTPDecision()
Syntax
OnAfterCalculateCTPDecision(ForDocLineRecID: RecordId, var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary, var CalculatedEarliestShipmentDate: Date, var Success: Boolean)
Parameters
ForDocLineRecID
Type: RecordId
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"
CalculatedEarliestShipmentDate
Type: Date
Success
Type: Boolean
OnBeforeGetCalculatedEarliestShipmentDate()
Syntax
OnBeforeGetCalculatedEarliestShipmentDate(DocLineRecID: RecordId, var TempGOBAvailabilityEntryResult: Record "GOB Availability Entry" temporary)
Parameters
DocLineRecID
Type: RecordId
TempGOBAvailabilityEntryResult
Type: Record "GOB Availability Entry"