Table of Contents

KVSKBABlanketPurchaseOrder

Events

OnUpdateRequestPageSettings(Enum KVSKBADocumentInitEventType, Boolean, Integer, Boolean, Boolean, Boolean, Boolean) :

Summary: Raised during request page lifecycle events to allow customization of report options.

[IntegrationEvent(true, false)]
local procedure OnUpdateRequestPageSettings(InitEventType: Enum "KVSKBADocumentInitEventType"; RequestPageAlreadyOpen: Boolean; var NoOfCopies: Integer; var ShowInternalInfo: Boolean; var ArchiveDocument: Boolean; var LogInteraction: Boolean; var PrintOnNotePaper: Boolean): 

Parameters:

  • InitEventType: The lifecycle event type that triggered this call (e.g. OnOpenPage, OnClosePage).
  • RequestPageAlreadyOpen: Indicates whether the request page has already been opened in this session.
  • NoOfCopies: The number of additional copies to print. Can be modified by subscribers.
  • ShowInternalInfo: Specifies whether internal information is shown. Can be modified by subscribers.
  • ArchiveDocument: Specifies whether the document is archived after printing. Can be modified by subscribers.
  • LogInteraction: Specifies whether the print run is recorded as an interaction log entry. Can be modified by subscribers.
  • PrintOnNotePaper: Specifies whether the report prints on business paper. Can be modified by subscribers.

Remarks: Fired on OnInit, OnOpenPage and OnClosePage of the request page. Use InitEventType to react to specific lifecycle phases only. LogInteraction is automatically disabled when ArchiveDocument is false.

OnBeforeCheckDocStatusOnAfterGetRecord(Record Purchase Header, Boolean, Integer) :

Summary: Raised in the OnAfterGetRecord trigger of the DocHeader data item before the document status is validated, allowing subscribers to bypass or adjust the Released status check.

[IntegrationEvent(true, false)]
local procedure OnBeforeCheckDocStatusOnAfterGetRecord(var DocumentHeader: Record "Purchase Header"; var Handled: Boolean; var NoOfRecords: Integer): 

Parameters:

  • DocumentHeader: The blanket purchase order header record currently being processed.
  • Handled: Set to true to skip the default TestField(Status, Released) validation.
  • NoOfRecords: The total number of DocHeader records in the current report run. Can be used for batch-specific logic.

Remarks: The default logic calls TestField(Status, Released) only when the report is not in preview mode. Set Handled to true to allow printing of non-released documents, for example during testing or for custom status workflows.

OnBeforeCheckDocStructureOnAfterGetRecord(Record Purchase Header, Boolean) :

Summary: Raised in the OnAfterGetRecord trigger of the DocHeader data item before the purchase line structure is validated (position numbers, total structure, empty position numbers).

[IntegrationEvent(true, false)]
local procedure OnBeforeCheckDocStructureOnAfterGetRecord(var DocumentHeader: Record "Purchase Header"; var Handled: Boolean): 

Parameters:

  • DocumentHeader: The blanket purchase order header record currently being processed.
  • Handled: Set to true to skip the default structure validation logic (RunCalcPosNoInPurchLines, CheckTotalStructureInPurchLine, CheckPosNoNotEmptyInPurchLine).

Remarks: The default logic recalculates and validates position numbers and total structure on open documents before printing. Set Handled to true to suppress all structure checks, for example when printing from external automation where the structure is guaranteed to be correct.

