Aller au contenu

Télécharger des documents par code depuis Document Central

Document Central peut être étendu avec du code pour permettre le téléchargement de documents depuis une entrée de Document Central. La documentation suivante explique comment créer une extension permettant de télécharger des documents par code à partir d'une entrée de Document Central.

Les exigences suivantes doivent être remplies :

  • Document Central doit être présent dans l'extension en tant que référence.

Télécharger un fichier :

La fonction DownloadFile permet de télécharger un document par code.

Surcharge 1 :

Var Nom Type de données Sous-type Longueur Description
Non ParamRecordSIMDMSDocumentEntry Record "SIM_DMS Document Entry" L'entrée du document dans Document Central qui est téléchargée
Non ParamDownloadInAppContext Boolean Définit si le téléchargement se fait dans le contexte de l'application ou dans le contexte de l'utilisateur

La fonction retourne :

Nom Type de données Longueur Description
ReturnBase64FileText Text Le document téléchargé sous forme de Base64

Exemple de code :

In this example, a document that has been stored on the customer 01121212 and the file name 103035.pdf is downloaded with an App context.

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;

Télécharger une version de fichier :

La fonction DownloadFileVersion télécharge un document à l’aide de son code.

Surcharge 1 :

Var Nom Type de données Sous-type Longueur Description
Non ParamRecordSIMDMSDocumentEntryVersion Record "SIM_DMS Document Entry Version" L'entrée de version du document de Document Central à télécharger

Surcharge 2 :

Var Nom Type de données Sous-type Longueur Description
Non ParamRecordSIMDMSDocumentEntryVersion Record "SIM_DMS Document Entry Version" L'entrée de version du document de Document Central à télécharger
Non ParamDownloadInAppContext Boolean Définit si le téléchargement est effectué dans le contexte de l’application ou dans le contexte utilisateur

Sortie de la fonction :

Nom Type de données Longueur Description
ReturnBase64FileText Texte Le document téléchargé encodé en Base64

Exemple de code :

Dans cet exemple, la deuxième version du document enregistré pour le client 01121212 et ayant le nom de fichier 103035.pdf est téléchargée dans un contexte d’application.

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;