Zum Inhalt

Herunterladen von Dokumenten per Code über Document Central

Document Central kann mit Code erweitert werden, um das Herunterladen von Dokumenten aus einem Document-Central-Eintrag zu ermöglichen. Die folgende Dokumentation erklärt, wie eine Erweiterung erstellt wird, die es ermöglicht, Dokumente über Code aus einem Document-Central-Eintrag herunterzuladen.

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.

Datei Herunterladen:

Die Funktion DownloadFile lädt ein Dokument herunter.

Überladung 1:

Var Name Datentyp Subtyp Länge Beschreibung
Nein ParamRecordSIMDMSDocumentEntry Record "SIM_DMS Document Entry" Der Document Central Dokumenten eintrag welcher heruntergeladen wird
Nein ParamDownloadInAppContext Boolean Definiert ob der Download im App Context durchgefürt wird oder im User Kontext

Die Funktion gibt aus:

Name Datentyp Länge Beschreibung
ReturnBase64FileText Text Das Heruntergeladete Dokument als Base64

Codebeispiel:

In Diesem Beispiel wird ein Dokument welches auf dem Debitor 01121212 abgelegt wurde und dem Dateinamen 103035.pdf im App kontext heruntergeladen.

AL
var
    LocalRecordSIMDMSDocumentEntry: Record "SIM_DMS Document Entry";
    LocalRecordSMIDMSModuleSetup: Record "SIM_DMS Module setup";
    LocalCodeunitSIMDMSDownloadMgt: Codeunit "SIM_DMS Download Mgt";
    LocalCodeunitFileManagement: Codeunit "File Management";
    LocalCodeunitTempBlob: Codeunit "Temp Blob";
    LocalCodeunitBase64Convert: Codeunit "Base64 Convert";
    LocalOutStream: OutStream;
begin
    LocalRecordSMIDMSModuleSetup.Get();
    LocalRecordSIMDMSDocumentEntry.Get(LocalRecordSMIDMSModuleSetup."Repository Code", '/2024/', 'DEBITOR', 01121212, '103035.pdf');

    LocalCodeunitTempBlob.CreateOutStream(LocalOutStream);
    LocalCodeunitBase64Convert.FromBase64(LocalCodeunitSIMDMSDownloadMgt.DownloadFile(LocalRecordSIMDMSDocumentEntry, true), LocalOutStream);

    LocalCodeunitFileManagement.BLOBExport(LocalCodeunitTempBlob, LocalRecordSIMDMSDocumentEntry.Filename, true);
end;

Dateiversion herunterladen:

Die Funktion DownloadFileVersion lädt ein Dokument anhand seines Codes herunter.

Überladung 1:

Var Name Datentyp Subtyp Länge Beschreibung
Nein ParamRecordSIMDMSDocumentEntryVersion Datensatz "SIM_DMS Document Entry Version" Der Versionseintrag des Dokuments aus Document Central, der heruntergeladen wird

Überladung 2:

Var Name Datentyp Subtyp Länge Beschreibung
Nein ParamRecordSIMDMSDocumentEntryVersion Datensatz "SIM_DMS Document Entry Version" Der Versionseintrag des Dokuments aus Document Central, der heruntergeladen wird
Nein ParamDownloadInAppContext Boolean Legt fest, ob der Download im App-Kontext oder im Benutzerkontext erfolgt

Rückgabewert der Funktion:

Name Datentyp Länge Beschreibung
ReturnBase64FileText Text Das heruntergeladene Dokument im Base64-Format

Codebeispiel:

In diesem Beispiel wird die zweite Version des Dokuments heruntergeladen, das für den Kunden 01121212 gespeichert wurde und den Dateinamen 103035.pdf hat – im App-Kontext.

AL
var
    LocalRecordSIMDMSDocumentEntryVersion: Record "SIM_DMS Document Entry Version";
    LocalRecordSMIDMSModuleSetup: Record "SIM_DMS Module setup";
    LocalCodeunitSIMDMSDownloadMgt: Codeunit "SIM_DMS Download Mgt";
    LocalCodeunitFileManagement: Codeunit "File Management";
    LocalCodeunitTempBlob: Codeunit "Temp Blob";
    LocalCodeunitBase64Convert: Codeunit "Base64 Convert";
    LocalOutStream: OutStream;
begin
    LocalRecordSMIDMSModuleSetup.Get();
    if not LocalRecordSIMDMSDocumentEntryVersion.Get(LocalRecordSMIDMSModuleSetup."Repository Code", '/2024/', 'DEBITOR', 01121212, '103035.pdf',2) then
        exit;

    LocalCodeunitTempBlob.CreateOutStream(LocalOutStream);
    LocalCodeunitBase64Convert.FromBase64(LocalCodeunitSIMDMSDownloadMgt.DownloadFileVersion(LocalRecordSIMDMSDocumentEntryVersion, true), LocalOutStream);

    LocalCodeunitFileManagement.BLOBExport(LocalCodeunitTempBlob, LocalRecordSIMDMSDocumentEntryVersion.Filename, true);
end;