Aller au contenu

Extension des rapports avec Document Central

Document Central peut être étendu par du code pour permettre une archivage automatique lors de l'impression d'un rapport ou lors de la réservation ou de la conversion d'un document. Le document est alors transmis à la file d'attente d'archivage de Document Central pendant le processus. Pour que l'archivage soit actif, le rapport doit également être configuré dans la Configuration des rapports de Document Central.

Warning

L'extension des rapports pour Document Central n'est plus nécessaire à partir de la version 21.16.6.0 (BC 21), 22.7.6.0 (BC22) et 23.3.6.0 (BC23). La nouvelle méthode très simple consiste à utiliser l'intégration de l'événement d'impression et à cocher "Imprimer lors de l'événement" dans la configuration des rapports de Document Central. Si vous activez cette option, cela aura le même effet que l'extension de votre code de rapport. Cela entraînera l'archivage du rapport via la file d'attente des rapports de Document Central dès qu'il est imprimé depuis le système, à condition que cela soit configuré dans la configuration du rapport de Document Central.

Il existe deux façons d'ajouter le code nécessaire aux rapports :

Dans le cas d'un rapport personnalisé, vous pouvez ajouter le code directement au rapport. Pour d'autres rapports, vous pouvez créer une extension de rapport qui exécute le code.

Les exigences suivantes doivent être remplies :

  • Le module Document Central doit être sous licence.
  • CORE doit être disponible en tant que référence dans l'extension.
  • Document Central doit être présent en tant que référence dans l'extension.

Code pour l'extension d'un rapport Business Central avec 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;
}