Ventoo Document Merger veröffentlicht Integrationsereignisse, die es anderen Erweiterungen ermöglichen, das Zusammenführungsverhalten zu erweitern oder zu modifizieren.
Dokumentzusammenführung Verwaltung
OnAfterMergeDocuments
Wird ausgelöst, nachdem der PDF-Zusammenführungsprozess erfolgreich abgeschlossen wurde. Verwenden Sie dieses Ereignis für Protokollierung oder Nachbearbeitung.
[IntegrationEvent(false, false)]
local procedure OnAfterMergeDocuments(SourceSystemID: Guid; DocType: Enum "Report Selection Usage")
|
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
SourceSystemID |
Guid |
Die SystemId des Quellbelegs. |
|
DocType |
Enum "Report Selection Usage" |
Die Belegart. |
OnAfterBuildDocumentList
Wird ausgelöst, nachdem die Dokumentenliste aus den Regeln aufgebaut oder neu aufgebaut wurde, aber bevor die Seite aktualisiert wird. Verwenden Sie dieses Ereignis, um die Zusammensetzung der Liste per Code zu steuern – z.B. Reihenfolge ändern, Einträge ein-/ausschliessen oder das Flag «Separat anhängen» setzen.
Das Ereignis wird bei jedem Aufbau der Liste ausgelöst:
-
Erstmaliger Aufbau beim Öffnen der Seite
-
Manuelles Zurücksetzen über die Aktion «Zurücksetzen» auf der Zusammensetzungsseite
-
Automatischer Neuaufbau bei Änderungen an Anhängen (sofern aktiv und nicht manuell angepasst)
[IntegrationEvent(false, false)]
local procedure OnAfterBuildDocumentList(var DocumentListVTO: Record "Document List VTO"; SourceSystemID: Guid; SourceDocType: Enum "Report Selection Usage")
|
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
DocumentListVTO |
Record "Document List VTO" |
Die Dokumentenliste, vorgefiltert auf die |
|
SourceSystemID |
Guid |
Die SystemId des Quellbelegs. |
|
SourceDocType |
Enum "Report Selection Usage" |
Die Belegart (z.B. Verk.Rechnung, Eink.Bestellung). |
Dokumentzusammenführung PDF Handler
OnBeforeProcessDocumentEntry
Wird ausgelöst, bevor jedes einzelne Dokument in der Liste während der PDF-Zusammenführung verarbeitet wird. Verwenden Sie dieses Ereignis, um bestimmte Dokumente gezielt von der Zusammenführung auszuschliessen, während andere weiterhin verarbeitet werden.
[IntegrationEvent(false, false)]
local procedure OnBeforeProcessDocumentEntry(DocListEntry: Record "Document List VTO"; var Skip: Boolean)
|
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
DocListEntry |
Record "Document List VTO" |
Der Dokumentenlisteneintrag, der verarbeitet werden soll. Prüfen Sie dessen Felder (Quelltyp, Dokumentname, Dateierweiterung usw.) für Ihre Entscheidung. |
|
Skip |
Boolean |
Auf |
Dokumentzusammenführung Mahnungshandler
OnBeforeAttachInvoiceToReminder
Wird ausgelöst, bevor eine Verkaufsrechnungs-PDF an eine registrierte Mahnung angehängt wird. Setzen Sie IsHandled auf true, um das Anhängen zu verhindern.
[IntegrationEvent(false, false)]
local procedure OnBeforeAttachInvoiceToReminder(var IssuedReminderHeader: Record "Issued Reminder Header"; var SalesInvoiceHeader: Record "Sales Invoice Header"; var IsHandled: Boolean)
|
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
IssuedReminderHeader |
Record "Issued Reminder Header" |
Die registrierte Mahnung, die den Anhang erhält. |
|
SalesInvoiceHeader |
Record "Sales Invoice Header" |
Die Verkaufsrechnung, die angehängt wird. |
|
IsHandled |
Boolean |
Auf |
OnAfterAttachInvoiceToReminder
Wird ausgelöst, nachdem eine Verkaufsrechnungs-PDF erfolgreich an eine registrierte Mahnung angehängt wurde.
[IntegrationEvent(false, false)]
local procedure OnAfterAttachInvoiceToReminder(IssuedReminderHeader: Record "Issued Reminder Header"; SalesInvoiceHeader: Record "Sales Invoice Header")
|
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
IssuedReminderHeader |
Record "Issued Reminder Header" |
Die registrierte Mahnung, die den Anhang erhalten hat. |
|
SalesInvoiceHeader |
Record "Sales Invoice Header" |
Die Verkaufsrechnung, die angehängt wurde. |
Beispiele
Einzelne Dokumente nach Name oder Typ überspringen
[EventSubscriber(ObjectType::Codeunit, Codeunit::"PDF Handler VTO", OnBeforeProcessDocumentEntry, '', false, false)]
local procedure SkipDraftDocuments(DocListEntry: Record "Doc. Merge Document List"; var Skip: Boolean)
begin
// Dokumente mit "Entwurf" im Namen überspringen
if DocListEntry."Document Name".Contains('Entwurf') then
Skip := true;
// Alle eingehenden Belege überspringen
if DocListEntry."Source Type" = DocListEntry."Source Type"::"Incoming Document" then
Skip := true;
end;
Dokumentenliste nach dem Aufbau anpassen
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Rule Engine VTO", OnAfterBuildDocumentList, '', false, false)]
local procedure AdjustDocumentListAfterBuild(var DocumentListVTO: Record "Document List VTO"; SourceSystemID: Guid; SourceDocType: Enum "Report Selection Usage")
begin
if SourceDocType <> "Report Selection Usage"::"S.Invoice" then
exit;
if DocumentListVTO.FindSet() then
repeat
// Interne Dokumente automatisch ausschliessen
if DocumentListVTO."Document Name".Contains('Intern') then begin
DocumentListVTO.Included := false;
DocumentListVTO."Sequence No." := 10001;
DocumentListVTO.Modify(false);
end;
until DocumentListVTO.Next() = 0;
end;