Zum Inhalt

Erweiterung der Auswahl des Dokumentenlayouts beim Buchen

Document Central kann mit Code erweitert werden, der das Ändern des Dokumentenlayouts während des Buchungsprozesses ermöglicht. Dies wird durch die Nutzung von Ereignissen erreicht, die von der Document Central-Erweiterung bereitgestellt werden. Die folgende Dokumentation erklärt, wie die von der Document Central-Erweiterung bereitgestellten Ereignisse genutzt werden können, um das Dokumentenlayout während des Buchungsprozesses zu modifizieren.

Ein Ereignis wird bereitgestellt, das das Ändern von Dokumentenlayouts basierend auf einem spezifischen Wert im Datensatz ermöglicht. Das folgende Ereignis sollte in einer Ereignisabonnenten-Codeunit erstellt werden, wo die 'Werte', die für die Änderung des Dokumentenlayouts verantwortlich sind, überprüft werden. Der folgende Code ist ein Beispiel, das das Dokumentenlayout zu MS-1304-BLUESIMPLE ändern würde, wenn der Lagerortcode des Angebots BLUE ist.

Ereignis OnBeforeSetDefaultDocumentLayoutTextDuringPostingProcess

Dieses Ereignis kann verwendet werden, um das verwendete Dokumentenlayout während des Buchungsprozesses zu ändern, wenn kein benutzerdefiniertes Dokumentenlayout für den Kunden/Lieferanten konfiguriert wurde. Die folgenden Parameter werden vom Ereignis bereitgestellt:

Info

Beim Buchen/Konvertieren eines Dokuments ohne konfigurierte benutzerdefinierte Dokumentenlayouts hinter den jeweiligen Stammdaten (normalerweise Kunde oder Lieferant) wird nur 1 Bericht im Document Central archiviert.

Name Datentyp Länge Beschreibung
ParamDocumentLayoutText Text Gibt das Dokumentenlayout an, das durch Document Central bestimmt wurde Einrichten benutzerdefinierter Berichtslayouts
ParamRecordRef RecordRef Gibt den Quelldatensatz an, wo die Buchung ausgeführt wurde
ParamReportNoInteger Integer Gibt die Berichtsnummer des Berichts an
ParamLayoutChangedBoolean Boolean Gibt an, ob das Dokumentenlayout durch das Ereignis geändert wurde
AL
[EventSubscriber(ObjectType::Codeunit, 5492908, 'OnBeforeSetDefaultDocumentLayoutTextDuringPostingProcess', '', false, false)]
local procedure OnBeforeSetDefaultDocumentLayoutTextDuringPostingProcess_CU5492908(var ParamDocumentLayoutText: Code[20]; ParamRecordRef: RecordRef; ParamReportNoInteger: Integer; var ParamLayoutChangedBoolean: Boolean)
var
    LocalRecordSalesHeader: Record "Sales Header";
begin
    if ParamReportNoInteger = 1304 then begin
        ParamRecordRef.SetTable(LocalRecordSalesHeader);
        if LocalRecordSalesHeader."Location Code" = 'BLUE' then begin
            ParamLayoutChangedBoolean := true;
            ParamDocumentLayoutText := 'MS-1304-BLUESIMPLE';
        end;
    end;
end;

Ereignis OnBeforeSetCustomDocumentLayoutTextDuringPostingProcess

Dieses Ereignis kann verwendet werden, um die verwendeten Dokumentenlayouts während des Buchungsprozesses zu ändern, wenn benutzerdefinierte Dokumentenlayouts für den Kunden/Lieferanten konfiguriert wurden. Die folgenden Parameter werden vom Ereignis bereitgestellt:

Info

Beim Buchen/Konvertieren eines Dokuments werden alle konfigurierten benutzerdefinierten Dokumentenlayouts hinter den jeweiligen Stammdaten (normalerweise Kunde oder Lieferant) im Document Central archiviert.

Name Datentyp Länge Beschreibung
ParamDocumentLayoutText Text Gibt das Dokumentenlayout an, das durch Document Central bestimmt wurde Einrichten benutzerdefinierter Berichtslayouts
ParamRecordRef RecordRef Gibt den Quelldatensatz an, wo die Buchung ausgeführt wurde
ParamReportNoInteger Integer Gibt die Berichtsnummer des Berichts an
AL
[EventSubscriber(ObjectType::Codeunit, 5492908, 'OnBeforeSetCustomDocumentLayoutTextDuringPostingProcess', '', false, false)]
local procedure OnBeforeSetCustomDocumentLayoutTextDuringPostingProcess_CU5492908(var ParamDocumentLayoutText: Code[20]; ParamRecordRef: RecordRef; ParamReportNoInteger: Integer)
var
    LocalRecordSalesHeader: Record "Sales Header";
begin
    if ParamReportNoInteger = 1304 then begin
        ParamRecordRef.SetTable(LocalRecordSalesHeader);
        if LocalRecordSalesHeader."Location Code" = 'BLUE' then
            ParamDocumentLayoutText := 'MS-1304-BLUESIMPLE';
    end;
end;