KVSKBARequisitionLib#
Procedures#
ResetBlanketOrderData(Record Requisition Line) :#
Summary: This function reset the blanket order datas at the requisition line
procedure ResetBlanketOrderData(var CurrentRequisitionLine: Record "Requisition Line"):
Parameters:
CurrentRequisitionLine: Requisition line, in which the values are to be reset
Remarks: This procedure clears all blanket order assignments from a requisition line by resetting the blanket order number and line number fields to their default values. It also clears the vendor item number and recalculates costs by re-validating the vendor number, which triggers standard costing logic. Extensions can customize the reset behavior through OnBeforeResetBlanketOrderData and OnAfterResetBlanketOrderData events. This procedure is called when a blanket order assignment becomes invalid (e.g., item type changed, blanket order line deleted, or insufficient quantity remaining) or when explicitly requested to remove the blanket order link.
GetAssignedBlanketOrderQty(Record Requisition Line, Code[20], Integer) : Decimal#
Summary: This function give back the qty. base of already assigend qty. of the blanket order line
procedure GetAssignedBlanketOrderQty(CurrentRequisitionLine: Record "Requisition Line"; SearchBlanketOrderNo: Code[20]; SearchBlanketOrderLineNo: Integer): Decimal
Parameters:
CurrentRequisitionLine: Requisition line from where is searched is not taken into account when determining the ReturnValueSearchBlanketOrderNo: Blanket order number to be searched withSearchBlanketOrderLineNo: Blanket order line number to be searched wit
Returns: ReturnValue as Decimal
Remarks: This procedure calculates the total base quantity already assigned to a specific blanket order line from other requisition lines. It searches all requisition lines with matching blanket order number and line number, excluding the current line being processed. The calculation uses Quantity (Base) to ensure accurate results regardless of unit of measure. The returned value is used to determine remaining available quantity on the blanket order line during assignment and validation processes. Extensions can customize the filtering logic through OnGetAssignedBlanketOrderQtyOnAfterSetFilterRequisitionLine event. This is critical for preventing over-assignment of blanket order quantities across multiple requisition lines.
AssignBlanketOrdersToReqLines(Record Requisition Line, Option) :#
Summary: Assign to the requisition lines possible blanket order lines If the qty. of the requisition lines is greatet than the blanket order line, it will splitt the requisition lines
procedure AssignBlanketOrdersToReqLines(var RequisitionLine: Record "Requisition Line"; AssignmentMethod: Option):
Parameters:
RequisitionLine: Requisition line, in which the values are to be setAssignmentMethod: how should be assigned: assign,reassign,delete
Remarks: This procedure performs bulk assignment of blanket order lines to requisition lines based on the specified assignment method. For 'delete', it removes all blanket order assignments. For 'assign', it assigns blanket orders only to lines without existing assignments. For 'reassign', it first removes existing assignments before assigning new ones. The procedure searches for matching blanket order lines first with matching location code, then with empty location code. If a blanket order line has insufficient quantity, the procedure automatically splits the requisition line to match available quantities. It displays a progress window during processing. Extensions can customize the assignment logic through multiple events including OnBeforeAssignBlanketOrdersToReqLines and OnAssignBlanketOrdersToReqLinesOnAfterSetCurrentKey. This is the primary batch processing method for blanket order assignments.
VerifyQtyToBlanketOrderQty(Record Requisition Line) :#
Summary: this function checks each modification of the quantity, if the actual outstanding qty of the blanket order is enough
procedure VerifyQtyToBlanketOrderQty(var RequisitionLine: Record "Requisition Line"):
Parameters:
RequisitionLine: Requisition line, in which the values are to be check
Remarks: This procedure validates that the requisition line quantity does not exceed the available quantity on the assigned blanket order line. It calculates the remaining blanket order quantity by subtracting outstanding order quantities and quantities already assigned to other requisition lines from the blanket order's outstanding quantity. If the requisition line quantity exceeds the remaining available quantity, it resets the blanket order assignment and displays an error message. Extensions can customize the validation logic through OnBeforeVerifyQtyToBlanketOrderQty and OnVerifyQtyToBlanketOrderQtyOnAfterCalculateRemainingBlanketOrderQty events. This procedure is called whenever the quantity on a requisition line is modified to ensure blanket orders are not over-committed.
NextBlanketOrderNo(Record Requisition Line, Boolean) : Boolean#
Summary: This function returns yes, if blanket order no. or blanket order line no. changed on checkReqLine
procedure NextBlanketOrderNo(RequisitionLine: Record "Requisition Line"; SetPreviousValues: Boolean): Boolean
Parameters:
RequisitionLine: Requisition line, in which the values are to be checkSetPreviousValues: Defines the blanket order data to be saved in the codeunit
Returns: Boolean
Remarks: This procedure detects changes in blanket order assignments by comparing the current requisition line's blanket order number and line number against previously stored values in the codeunit's global variables. If SetPreviousValues is true, it updates the stored values after comparison. If SetPreviousValues is false, it performs comparison only without updating stored values. The function returns true when either the blanket order number or line number has changed, allowing calling code to react to blanket order assignment changes. This is useful for triggering recalculations, validations, or data refresh when blanket order assignments are modified during batch processing.
TransferFromReqLineToPurchLine(Record Purchase Line, Record Requisition Line) :#
Summary: this function handle additional fields to transfered form requisition Line to purchase line
procedure TransferFromReqLineToPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
Parameters:
PurchaseLine: Purchase Line, in which data is to be writtenRequisitionLine: Requisition Line, from which the data is to be taken
Remarks: This procedure transfers KUMAVISION-specific fields from a requisition line to a purchase line during the carry-out action. It assigns blanket order references (number and line number) to the purchase line. Additionally, based on the Purchases & Payables Setup option KVSKBAActPriceAtTransfromReq, it can preserve pricing from the requisition line instead of recalculating. When set to NonewpriceCalc, it transfers direct unit cost, line discount percentage, price origin, and line discount origin, preventing price recalculation. Extensions can transfer additional custom fields through the OnTransferFromReqLineToPurchLineOnAssignValuestoPurchLine event. This ensures that manually adjusted or negotiated prices on requisition lines are preserved when creating purchase orders.
SplitReqLine(Record Requisition Line, Decimal) :#
Summary: this function splitts a requisition Line to the new requisition Line about the split quantity
procedure SplitReqLine(var OriginalRequisitionLine: Record "Requisition Line"; SplitQuantityBase: Decimal):
Parameters:
OriginalRequisitionLine: Requisition Line, original line from which a split line is to be createdSplitQuantityBase: Quantity (Base), which is to be split
Remarks: This procedure splits a requisition line into two lines by creating a new line with the specified split quantity and reducing the original line accordingly. It calculates the new line number by finding the midpoint between the current line and the next line, or adds 10000 if it's the last line. If no line number space is available, it raises an error. The procedure creates a new requisition line, validates its quantity, copies dimension set ID, transfers reservation entries, and adjusts the original line's quantity. Extensions can customize the split behavior through OnSplitReqLineOnBeforeNewSplittReqLineModify and OnSplitReqLineOnAfterNewSplittReqLineModify events. This is primarily used during blanket order assignment when available blanket order quantity is less than the requisition line quantity.
OnDeleteReqLine(Record Requisition Line) :#
Obsolete
This Element will be removed or changed with a future Version of the App.
Summary: Delete further data records when the requisition line is deleted
[Obsolete('The procedure is be replaced by OnDeleteReqLine with addional parameters DeleteAllLines.', '27.0')]
procedure OnDeleteReqLine(RequisitionLine: Record "Requisition Line"):
Parameters:
RequisitionLine: Requisition Line, which is deleted
OnDeleteReqLine(Record Requisition Line, Boolean) :#
Summary: Delete further data records when the requisition line is deleted
procedure OnDeleteReqLine(RequisitionLine: Record "Requisition Line"; DeleteAllLines: Boolean):
Parameters:
RequisitionLine: Requisition Line, which is deleted (for filtering)DeleteAllLines: Indicates whether all lines of the requisition are being deleted
Remarks: The standard event specifies the DeleteAllLines parameter, which indicates whether a specific requisition line or all requisition lines are to be deleted.
TransferFromReqLineToProdOrder(Record Production Order, Record Requisition Line) :#
Summary: This function transfers additional values from the Requisition Line to a new created Production Order
procedure TransferFromReqLineToProdOrder(var ProductionOrder: Record "Production Order"; RequisitionLine: Record "Requisition Line"):
Parameters:
ProductionOrder: Production Order, in which the values are to be setRequisitionLine: Requisition Line, from which the data is to be take
Remarks: This procedure transfers the assigned user ID from a requisition line to a newly created production order during the carry-out action, ensuring the user responsible for planning the production retains ownership of the created order. This maintains workflow continuity from planning to execution and enables user-specific production order filtering and work queue management. The procedure is called automatically during the carry-out process when requisition lines are converted to production orders, supporting KUMAVISION's user assignment and responsibility tracking features.
CalcAvailability(Record Requisition Line) : Decimal#
Summary: Calculates the item availability for the specified requisition line.
procedure CalcAvailability(RequisitionLine: Record "Requisition Line"): Decimal
Parameters:
RequisitionLine: The requisition line record for which to calculate availability.
Returns: The calculated availability amount as a decimal value.
Remarks: This procedure calculates item availability using the standard Available to Promise (ATP) logic from Business Central. It retrieves the item record, sets filters for date (up to due date or work date), variant code, location code, and excludes drop shipments. The procedure then calls the CalcQtyAvailableToPromise function which considers scheduled receipts, gross requirements, and lookahead periods. Extensions can customize the availability calculation or provide alternative logic through the OnBeforeCalcAvailability integration event by setting IsHandled to true and returning a custom AvailableQuantity value. This is used throughout requisition worksheets and planning to display item availability and help users make informed decisions.
CalcNoOfPurchasePrices(Record Requisition Line) : Integer#
Summary: Calculates the number of purchase prices available for a requisition line.
procedure CalcNoOfPurchasePrices(var RequisitionLine: Record "Requisition Line"): Integer
Parameters:
RequisitionLine: Requisition line to count purchase prices for
Returns: Number of available purchase prices as integer
Remarks: This procedure counts the number of applicable purchase prices for a requisition line using the KUMAVISION price calculation functionality. It calls the KVSKBACountPrice method with parameter true to count valid purchase price entries that match the item, vendor, quantity, and date criteria. The count is used to display indicators on requisition worksheets showing when multiple pricing options are available, helping users identify items with negotiated prices or special pricing agreements. This supports the KUMAVISION graduated pricing and condition-based pricing features.
CalcNoOfRequisitionLineDisc(Record Requisition Line) : Integer#
Summary: Calculates the number of line discounts available for a requisition line.
procedure CalcNoOfRequisitionLineDisc(var RequisitionLine: Record "Requisition Line"): Integer
Parameters:
RequisitionLine: Requisition line to count discounts for
Returns: Number of available line discounts as integer
Remarks: This procedure counts the number of applicable line discounts for a requisition line using the KUMAVISION discount calculation functionality. It calls the KVSKBACountDiscount method with parameter true to count valid line discount entries that match the item, vendor, quantity, and date criteria. The count is used to display indicators on requisition worksheets showing when discount opportunities are available, helping users identify items with negotiated discounts or promotional pricing. This supports the KUMAVISION graduated discount and condition-based discount features for purchase planning.
Events#
OnBeforeAssignBlanketOrdersToReqLines(Record Requisition Line, Option, Boolean) :#
Summary: Integration event that allows customization before assigning blanket orders to requisition lines.
[IntegrationEvent(false, false)]
local procedure OnBeforeAssignBlanketOrdersToReqLines(var RequisitionLine: Record "Requisition Line"; AssignmentMethod: Option; var HandledLoc: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeAssignBlanketOrdersToReqLines', '', false, false)]
local procedure DoSomethingOnBeforeAssignBlanketOrdersToReqLines(var RequisitionLine: Record "Requisition Line"; AssignmentMethod: Option; var HandledLoc: Boolean)
begin
end;
Parameters:
RequisitionLine: Requisition line being processed for blanket order assignmentAssignmentMethod: Assignment method (assign, reassign, delete)HandledLoc: Variable indicating whether a subscriber has handled the assignment
Remarks: Set HandledLoc to true to skip standard blanket order assignment logic
OnAssignBlanketOrdersToReqLinesOnAfterSetCurrentKey(Record Purchase Line, Record Requisition Line, Option) :#
Summary: Integration event that allows customization after setting current key for blanket order assignment.
[IntegrationEvent(false, false)]
local procedure OnAssignBlanketOrdersToReqLinesOnAfterSetCurrentKey(var PurchaseLine: Record "Purchase Line"; RequisitionLine: Record "Requisition Line"; AssignmentMethod: Option):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAssignBlanketOrdersToReqLinesOnAfterSetCurrentKey', '', false, false)]
local procedure DoSomethingOnAssignBlanketOrdersToReqLinesOnAfterSetCurrentKey(var PurchaseLine: Record "Purchase Line"; RequisitionLine: Record "Requisition Line"; AssignmentMethod: Option)
begin
end;
Parameters:
PurchaseLine: Purchase line record with applied filtersRequisitionLine: Requisition line being processedAssignmentMethod: Assignment method being used
Remarks: Use this event to modify filters or sorting for blanket order purchase lines
OnDrillDownBlanketOrderLinesOnSetFilterBlanketPurchLine(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization of filters for blanket order line drill-down.
[IntegrationEvent(false, false)]
local procedure OnDrillDownBlanketOrderLinesOnSetFilterBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnDrillDownBlanketOrderLinesOnSetFilterBlanketPurchLine', '', false, false)]
local procedure DoSomethingOnDrillDownBlanketOrderLinesOnSetFilterBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Purchase line record to apply additional filters toRequisitionLine: Requisition line providing context for filtering
Remarks: Use this event to add custom filters for blanket order line drill-down functionality
OnLookupBlanketOrderLinesOnSetFilterBlanketPurchLine(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization of filters for blanket order line lookup.
[IntegrationEvent(false, false)]
local procedure OnLookupBlanketOrderLinesOnSetFilterBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnLookupBlanketOrderLinesOnSetFilterBlanketPurchLine', '', false, false)]
local procedure DoSomethingOnLookupBlanketOrderLinesOnSetFilterBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Purchase line record to apply additional filters toRequisitionLine: Requisition line providing context for filtering
Remarks: Use this event to add custom filters for blanket order line lookup functionality
OnLookupBlanketOrderLinesOnBeforeAssignBlanketOrderValues(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization before assigning blanket order values during lookup.
[IntegrationEvent(false, false)]
local procedure OnLookupBlanketOrderLinesOnBeforeAssignBlanketOrderValues(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnLookupBlanketOrderLinesOnBeforeAssignBlanketOrderValues', '', false, false)]
local procedure DoSomethingOnLookupBlanketOrderLinesOnBeforeAssignBlanketOrderValues(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Purchase line record selected in lookupRequisitionLine: Requisition line to assign values to
Remarks: Use this event to modify values before they are assigned from blanket order to requisition line
OnSplitReqLineOnAfterNewSplittReqLineModify(Record Requisition Line, Record Requisition Line, Decimal) :#
Summary: Integration event that allows customization after modifying a new split requisition line.
[IntegrationEvent(false, false)]
local procedure OnSplitReqLineOnAfterNewSplittReqLineModify(var NewRequisitionLine: Record "Requisition Line"; var OrigRequisitionLine: Record "Requisition Line"; SplittQtyBase: Decimal):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnSplitReqLineOnAfterNewSplittReqLineModify', '', false, false)]
local procedure DoSomethingOnSplitReqLineOnAfterNewSplittReqLineModify(var NewRequisitionLine: Record "Requisition Line"; var OrigRequisitionLine: Record "Requisition Line"; SplittQtyBase: Decimal)
begin
end;
Parameters:
NewRequisitionLine: New requisition line created from splittingOrigRequisitionLine: Original requisition line that was splitSplittQtyBase: Quantity (Base) that was split off
Remarks: Use this event to perform additional actions after a new split line has been created and modified
OnSplitReqLineOnBeforeNewSplittReqLineModify(Record Requisition Line, Record Requisition Line, Decimal) :#
Summary: Integration event that allows customization before modifying a new split requisition line.
[IntegrationEvent(false, false)]
local procedure OnSplitReqLineOnBeforeNewSplittReqLineModify(var NewRequisitionLine: Record "Requisition Line"; var OrigRequisitionLine: Record "Requisition Line"; SplittQtyBase: Decimal):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnSplitReqLineOnBeforeNewSplittReqLineModify', '', false, false)]
local procedure DoSomethingOnSplitReqLineOnBeforeNewSplittReqLineModify(var NewRequisitionLine: Record "Requisition Line"; var OrigRequisitionLine: Record "Requisition Line"; SplittQtyBase: Decimal)
begin
end;
Parameters:
NewRequisitionLine: New requisition line being created from splittingOrigRequisitionLine: Original requisition line being splitSplittQtyBase: Quantity (Base) being split off
Remarks: Use this event to set additional values on the new split line before it is modified
OnTransferFromReqLineToPurchLineOnAssignValuestoPurchLine(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization when transferring values from requisition line to purchase line.
[IntegrationEvent(false, false)]
local procedure OnTransferFromReqLineToPurchLineOnAssignValuestoPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnTransferFromReqLineToPurchLineOnAssignValuestoPurchLine', '', false, false)]
local procedure DoSomethingOnTransferFromReqLineToPurchLineOnAssignValuestoPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Purchase line receiving the valuesRequisitionLine: Requisition line providing the values
Remarks: Use this event to transfer additional custom fields from requisition line to purchase line
OnBeforeAssignBlanketPurchLine(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization before assigning a blanket purchase line to a requisition line.
[IntegrationEvent(false, false)]
local procedure OnBeforeAssignBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeAssignBlanketPurchLine', '', false, false)]
local procedure DoSomethingOnBeforeAssignBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Blanket purchase line being assignedRequisitionLine: Requisition line receiving the assignment
Remarks: Use this event to perform validations or modifications before blanket order assignment
OnAfterAssignBlanketPurchLine(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization after assigning a blanket purchase line to a requisition line.
[IntegrationEvent(false, false)]
local procedure OnAfterAssignBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAfterAssignBlanketPurchLine', '', false, false)]
local procedure DoSomethingOnAfterAssignBlanketPurchLine(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Blanket purchase line that was assignedRequisitionLine: Requisition line that received the assignment
Remarks: Use this event to perform additional actions after blanket order assignment is complete
OnBeforeVerifyQtyToBlanketOrderQty(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization before verifying quantity against blanket order quantity.
[IntegrationEvent(false, false)]
local procedure OnBeforeVerifyQtyToBlanketOrderQty(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeVerifyQtyToBlanketOrderQty', '', false, false)]
local procedure DoSomethingOnBeforeVerifyQtyToBlanketOrderQty(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
PurchaseLine: Blanket purchase line being verifiedRequisitionLine: Requisition line being validated
Remarks: Use this event to modify validation logic before quantity verification
OnVerifyQtyToBlanketOrderQtyOnAfterCalculateRemainingBlanketOrderQty(Record Purchase Line, Record Requisition Line, Decimal) :#
Summary: Integration event that allows customization after calculating remaining blanket order quantity.
[IntegrationEvent(false, false)]
local procedure OnVerifyQtyToBlanketOrderQtyOnAfterCalculateRemainingBlanketOrderQty(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"; var RemainingBlanketOrderQty: Decimal):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnVerifyQtyToBlanketOrderQtyOnAfterCalculateRemainingBlanketOrderQty', '', false, false)]
local procedure DoSomethingOnVerifyQtyToBlanketOrderQtyOnAfterCalculateRemainingBlanketOrderQty(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"; var RemainingBlanketOrderQty: Decimal)
begin
end;
Parameters:
PurchaseLine: Blanket purchase line being processedRequisitionLine: Requisition line being validatedRemainingBlanketOrderQty: Calculated remaining quantity on blanket order
Remarks: Use this event to modify the remaining quantity calculation or perform additional validations
OnBeforeDrillDownBlanketOrderLines(Record Requisition Line, Boolean, Boolean) :#
Summary: Integration event that allows customization before drilling down to blanket order lines.
[IntegrationEvent(false, false)]
local procedure OnBeforeDrillDownBlanketOrderLines(RequisitionLine: Record "Requisition Line"; FilterwithVendor: Boolean; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeDrillDownBlanketOrderLines', '', false, false)]
local procedure DoSomethingOnBeforeDrillDownBlanketOrderLines(RequisitionLine: Record "Requisition Line"; FilterwithVendor: Boolean; var IsHandled: Boolean)
begin
end;
Parameters:
RequisitionLine: Requisition line providing context for drill-downFilterwithVendor: Whether to filter by vendorIsHandled: Variable indicating whether a subscriber has handled the drill-down
Remarks: Set IsHandled to true to skip standard drill-down logic and implement custom behavior
OnBeforeGetBlanketOrderData(Record Requisition Line, Boolean, Boolean) :#
Summary: Integration event that allows customization before getting blanket order data.
[IntegrationEvent(false, false)]
local procedure OnBeforeGetBlanketOrderData(var RequisitionLine: Record "Requisition Line"; var Returnvalue: Boolean; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeGetBlanketOrderData', '', false, false)]
local procedure DoSomethingOnBeforeGetBlanketOrderData(var RequisitionLine: Record "Requisition Line"; var Returnvalue: Boolean; var IsHandled: Boolean)
begin
end;
Parameters:
RequisitionLine: Requisition line to get blanket order data forReturnvalue: Variable indicating success of the operationIsHandled: Variable indicating whether a subscriber has handled the operation
Remarks: Set IsHandled to true to skip standard blanket order data retrieval
OnGetBlanketOrderDataOnAfterAssignValues(Record Purchase Line, Record Requisition Line) :#
Summary: Integration event that allows customization after assigning values from blanket order data.
[IntegrationEvent(false, false)]
local procedure OnGetBlanketOrderDataOnAfterAssignValues(BlanketPurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnGetBlanketOrderDataOnAfterAssignValues', '', false, false)]
local procedure DoSomethingOnGetBlanketOrderDataOnAfterAssignValues(BlanketPurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
BlanketPurchaseLine: Blanket purchase line providing the dataRequisitionLine: Requisition line receiving the values
Remarks: Use this event to assign additional custom values from blanket order to requisition line
OnBeforeResetBlanketOrderData(Record Requisition Line, Boolean) :#
Summary: Integration event that allows customization before resetting blanket order data.
[IntegrationEvent(false, false)]
local procedure OnBeforeResetBlanketOrderData(var RequisitionLine: Record "Requisition Line"; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeResetBlanketOrderData', '', false, false)]
local procedure DoSomethingOnBeforeResetBlanketOrderData(var RequisitionLine: Record "Requisition Line"; var IsHandled: Boolean)
begin
end;
Parameters:
RequisitionLine: Requisition line to reset blanket order data forIsHandled: Variable indicating whether a subscriber has handled the reset
Remarks: Set IsHandled to true to skip standard blanket order data reset
OnAfterResetBlanketOrderData(Record Requisition Line) :#
Summary: Integration event that allows customization after resetting blanket order data.
[IntegrationEvent(false, false)]
local procedure OnAfterResetBlanketOrderData(var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAfterResetBlanketOrderData', '', false, false)]
local procedure DoSomethingOnAfterResetBlanketOrderData(var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
RequisitionLine: Requisition line that had blanket order data reset
Remarks: Use this event to perform additional actions after blanket order data has been reset
OnBeforeGetAssignedBlanketOrderQty(Record Requisition Line, Code[20], Integer, Decimal, Boolean) :#
Summary: Integration event that allows customization before getting assigned blanket order quantity.
[IntegrationEvent(false, false)]
local procedure OnBeforeGetAssignedBlanketOrderQty(RequisitionLine: Record "Requisition Line"; SearchBlanketOrderNo: Code[20]; SearchBlanketOrderLineNo: Integer; var ReturnValue: Decimal; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeGetAssignedBlanketOrderQty', '', false, false)]
local procedure DoSomethingOnBeforeGetAssignedBlanketOrderQty(RequisitionLine: Record "Requisition Line"; SearchBlanketOrderNo: Code[20]; SearchBlanketOrderLineNo: Integer; var ReturnValue: Decimal; var IsHandled: Boolean)
begin
end;
Parameters:
RequisitionLine: Current requisition line (excluded from calculation)SearchBlanketOrderNo: Blanket order number to search forSearchBlanketOrderLineNo: Blanket order line number to search forReturnValue: Variable to store the calculated assigned quantityIsHandled: Variable indicating whether a subscriber has handled the calculation
Remarks: Set IsHandled to true to provide custom logic for calculating assigned blanket order quantities
OnGetAssignedBlanketOrderQtyOnAfterSetFilterRequisitionLine(Record Requisition Line, Record Requisition Line, Code[20], Integer) :#
Summary: Integration event that allows customization of filters when getting assigned blanket order quantity.
[IntegrationEvent(false, false)]
local procedure OnGetAssignedBlanketOrderQtyOnAfterSetFilterRequisitionLine(var RequisitionLine: Record "Requisition Line"; CurrentRequisitionLine: Record "Requisition Line"; SearchBlanketOrderNo: Code[20]; SearchBlanketOrderLineNo: Integer):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnGetAssignedBlanketOrderQtyOnAfterSetFilterRequisitionLine', '', false, false)]
local procedure DoSomethingOnGetAssignedBlanketOrderQtyOnAfterSetFilterRequisitionLine(var RequisitionLine: Record "Requisition Line"; CurrentRequisitionLine: Record "Requisition Line"; SearchBlanketOrderNo: Code[20]; SearchBlanketOrderLineNo: Integer)
begin
end;
Parameters:
RequisitionLine: Requisition line record with applied filtersCurrentRequisitionLine: Current requisition line being processedSearchBlanketOrderNo: Blanket order number being searchedSearchBlanketOrderLineNo: Blanket order line number being searched
Remarks: Use this event to add additional filters when calculating assigned blanket order quantities
OnBeforeLookupBlanketOrderLines(Record Requisition Line, Boolean, Boolean) :#
Summary: Integration event that allows customization before looking up blanket order lines.
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupBlanketOrderLines(var RequisitionLine: Record "Requisition Line"; var ReturnValue: Boolean; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeLookupBlanketOrderLines', '', false, false)]
local procedure DoSomethingOnBeforeLookupBlanketOrderLines(var RequisitionLine: Record "Requisition Line"; var ReturnValue: Boolean; var IsHandled: Boolean)
begin
end;
Parameters:
RequisitionLine: Requisition line context for the lookupReturnValue: Variable indicating success of the lookupIsHandled: Variable indicating whether a subscriber has handled the lookup
Remarks: Set IsHandled to true to skip standard blanket order line lookup
OnAfterOnDeleteReqLine(Record Requisition Line, Boolean) :#
Summary: Integration event: Allows subscribers to perform custom actions after a requisition line (or all lines) has been deleted.
[IntegrationEvent(false, false)]
local procedure OnAfterOnDeleteReqLine(RequisitionLine: Record "Requisition Line"; DeleteAllLines: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAfterOnDeleteReqLine', '', false, false)]
local procedure DoSomethingOnAfterOnDeleteReqLine(RequisitionLine: Record "Requisition Line"; DeleteAllLines: Boolean)
begin
end;
Parameters:
RequisitionLine: The requisition line record that was deleted (used for filtering).DeleteAllLines: Indicates whether all lines of the requisition were deleted (true) or only a specific line (false).
Remarks: This event is triggered after the deletion of a requisition line or all lines in a requisition. Subscribers can use this event to clean up related data, trigger notifications, or implement additional business logic that should occur after the deletion process. The DeleteAllLines parameter allows differentiation between single line and batch deletions, enabling more granular handling of post-delete scenarios.
OnAfterSetFilterBlanketOrderPurchaseLine(Record Purchase Line, Record Requisition Line, Boolean) :#
Summary: Integration event that allows customization after setting filters for blanket order purchase lines.
[IntegrationEvent(false, false)]
local procedure OnAfterSetFilterBlanketOrderPurchaseLine(var BlanketOrderPurchaseLine: Record "Purchase Line"; var AssigntoRequisitionLine: Record "Requisition Line"; FilterEmptyLocationCode: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAfterSetFilterBlanketOrderPurchaseLine', '', false, false)]
local procedure DoSomethingOnAfterSetFilterBlanketOrderPurchaseLine(var BlanketOrderPurchaseLine: Record "Purchase Line"; var AssigntoRequisitionLine: Record "Requisition Line"; FilterEmptyLocationCode: Boolean)
begin
end;
Parameters:
BlanketOrderPurchaseLine: Purchase line record with applied filtersAssigntoRequisitionLine: Requisition line being processed for assignmentFilterEmptyLocationCode: Whether filtering by empty location code
Remarks: Use this event to add additional filters for blanket order purchase line selection
OnBeforeCalcAvailability(Record Item, Record Requisition Line, Decimal, Boolean) :#
Summary: Integration event that is triggered before calculating availability for an item in a requisition line.
[IntegrationEvent(false, false)]
local procedure OnBeforeCalcAvailability(var Item: Record "Item"; RequisitionLine: Record "Requisition Line"; var AvailableQuantity: Decimal; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnBeforeCalcAvailability', '', false, false)]
local procedure DoSomethingOnBeforeCalcAvailability(var Item: Record "Item"; RequisitionLine: Record "Requisition Line"; var AvailableQuantity: Decimal; var IsHandled: Boolean)
begin
end;
Parameters:
Item: The item record for which availability is being calculated.RequisitionLine: The requisition line for which availability is being calculated.AvailableQuantity: The quantity that is available for the item.IsHandled: Boolean indicating whether the calculation has been handled by a subscriber. If set to true, the standard calculation will be skipped.
Remarks: This event allows you to modify the available quantity or completely override the standard availability calculation logic. Subscribe to this event if you need to customize how item availability is determined for requisition lines.
OnCalculateOrderAmountOnAfterSetRequisitionLineFilters(Record Requisition Line, Record Requisition Line) :#
Summary: Integration event that allows customization of requisition line filters when calculating order amounts.
[IntegrationEvent(false, false)]
local procedure OnCalculateOrderAmountOnAfterSetRequisitionLineFilters(var RequisitionLineFind: Record "Requisition Line"; var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnCalculateOrderAmountOnAfterSetRequisitionLineFilters', '', false, false)]
local procedure DoSomethingOnCalculateOrderAmountOnAfterSetRequisitionLineFilters(var RequisitionLineFind: Record "Requisition Line"; var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
RequisitionLineFind: Requisition line record with applied filters for calculationRequisitionLine: Original requisition line providing context
Remarks: Use this event to add additional filters when calculating order amounts across requisition lines
OnAssignBlanketOrdersOnAfterSetFilterToAssignToRequisitionLine(Record Requisition Line) :#
Summary: Integration event that is triggered after setting the filter for assigning blanket orders to requisition lines
[IntegrationEvent(false, false)]
local procedure OnAssignBlanketOrdersOnAfterSetFilterToAssignToRequisitionLine(var RequisitionLine: Record "Requisition Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAssignBlanketOrdersOnAfterSetFilterToAssignToRequisitionLine', '', false, false)]
local procedure DoSomethingOnAssignBlanketOrdersOnAfterSetFilterToAssignToRequisitionLine(var RequisitionLine: Record "Requisition Line")
begin
end;
Parameters:
RequisitionLine: The requisition line record to which the blanket order line is being assigned
Remarks: This event allows subscribers to perform additional logic or modifications after setting the filter for assigning blanket orders to requisition lines.
OnAssignBlanketPurchLineOnAfterCalculateRemainingBlanketOrderQty(Record Purchase Line, Record Requisition Line, Decimal) :#
Summary: Integration event that is triggered after calculating the remaining blanket order quantity
[IntegrationEvent(false, false)]
local procedure OnAssignBlanketPurchLineOnAfterCalculateRemainingBlanketOrderQty(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"; var RemainingBlanketOrderQty: Decimal):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAssignBlanketPurchLineOnAfterCalculateRemainingBlanketOrderQty', '', false, false)]
local procedure DoSomethingOnAssignBlanketPurchLineOnAfterCalculateRemainingBlanketOrderQty(var PurchaseLine: Record "Purchase Line"; var RequisitionLine: Record "Requisition Line"; var RemainingBlanketOrderQty: Decimal)
begin
end;
Parameters:
PurchaseLine: The purchase line record representing the blanket order line.RequisitionLine: The requisition line record to which the blanket order line is being assigned.RemainingBlanketOrderQty: The remaining quantity available on the blanket order line after assignment.
Remarks: This event allows subscribers to perform additional logic or modifications after the remaining blanket order quantity has been calculated.
OnAssignBlanketPurchLineOnBeforeModifyAssignToRequisitionLine(Record Requisition Line, Record Purchase Line) :#
Summary: Integration event that is triggered before modifying and assigning values to a requisition line from a blanket purchase line.
[IntegrationEvent(false, false)]
local procedure OnAssignBlanketPurchLineOnBeforeModifyAssignToRequisitionLine(var RequisitionLine: Record "Requisition Line"; PurchaseLine: Record "Purchase Line"):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBARequisitionLib", 'OnAssignBlanketPurchLineOnBeforeModifyAssignToRequisitionLine', '', false, false)]
local procedure DoSomethingOnAssignBlanketPurchLineOnBeforeModifyAssignToRequisitionLine(var RequisitionLine: Record "Requisition Line"; PurchaseLine: Record "Purchase Line")
begin
end;
Parameters:
RequisitionLine: The requisition line record to be modified and assigned values.PurchaseLine: The purchase line record representing the blanket order line.
Remarks: This event allows subscribers to perform custom logic or validations before the requisition line is updated with values from the blanket purchase line.