Skip to content

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 ReturnValue
  • SearchBlanketOrderNo: Blanket order number to be searched with
  • SearchBlanketOrderLineNo: 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 set
  • AssignmentMethod: 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 check
  • SetPreviousValues: 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 written
  • RequisitionLine: 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 created
  • SplitQuantityBase: 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 set
  • RequisitionLine: 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 assignment
  • AssignmentMethod: 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 filters
  • RequisitionLine: Requisition line being processed
  • AssignmentMethod: 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 to
  • RequisitionLine: 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 to
  • RequisitionLine: 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 lookup
  • RequisitionLine: 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 splitting
  • OrigRequisitionLine: Original requisition line that was split
  • SplittQtyBase: 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 splitting
  • OrigRequisitionLine: Original requisition line being split
  • SplittQtyBase: 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 values
  • RequisitionLine: 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 assigned
  • RequisitionLine: 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 assigned
  • RequisitionLine: 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 verified
  • RequisitionLine: 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 processed
  • RequisitionLine: Requisition line being validated
  • RemainingBlanketOrderQty: 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-down
  • FilterwithVendor: Whether to filter by vendor
  • IsHandled: 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 for
  • Returnvalue: Variable indicating success of the operation
  • IsHandled: 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 data
  • RequisitionLine: 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 for
  • IsHandled: 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 for
  • SearchBlanketOrderLineNo: Blanket order line number to search for
  • ReturnValue: Variable to store the calculated assigned quantity
  • IsHandled: 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 filters
  • CurrentRequisitionLine: Current requisition line being processed
  • SearchBlanketOrderNo: Blanket order number being searched
  • SearchBlanketOrderLineNo: 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 lookup
  • ReturnValue: Variable indicating success of the lookup
  • IsHandled: 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 filters
  • AssigntoRequisitionLine: Requisition line being processed for assignment
  • FilterEmptyLocationCode: 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 calculation
  • RequisitionLine: 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.