Skip to content

KVSKBASalesLine#

Extends #437dbf0e84ff417a965ded2bb9650972#Sales Line

Fields#

Name Type Note
KVSKBAUnitPricePriceUnit Decimal
KVSKBAPriceUnit Decimal
KVSKBAItemPriceGroup Code[10]
KVSKBAItemDiscGroup Code[20]
KVSKBADocumentProcessID Code[20]
KVSKBAPreviousText Boolean FlowField
KVSKBAAfterText Boolean FlowField
KVSKBAAlternative Enum (KVSKBAAlternative)
KVSKBAIndentation Integer
KVSKBASubtotal Decimal FlowField
KVSKBASubtotalPrepmtLineAmount Decimal FlowField
KVSKBASubtotalPrepmtAmtInv Decimal FlowField
KVSKBAPositionNo Code[20]
KVSKBATotaling Text[20]
KVSKBAPrintLine Boolean
KVSKBAPrintPrice Boolean
KVSKBAPrintPageBreak Boolean
KVSKBAFontStyle Enum (KVSKBAFontStyle)
KVSKBANullPosition Enum (KVSKBANullPosition) Warning: Obsolete
KVSKBANotBillable Code[20]
KVSKBAOldPlannedDeliveryDate Date
KVSKBASaveAllowInvDisc Boolean
KVSKBAProductCommGrpCode Code[10]
KVSKBAInvoiceRoundingLine Boolean
KVSKBAPriceCalcExist Boolean FlowField
KVSKBADiscountCalcExist Boolean FlowField
KVSKBAPriceOrigin Enum (KVSKBASalesPriceOrigin)
KVSKBALineDiscountOrigin Enum (KVSKBASalesLineDiscountOrigin)
KVSKBAOrderBacklogLCY Decimal
KVSKBAAmountNetLCY Decimal
KVSKBAInvoicedNetLCY Decimal
KVSKBAShippednotInvoicedNetLCY Decimal
KVSKBAContractNo Code[20]
KVSKBAContractLineNo Integer
KVSKBARelMinProfitCheckedOn DateTime
KVSKBARelMinProfitCheckedBy Code[50]
KVSKBAOrderBacklog Decimal
KVSKBAOrderNoInvoiceCorrect Code[20]
KVSKBAOrderLineNoInvCorrect Integer
KVSKBADeliveryPricingDate Date
KVSKBATempChangeQtySuspended Boolean
KVSKBAPrintCalenderWeek Boolean

Procedures#

KVSKBASetTempSalesPriceDiscCalcLine(Record KVSKBASalesPriceDiscCalcLine, Enum KVSKBAPriceDiscLineType) :#

Summary: Sets temporary sales price and discount calculation lines based on the specified type.

procedure KVSKBASetTempSalesPriceDiscCalcLine(var TempSalesPriceDiscCalcLine: Record "KVSKBASalesPriceDiscCalcLine"; PriceDiscLineType: Enum "KVSKBAPriceDiscLineType"): 

Parameters:

  • TempSalesPriceDiscCalcLine: Temporary record containing the price or discount calculation lines to copy.
  • PriceDiscLineType: Specifies whether the lines are for Price or Line Discount.

Remarks: This procedure clears any existing records of that type from the global TempKVSKBASalesPriceDiscCalcLine0 variable, and then copies the specified records into it.

KVSKBANavigateDocProcID() :#

Summary: Used for navigating to the document process flow from the sales line.

procedure KVSKBANavigateDocProcID(): 

Remarks: This procedure is called when the user clicks on the document process flow action on the sales line. It is necessary to set the document process ID on the document process flow page to link it to the correct sales line.

KVSKBASetDeletedInPage(Boolean) :#

Summary: Used for marking the sales line as deleted in the page, so that the line will be skipped in the price calculation and other processes that run on the page after the line is marked as deleted.

procedure KVSKBASetDeletedInPage(NewDeletedInPagePar: Boolean): 

Parameters:

  • NewDeletedInPagePar: Indicates whether the sales line is marked as deleted in the page.

