Saltar al contenido

Descargar documentos por código desde Document Central

Document Central se puede extender con código para permitir la descarga de documentos desde una entrada de Document Central. La siguiente documentación explica cómo crear una extensión que permita descargar documentos mediante código desde una entrada de Document Central.

Los siguientes requisitos deben cumplirse:

  • Document Central debe estar presente en la extensión como referencia.

Descargar archivo:

La función DownloadFile descarga un documento por código.

Sobrecarga 1:

Var Nombre Tipo de datos Subtipo Longitud Descripción
No ParamRecordSIMDMSDocumentEntry Registro "SIM_DMS Document Entry" La entrada de documento de Document Central que se descarga
No ParamDownloadInAppContext Booleano Define si la descarga se realiza en el contexto de la aplicación o en el contexto del usuario

La función devuelve:

Nombre Tipo de datos Longitud Descripción
ReturnBase64FileText Texto El documento descargado en formato Base64

Ejemplo de código:

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;

Descargar versión de archivo:

La función DownloadFileVersion descarga un documento mediante su código.

Sobrecarga 1:

Var Nombre Tipo de dato Subtipo Longitud Descripción
No ParamRecordSIMDMSDocumentEntryVersion Record "SIM_DMS Document Entry Version" La entrada de versión del documento en Document Central que se descarga

Sobrecarga 2:

Var Nombre Tipo de dato Subtipo Longitud Descripción
No ParamRecordSIMDMSDocumentEntryVersion Record "SIM_DMS Document Entry Version" La entrada de versión del documento en Document Central que se descarga
No ParamDownloadInAppContext Boolean Define si la descarga se realiza en el contexto de la aplicación o en el contexto del usuario

Salida de la función:

Nombre Tipo de dato Longitud Descripción
ReturnBase64FileText Texto El documento descargado en formato Base64

Ejemplo de código:

En este ejemplo, se descarga la segunda versión del documento almacenado para el cliente 01121212 con el nombre de archivo 103035.pdf, en un contexto de aplicación.

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;