OnBeforeCreateDocumentHeader(Record KVSKBADocumentHeaderBuffer, Boolean, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentHeader(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeCreateDocumentAddress(Record KVSKBADocumentHeaderBuffer, Boolean, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentAddress(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocHeader(Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeAddDocHeader(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeCreateDocumentHeading(Record KVSKBADocumentHeaderBuffer, Boolean, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentHeading(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterCreateDocumentHeading(Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnAfterCreateDocumentHeading(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemDocHeaderText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemDocHeaderText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemDocHeaderText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemDocHeaderText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemDocFooterText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemDocFooterText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemDocFooterText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemDocFooterText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnDocFooterFinished(Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnDocFooterFinished(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeCheckForPageAndBlockBreak(Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Record Purchase Line, Boolean, Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeCheckForPageAndBlockBreak(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var skipLine: Boolean; var isHandled: Boolean; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocumentLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddDocumentLine(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddDocumentLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddDocumentLine(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeInitByPurchaseLine(Record KVSKBADocumentLineBuffer, Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeInitByPurchaseLine(var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterInitByPurchaseLine(Record KVSKBADocumentLineBuffer, Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterInitByPurchaseLine(var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddItemAttributeInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddItemAttributeInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddDocLineInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddDocLineInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemHeadLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemHeadLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemHeadLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemHeadLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemFootLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemFootLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemFootLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Purchase Header, Record Purchase Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemFootLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var DocumentLine: Record "Purchase Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddShipmentMethod(Record KVSKBADocumentHeaderBuffer, Record Shipment Method, Boolean, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddShipmentMethod(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var ShipmentMethod: Record "Shipment Method"; var isHandled: Boolean; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddShipmentMethod(Record KVSKBADocumentHeaderBuffer, Record Shipment Method, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddShipmentMethod(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var ShipmentMethod: Record "Shipment Method"; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnCasePrintVatSpecificationOnCaseElse(Enum KVSKBAPrintVatSpecification, Record VAT Amount Line, Boolean) :

Summary: Raised in the else-branch of the PrintVatSpecification case statement to allow custom VAT specification visibility logic.

[IntegrationEvent(false, false)]
local procedure OnCasePrintVatSpecificationOnCaseElse(PrintVatSpecification: Enum "KVSKBAPrintVatSpecification"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var SkipVATSpecVerification: Boolean): 

Parameters:

  • PrintVatSpecification: The current value of the company-level PrintVatSpecification setting.
  • TempVATAmountLine: The temporary VAT amount line buffer. Can be filtered or modified by subscribers.
  • SkipVATSpecVerification: Set to true to suppress (CurrReport.Break) the VAT specification data item output.

Remarks: Only raised for PrintVatSpecification values not handled by the standard case branches. Set SkipVATSpecVerification to true to hide the VAT specification block for a custom enum value.

OnAfterGetRecordCopyLoop(Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterGetRecordCopyLoop(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterGetRecordCopyLoop2(Record KVSKBADocumentHeaderBuffer, Record Purchase Header, Codeunit KVSKBAMasterDoc, Integer) :

[IntegrationEvent(false, false)]
local procedure OnAfterGetRecordCopyLoop2(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Purchase Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"; CopyLoopNumber: Integer): 

OnBeforeSetLanguageFormatAddress(Record Purchase Header, Boolean) :

Summary: Raised before FormatAddress.SetLanguageCode is called with the document's language code.

[IntegrationEvent(false, false)]
local procedure OnBeforeSetLanguageFormatAddress(DocHeader: Record "Purchase Header"; var IsHandled: Boolean): 

Parameters:

  • DocHeader: The blanket purchase order header record whose language code is to be applied.
  • IsHandled: Set to true to skip the default FormatAddress.SetLanguageCode call.

Remarks: Use this event to override the language used for address formatting, for example to enforce a fixed output language regardless of the document language.

OnBeforeResetLanguageFormatAddress(Record Purchase Header, Boolean) :

Summary: Raised before FormatAddress.SetLanguageCode is reset to an empty value after the document header has been processed.

[IntegrationEvent(false, false)]
local procedure OnBeforeResetLanguageFormatAddress(DocHeader: Record "Purchase Header"; var GlobalIsHandled: Boolean): 

Parameters:

  • DocHeader: The blanket purchase order header record currently being processed.
  • GlobalIsHandled: Set to true to suppress the default FormatAddress.SetLanguageCode('') reset call.

Remarks: The reset normally ensures that subsequent address formatting outside the document context uses the system default language. Set GlobalIsHandled to true only if a custom language override must persist beyond the current document.

OnAfterTransferTotalAmount(Record KVSKBADocumentHeaderBuffer, Record VAT Amount Line) :

Summary: Raised after all total amount fields have been transferred from the VAT amount lines into the document header buffer.

[IntegrationEvent(false, false)]
local procedure OnAfterTransferTotalAmount(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempVATAmountLine: Record "VAT Amount Line" temporary): 

Parameters:

  • TempDocumentHeaderBuffer: The temporary document header buffer receiving the calculated totals (VAT Amount, Total excl./incl. VAT, Total LCY, etc.).
  • TempVATAmountLine: The temporary VAT amount line buffer containing the source totals.

Remarks: Use this event to adjust or recalculate total fields on TempDocumentHeaderBuffer before MasterDoc.UpdateDocHeader is called, for example to apply rounding differences or surcharges.

Protected Variables

GlobalArchiveDocument

Type: Boolean

GlobalLogInteraction

Type: Boolean

GlobalPrintOnNotePaper

Type: Boolean

GlobalShowInternalInfo

Type: Boolean

GlobalNoOfCopies

Type: Integer