Remarks: This procedure is called when the user deletes the sales line in the page. It is necessary to mark the line as deleted in the page to avoid issues with price calculation and other processes that run on the page after the line is deleted, because the record will not be actually deleted from the database until the changes on the page are posted. By marking the line as deleted in the page, the code can check this status and skip the line in the processes that run on the page after the line is marked as deleted, to avoid issues with price calculation and other processes.

KVSKBAIsPriceUpdateOfOtherItemLinesRequired(Record Sales Line) : Boolean#

Summary: Checks if the update of the unit price of other item lines is required based on the changes on the current sales line.

procedure KVSKBAIsPriceUpdateOfOtherItemLinesRequired(OldSalesLine: Record "Sales Line"): Boolean

Parameters:

  • OldSalesLine: The old sales line record to compare with the current sales line.

Returns: Indicates whether the update of the unit price of other item lines is required.

KVSKBAUpdateOtherItemLinesUnitPrice(Record Sales Line) :#

Summary: Updates the unit price of other item lines based on the changes on the current sales line.

procedure KVSKBAUpdateOtherItemLinesUnitPrice(OldSalesLine: Record "Sales Line"): 

Parameters:

  • OldSalesLine: The old sales line record to compare with the current sales line.

Remarks: This procedure is called after the changes on the sales line are posted, to update the unit price of other item lines if necessary based on the changes on the current sales line. By comparing the current sales line with the old sales line, the code can determine if the changes on the current sales line require an update of the unit price of other item lines, and then call the codeunit to perform the update if necessary.

KVSKBACheckPriceCalculationMethod() : Boolean#

Summary: Checks if the kba price calculation method is enabled.

procedure KVSKBACheckPriceCalculationMethod(): Boolean

Returns: Indicates whether the kba price calculation method is enabled.

Remarks: This procedure is used to check if the kba price calculation method is enabled, to determine whether to use this price calculation method in the code. By checking if this kba price calculation method is enabled, the code can ensure that it only uses this kba price calculation method when it is enabled, to avoid issues with price calculation when this kba price calculation method is not enabled.

KVSKBABlanketOrderLookupFromExternal() :#

Summary: Used for blanket order line lookup to link the sales line with the a selected blanket order line.

procedure KVSKBABlanketOrderLookupFromExternal(): 

Remarks: This procedure is called to initiate the blanket order line lookup process. It is necessary so that the blocked prices can be calculated after the lookup on the page.

KVSKBASearchItemByAttributes() :#

Summary: Used for item attribute search to find items with similar attributes and update the sales line with the selected item.

procedure KVSKBASearchItemByAttributes(): 

Remarks: This procedure is called to initiate the item attribute search process. It is necessary so that the user can find items with similar attributes and update the sales line with the selected item on the page.

KVSKBASetUpdPriceDiscountFromBlankOrder(Enum KVSKBABlankYesNo) :#

Obsolete

This Element will be removed or changed with a future Version of the App.

[Obsolete('This procedure is no longer used, because the confirm is no longer used', '28.2')]
procedure KVSKBASetUpdPriceDiscountFromBlankOrder(UpdPriceDiscountFromBlankOrderPar: Enum "KVSKBABlankYesNo"): 

KVSKBAUpdSalesPriceDiscCalcLine() :#

Summary: Updates the sales price and discount calculation lines for the current sales line.

procedure KVSKBAUpdSalesPriceDiscCalcLine(): 

Remarks: This procedure checks for existing sales price and discount calculation lines, updates them, and manages temporary price/discount calculation lines based on certain conditions: - Only processes if Line No. is not zero - Removes line discount calculations if Allow Line Disc. is false - Updates calculated fields for price and discount existence - Cleans up temporary calculation lines when finished

KVSKBASetPriceOrigin(Enum KVSKBASalesPriceOrigin) :#

Summary: Sets the price origin for the current sales line.

procedure KVSKBASetPriceOrigin(KVSKBANewPriceOrigin: Enum "KVSKBASalesPriceOrigin"): 

Parameters:

  • KVSKBANewPriceOrigin: The new price origin to set.

