Integrationsereignisse

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 Source System ID des Quellbelegs. Einträge können direkt gelesen und mit Modify geändert werden.

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 true setzen, um dieses spezifische Dokument von der Zusammenführung auszuschliessen.

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 true setzen, um das Anhängen dieser Rechnung zu überspringen.

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;

Verwandte Informationen