Ga naar inhoud

Rapporten uitbreiden met Document Central

Document Central kan worden uitgebreid met code die automatisch documenten archiveert tijdens het afdrukken van een rapport of het posten of converteren van een document. Tijdens dit proces wordt het document naar de Document Central archiveringswachtrij gestuurd. Om archivering te activeren, moet het rapport ook worden geconfigureerd in de Document Central Rapportconfiguratie.

Warning

Vanaf versie 21.16.6.0 (BC21), 22.7.6.0 (BC22) en 23.3.6.0 (BC23) is het niet meer nodig om rapporten uit te breiden voor Document Central. De nieuwe, veel eenvoudigere manier is het gebruik van de print-gebeurtenisintegratie en het selecteren van het vinkje "Afdrukken op gebeurtenis" in de Document Central Rapportconfiguratie. Door deze optie in te schakelen, zal het rapport automatisch worden gearchiveerd via de Document Central Rapportwachtrij zodra het vanuit het systeem wordt afgedrukt, als het correct is ingesteld in de rapportconfiguratie van Document Central.

Er zijn twee manieren om de benodigde code aan rapporten toe te voegen:

  • In het geval van een eigen rapport kan de code direct aan het rapport worden toegevoegd.
  • Voor andere rapporten kun je een rapportextensie maken die de code uitvoert.

De volgende vereisten moeten worden vervuld:

  • Het Document Central-moduul moet gelicentieerd zijn.
  • CORE moet beschikbaar zijn als referentie in de extensie.
  • Document Central moet aanwezig zijn als referentie in de extensie.

Code voor het uitbreiden van een Business Central-rapport met 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;
}