Remarks: This procedure sets the price origin for the current sales line. Sets the KVSKBAPriceOrigin field to the new price origin. This can prevent the price from being overwritten by the price calculation, for example, if the origin is set to External or Manual.

KVSKBASetLineDiscountOrigin(Enum KVSKBASalesLineDiscountOrigin) :#

Summary: Sets the line discount origin for the current sales line.

procedure KVSKBASetLineDiscountOrigin(KVSKBANewLineDiscountOrigin: Enum "KVSKBASalesLineDiscountOrigin"): 

Parameters:

  • KVSKBANewLineDiscountOrigin: The new line discount origin to set.

Remarks: This procedure sets the line discount origin for the current sales line. Sets the KVSKBALineDiscountOrigin field to the new line discount origin. This can prevent the line discount from being overwritten by the price calculation, for example, if the origin is set to External or Manual.

Events#

KVSKBAOnBeforeTestJobPlanningLine(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before testing the job planning line on the sales line.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeTestJobPlanningLine(var SalesLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeTestJobPlanningLine', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeTestJobPlanningLine(var SalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows customization before testing the job planning line. Set IsHandled to true to skip the default testing behavior.

KVSKBAOnAfterBlanketOrderLookup(Record Sales Line) :#

Summary: Integration event that is raised before validating the blanket order line number.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnAfterBlanketOrderLookup(var SalesLine: Record "Sales Line"): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnAfterBlanketOrderLookup', '', false, false)]
local procedure DoSomethingKVSKBAOnAfterBlanketOrderLookup(var SalesLine: Record "Sales Line")
begin
end;

Parameters:

  • SalesLine: The Sales Line record.

Remarks: This event allows customization after validating the blanket order line number.

KVSKBAOnBeforeBlanketOrderLookupWithVar(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before validating the blanket order line number.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeBlanketOrderLookupWithVar(var SalesLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeBlanketOrderLookupWithVar', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeBlanketOrderLookupWithVar(var SalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows customization before validating the blanket order line number. Set IsHandled to true to skip the default validation behavior.

KVSKBAOnBlanketOrderLookupOnBeforeAssignFields(Record Sales Line) :#

Summary: Integration event that is raised before validating the blanket order line number.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBlanketOrderLookupOnBeforeAssignFields(var SalesLine: Record "Sales Line"): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBlanketOrderLookupOnBeforeAssignFields', '', false, false)]
local procedure DoSomethingKVSKBAOnBlanketOrderLookupOnBeforeAssignFields(var SalesLine: Record "Sales Line")
begin
end;

Parameters:

  • SalesLine: The Sales Line record.

Remarks: This event allows customization before assigning fields in the blanket order lookup.

KVSKBAOnBeforeCheckAllowFindNewSalesLinePrice(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before checking if finding new sales line price is allowed.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeCheckAllowFindNewSalesLinePrice(SalesLine: Record "Sales Line"; var SkipItemSalesPriceCalc: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeCheckAllowFindNewSalesLinePrice', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeCheckAllowFindNewSalesLinePrice(SalesLine: Record "Sales Line"; var SkipItemSalesPriceCalc: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • SkipItemSalesPriceCalc: Set to true if the item sales price calculation should be skipped.

Remarks: This event allows customization before checking if finding new sales line price is allowed. Set SkipItemSalesPriceCalc to true to skip the item sales price calculation.

KVSKBAOnBeforeCheckAllowFindNewSalesLineDisc(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before checking if finding new sales line discount is allowed.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeCheckAllowFindNewSalesLineDisc(SalesLine: Record "Sales Line"; var SkipItemSalesDiscCalc: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeCheckAllowFindNewSalesLineDisc', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeCheckAllowFindNewSalesLineDisc(SalesLine: Record "Sales Line"; var SkipItemSalesDiscCalc: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • SkipItemSalesDiscCalc: Set to true if the item sales discount calculation should be skipped.

Remarks: This event allows customization before checking if finding new sales line discount is allowed. Set SkipItemSalesDiscCalc to true to skip the item sales discount calculation.

KVSKBAOnBeforeUpdSalesPriceDiscCalcLine(Record Sales Line, Record KVSKBASalesPriceDiscCalcLine, Boolean) :#

Summary: Integration event that is raised before updating sales price and discount calculation lines.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeUpdSalesPriceDiscCalcLine(SalesLine: Record "Sales Line"; var TempKVSKBASalesPriceDiscCalcLine: Record "KVSKBASalesPriceDiscCalcLine" temporary; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeUpdSalesPriceDiscCalcLine', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeUpdSalesPriceDiscCalcLine(SalesLine: Record "Sales Line"; var TempKVSKBASalesPriceDiscCalcLine: Record "KVSKBASalesPriceDiscCalcLine" temporary; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • TempKVSKBASalesPriceDiscCalcLine: The temporary sales price and discount calculation lines.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows customization before updating sales price and discount calculation lines. Set IsHandled to true to skip the default update behavior.

KVSKBAOnValidateNullPositionOnBeforeSelectTypeofNullPositionChangeWithIsHandled(Record Sales Line, Integer, Boolean) :#

Obsolete

This Element will be removed or changed with a future Version of the App.

[Obsolete('This event is only longer supported until BC29, please use KVSKBAOnValidateNotBillableOnBeforeSelectAskBillableHandlingType for the new Feature KVSKBANOTBILLABLE', '26.3')]
[IntegrationEvent(false, false)]
local procedure KVSKBAOnValidateNullPositionOnBeforeSelectTypeofNullPositionChangeWithIsHandled(SalesLine: Record "Sales Line"; var KVSKBADefaultSelectOption: Integer; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnValidateNullPositionOnBeforeSelectTypeofNullPositionChangeWithIsHandled', '', false, false)]
local procedure DoSomethingKVSKBAOnValidateNullPositionOnBeforeSelectTypeofNullPositionChangeWithIsHandled(SalesLine: Record "Sales Line"; var KVSKBADefaultSelectOption: Integer; var IsHandled: Boolean)
begin
end;

KVSKBAOnKVSKBANotBillableOnBeforeValidate(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before validating the 'Not Billable' field on the sales line.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnKVSKBANotBillableOnBeforeValidate(SalesLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnKVSKBANotBillableOnBeforeValidate', '', false, false)]
local procedure DoSomethingKVSKBAOnKVSKBANotBillableOnBeforeValidate(SalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows subscribers to add custom logic before the 'Not Billable' field is validated. For example, subscribers can set the field to 'Not Billable' based on custom conditions, or they can perform additional validations. If the subscriber sets IsHandled to true, the default validation logic for the 'Not Billable' field will be skipped, allowing for complete customization of the behavior when this field is validated.

KVSKBAOnValidateNotBillableOnBeforeSelectAskBillableHandlingType(Record Sales Line, Integer, Boolean) :#

Summary: Integration event that is raised before selecting the handling type for 'Not Billable' when 'Ask' option is chosen.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnValidateNotBillableOnBeforeSelectAskBillableHandlingType(SalesLine: Record "Sales Line"; var DefaultSelectOption: Integer; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnValidateNotBillableOnBeforeSelectAskBillableHandlingType', '', false, false)]
local procedure DoSomethingKVSKBAOnValidateNotBillableOnBeforeSelectAskBillableHandlingType(SalesLine: Record "Sales Line"; var DefaultSelectOption: Integer; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • DefaultSelectOption: The default option to select (1 for 'Full Discount', 2 for 'Empty Price and Discount').
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows subscribers to add custom logic before selecting the handling type for 'Not Billable'. For example, subscribers can set the DefaultSelectOption based on custom conditions, or they can perform additional actions related to the selection of the handling type.

KVSKBAOnValidateNullPositionOnAfterSetUnitPriceAndLineDiscounttoZero(Record Sales Line) :#

Summary: Integration event that is raised after selecting the handling type for 'Not Billable' when 'Ask' option is chosen.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnValidateNullPositionOnAfterSetUnitPriceAndLineDiscounttoZero(var SalesLine: Record "Sales Line"): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnValidateNullPositionOnAfterSetUnitPriceAndLineDiscounttoZero', '', false, false)]
local procedure DoSomethingKVSKBAOnValidateNullPositionOnAfterSetUnitPriceAndLineDiscounttoZero(var SalesLine: Record "Sales Line")
begin
end;

Parameters:

  • SalesLine: The Sales Line record.

Remarks: This event allows subscribers to add custom logic after selecting the handling type for 'Not Billable'. For example, subscribers can perform additional actions based on the selected handling type, or they can modify the Sales Line record accordingly.

KVSKBABeforeCheckFieldNotAllowedtoChange(Record Sales Line, Integer, Boolean) :#

Summary: Integration event that is raised before checking if a field is allowed to change.

[IntegrationEvent(false, false)]
local procedure KVSKBABeforeCheckFieldNotAllowedtoChange(SalesLine: Record "Sales Line"; CurrentFieldNo: Integer; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBABeforeCheckFieldNotAllowedtoChange', '', false, false)]
local procedure DoSomethingKVSKBABeforeCheckFieldNotAllowedtoChange(SalesLine: Record "Sales Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • CurrentFieldNo: The field number being checked.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows subscribers to add custom logic before a field is checked for changes. For example, subscribers can set IsHandled to true to skip the default check, or they can perform additional logic related to field changes.

KVSKBAOnBeforeAddCustomerNoAtKBATypes(Boolean) :#

Summary: Integration event that is raised before adding customer number to KBA types.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeAddCustomerNoAtKBATypes(var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeAddCustomerNoAtKBATypes', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeAddCustomerNoAtKBATypes(var IsHandled: Boolean)
begin
end;

Parameters:

  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows subscribers to add custom logic before customer numbers are added to KBA types. For example, subscribers can set IsHandled to true to skip adding customer numbers to KBA types, or they can perform additional logic related to customer numbers and KBA types.

KVSKBAOnBeforeConfirmTransferBlanketDataOnAfterValidateBlanketOrderNo(Record Sales Line, Enum KVSKBABlankYesNo, Boolean) :#

Obsolete

This Element will be removed or changed with a future Version of the App.

[Obsolete('This Event is no longer used, because the confirm is no longer used', '28.2')]
[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeConfirmTransferBlanketDataOnAfterValidateBlanketOrderNo(var SalesLine: Record "Sales Line"; var UpdatePriceDiscountFromBlankOrder: Enum "KVSKBABlankYesNo"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeConfirmTransferBlanketDataOnAfterValidateBlanketOrderNo', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeConfirmTransferBlanketDataOnAfterValidateBlanketOrderNo(var SalesLine: Record "Sales Line"; var UpdatePriceDiscountFromBlankOrder: Enum "KVSKBABlankYesNo"; var IsHandled: Boolean)
begin
end;

KVSKBAOnValidateBlanketOrderLineNoOnBeforeConfirmTransferBlanketData(Record Sales Line, Enum KVSKBABlankYesNo, Boolean) :#

Obsolete

This Element will be removed or changed with a future Version of the App.

[Obsolete('This Event is no longer used, because the confirm is no longer used', '28.2')]
[IntegrationEvent(false, false)]
local procedure KVSKBAOnValidateBlanketOrderLineNoOnBeforeConfirmTransferBlanketData(var SalesLine: Record "Sales Line"; var KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo: Enum "KVSKBABlankYesNo"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnValidateBlanketOrderLineNoOnBeforeConfirmTransferBlanketData', '', false, false)]
local procedure DoSomethingKVSKBAOnValidateBlanketOrderLineNoOnBeforeConfirmTransferBlanketData(var SalesLine: Record "Sales Line"; var KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo: Enum "KVSKBABlankYesNo"; var IsHandled: Boolean)
begin
end;

KVSKBAOnBeforeValidateBlanketOrderLine(Record Sales Line, Enum KVSKBABlankYesNo, Boolean) :#

Obsolete

This Element will be removed or changed with a future Version of the App.

[Obsolete('This Event is no longer used, because the variable KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo is no longer used, please use the new event KVSKBAOnBeforeValidateBlanketOrderLineNo instead', '28.2')]
[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeValidateBlanketOrderLine(var SalesLine: Record "Sales Line"; KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo: Enum "KVSKBABlankYesNo"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeValidateBlanketOrderLine', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeValidateBlanketOrderLine(var SalesLine: Record "Sales Line"; KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo: Enum "KVSKBABlankYesNo"; var IsHandled: Boolean)
begin
end;

KVSKBAOnAfterValidateBlanketOrderLine(Record Sales Line, Record Sales Line, Enum KVSKBABlankYesNo) :#

Obsolete

This Element will be removed or changed with a future Version of the App.

[Obsolete('This Event is no longer used, because the variable KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo is no longer used, please use the new event KVSKBAOnAfterValidateBlanketOrderLineNo instead', '28.2')]
[IntegrationEvent(false, false)]
local procedure KVSKBAOnAfterValidateBlanketOrderLine(var SalesLine: Record "Sales Line"; BlanketOrderSalesLine: Record "Sales Line"; KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo: Enum "KVSKBABlankYesNo"): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnAfterValidateBlanketOrderLine', '', false, false)]
local procedure DoSomethingKVSKBAOnAfterValidateBlanketOrderLine(var SalesLine: Record "Sales Line"; BlanketOrderSalesLine: Record "Sales Line"; KVSKBAUpdPriceDiscountFromBlankOrderBlankYesNo: Enum "KVSKBABlankYesNo")
begin
end;

KVSKBAOnBeforeValidateBlanketOrderLineNo(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before validating the "Blanket Order Line No." field on the sales line.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeValidateBlanketOrderLineNo(var SalesLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeValidateBlanketOrderLineNo', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeValidateBlanketOrderLineNo(var SalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows subscribers to add custom logic before the "Blanket Order Line No." field is validated. If the subscriber sets IsHandled to true, the default validation logic for the "Blanket Order Line No." field will be skipped, allowing for complete customization of the behavior when this field is validated. For example, subscribers can perform additional checks before validating the field, or they can set the field value based on custom conditions before the standard validation occurs.

KVSKBAOnAfterValidateBlanketOrderLineNo(Record Sales Line, Record Sales Line) :#

Summary: Integration event that is raised after validating the "Blanket Order Line No." field on the sales line.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnAfterValidateBlanketOrderLineNo(var SalesLine: Record "Sales Line"; BlanketOrderSalesLine: Record "Sales Line"): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnAfterValidateBlanketOrderLineNo', '', false, false)]
local procedure DoSomethingKVSKBAOnAfterValidateBlanketOrderLineNo(var SalesLine: Record "Sales Line"; BlanketOrderSalesLine: Record "Sales Line")
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • BlanketOrderSalesLine: The Blanket Order Sales Line record.

Remarks: This event allows subscribers to add custom logic after the "Blanket Order Line No." field has been validated. For example, subscribers can perform additional validations, update related records, or trigger other processes based on the validated data.

KVSKBAOnBeforeCheckNotAllowedTypeAllocationAccount(Record Sales Line, Boolean) :#

Summary: Integration event that is raised before checking if the sales line type is "Allocation Account", which is not supported in KUMAVISION base.

[IntegrationEvent(false, false)]
local procedure KVSKBAOnBeforeCheckNotAllowedTypeAllocationAccount(SalesLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::TableExtension, TableExtension::"KVSKBASalesLine", 'KVSKBAOnBeforeCheckNotAllowedTypeAllocationAccount', '', false, false)]
local procedure DoSomethingKVSKBAOnBeforeCheckNotAllowedTypeAllocationAccount(SalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • SalesLine: The Sales Line record.
  • IsHandled: Set to true if the event has been handled and the default behavior should be skipped.

Remarks: This event allows subscribers to add custom logic before the system checks if the sales line type is "Allocation Account". If the subscriber sets IsHandled to true, the default check will be skipped, allowing for custom handling of the sales line type.