Zum Inhalt

Erweiterung von Berichten mit Document Central

Document Central kann durch Code erweitert werden, um beim Drucken eines Berichts oder beim Buchen bzw. Umwandeln eines Dokuments eine automatische Archivierung zu ermöglichen. Dabei wird das Dokument während des Vorgangs in die Archivwarteschlange von Document Central übergeben. Damit die Archivierung aktiv wird, muss der Bericht zusätzlich in der Document Central Report Configuration konfiguriert werden.

Warning

Das Erweitern von Berichten für Document Central ist nicht mehr erforderlich ab Version 21.16.6.0 (BC 21), 22.7.6.0 (BC22) und 23.3.6.0 (BC23). Der neue, sehr einfache Weg ist die Verwendung der Druckevent-Integration und die Verwendung des Häkchens "Bei Event drucken" in der Document Central-Berichtskonfiguration. Wenn Sie diese Option aktivieren, hat dies den gleichen Effekt wie die Erweiterung Ihres Berichtscodes. Sie führt dazu, dass der Bericht über die Document Central-Berichtswarteschlange archiviert wird, sobald er aus dem System gedruckt wird, sofern dies in der Berichtseinrichtung des Document Central so eingestellt wurde.

There are two ways to add the necessary code to reports:

Im Falle eines eigenen Berichts können Sie den Code direkt zum Bericht hinzufügen. Bei anderen Berichten können Sie eine Berichtserweiterung erstellen, die den Code ausführt.

Die folgenden Anforderungen müssen erfüllt sein:

  • Das Document Central-Modul muss lizenziert sein.
  • CORE muss in der Erweiterung als Referenz verfügbar sein.
  • Document Central muss in der Erweiterung als Referenz vorhanden sein.

Code für die Erweiterung eines Business Central-Berichts mit Document Central:

AL
reportextension 5492913 "SIM_DMS Sales Quote Ext" extends "Standard Sales - Quote"
{
    trigger OnPostReport()

    var
        LocalCodeunitSIMDMSArchiveMgt: Codeunit "SIM_DMS Archive Mgt";
        LocalCodeunitSIMDMSSI: Codeunit "SIM_DMS SI";
        LocalCodeunitSIMDMSMgt: Codeunit "SIM_DMS Mgt.";
        LocalRecordRef: RecordRef;
        LocalReportIDInteger: Integer;
    begin

        if not EVALUATE(LocalReportIDInteger, COPYSTR(CurrReport.OBJECTID(FALSE), 7)) then exit;
        LocalCodeunitSIMDMSSI.SetRequestPage(LocalCodeunitSIMDMSMgt.GetRequestPageXML(LocalReportIDInteger));

        LocalRecordRef.GETTABLE(Header);
        LocalCodeunitSIMDMSArchiveMgt.OnReportPostDataItem(LocalRecordRef, LocalReportIDInteger, CurrReport.PREVIEW);
    end;

    procedure HasDMSReportExtensionSIM_DMS(): Boolean
    begin
        exit(true);
    end;
}