Zum Inhalt

Erweiterung von Seiten mit Document Central

Document Central kann in bestehende Seiten in Business Central integriert werden, indem diese um die Document Central Factbox sowie die Document Central Aktionsgruppe in der Aktionsleiste erweitert werden. Auf diese Weise bleiben alle Kernfunktionen – wie Dokumentenverwaltung und Archivierung – auch dann verfügbar, wenn die Factbox aufgrund von Personalisierungen, Rolleneinstellungen oder begrenztem Platz auf dem Bildschirm ausgeblendet ist. Die folgende Dokumentation zeigt, wie diese Erweiterungen mittels einer Page Extension umgesetzt werden können.

Es gibt zwei Möglichkeiten, dies zu tun:

  • Bei einer eigenen Seite können Sie den Code direkt zur Seite hinzufügen.
  • Bei anderen Seiten können Sie eine Pageextension erstellen, die den Code ausführt.

Die folgenden Anforderungen müssen erfüllt sein:

  • Das Document Central Modul muss lizenziert sein.
  • CORE muss als Referenz in der Erweiterung verfügbar sein.
  • Document Central muss als Referenz in der Erweiterung enthalten sein.

Code zur Erweiterung einer Business Central Seite mit der Document Central DropZone FB und der Document Central Aktionsgruppe in der Aktionsleiste:

Card

Code anzeigen
AL
pageextension 5492919 "SIM_DMS PostedSalesInvoiceExt" extends "Posted Sales Invoice" //132
{
    layout
    {
        addfirst(FactBoxes)
        {
            part(SIM_DMSDropZoneFB; "SIM_DMS DropZone FB")
            {
                ApplicationArea = All;
            }

        }
    }

    actions
    {
        addafter(Category_Category20)
        {
            group("SIM_DMS Dropzone Actions")
            {
                Caption = 'Document Central';
                ShowAs = Standard;
                Image = Document;
                actionref("SIM_DMS Configuration Wizard Promoted"; "SIM_DMS ConfigurationWizard")
                { }
                actionref("SIM_DMS Archive Promoted"; "SIM_DMS Archive")
                { }
                actionref("SIM_DMS Multi Quick Upload Promoted"; "SIM_DMS Multi Quick Upload")
                { }
                actionref("SIM_DMS ArchiveVersionStatus Promoted"; "SIM_DMS ArchiveVersionStatus")
                { }
                actionref("SIM_DMS Configuration Promoted"; "SIM_DMS Configuration")
                { }
                actionref("SIM_DMS RelatedDocument Promoted"; "SIM_DMS RelatedDocument")
                { }
                actionref("SIM_DMS btnUpdate Promoted"; "SIM_DMS btnUpdate")
                { }
                actionref("SIM_DMS BC Standard Migration Promoted"; "SIM_DMS BC Standard Migration")
                { }
            }
        }
        addafter("&Invoice")
        {
            group("SIM_DMS Dropzone FB Actions")
            {
                action("SIM_DMS ConfigurationWizard")
                {
                    ApplicationArea = All;
                    Caption = 'Configuration Wizard';
                    Ellipsis = true;
                    Image = Setup;
                    ToolTip = 'This button opens the configuration wizard which will guide you through the process of creating a setup for the factbox.';
                    Enabled = GlobalDMSWizardEnaBoolean;
                    Visible = GlobalDMSWizardVisBoolean;

                    trigger OnAction()
                    begin
                        GlobalCodeunitSIMDMSFunctions.ConfigWizardAction(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS Archive")
                {
                    ApplicationArea = All;
                    Caption = 'Archive';
                    Ellipsis = false;
                    Enabled = GlobalDMSFactBoxButtonsVisBoolean;
                    Image = Documents;
                    Visible = GlobalIsUserRegisteredBoolean;
                    ToolTip = 'This button opens the document overview.';

                    trigger OnAction()
                    begin
                        if not GlobalAllowViewBoolean then
                            exit;
                        GlobalPageSIMDMSDropZoneFB.ViewDocuments(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS ArchiveVersionStatus")
                {
                    ApplicationArea = All;
                    Caption = 'Archive Queue';
                    Ellipsis = false;
                    Enabled = GlobalDMSFactBoxButtonsVisBoolean;
                    Image = WorkCenterLoad;
                    Visible = GlobalIsUserRegisteredBoolean;
                    ToolTip = 'This button opens the overview of the archive prints. This page can be used to monitor the archive printouts.';

                    trigger OnAction()
                    begin
                        GlobalPageSIMDMSDropZoneFB.ViewDocumentVersions(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS Configuration")
                {
                    ApplicationArea = All;
                    Caption = 'Configuration';
                    ToolTip = 'This button opens the mapping configuration page. The settings for the mapping can be made here.';
                    Image = Setup;
                    Visible = GlobalDMSFactBoxConfigButtonVisBoolean;

                    trigger OnAction()
                    begin
                        GlobalCodeunitSIMDMSFunctions.ConfigurationAction(GlobalMappingCode, GlobalCurrPageIdInteger);
                    end;
                }
                action("SIM_DMS RelatedDocument")
                {
                    ApplicationArea = All;
                    Caption = 'Relation Management';
                    ToolTip = 'This button displays all records related to this record.';
                    Image = Links;
                    Visible = GlobalIsUserRegisteredBoolean and GlobalIsUserAdminBoolean;

                    trigger OnAction()
                    begin
                        GlobalPageSIMDMSDropZoneFB.ViewDocumentRelations(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS btnUpdate")
                {
                    ApplicationArea = All;
                    Visible = GlobalIsSharePointBoolean or GlobalIsAzureBlobStorageBoolean and GlobalIsUserRegisteredBoolean and GlobalIsUserAdminBoolean;
                    Caption = 'Sync Documents';
                    Image = Interaction;
                    ToolTip = 'This button will synchronize the documents with the SharePoint or Azure Blob Storage.';

                    trigger OnAction()
                    var
                        LocalRecordSIMCORESetup: Record "SIM_CORE Setup";
                    begin
                        GlobalCodeunitSIMDMSFunctions.SyncDocumentsAction('UPDATE_DATAGRID', LocalRecordSIMCORESetup, GlobalRecordSIMDMSModuleSetup, GlobalRecordSIMDMSUserSetup, GlobalRecordSIMDMSMappingHeader, GlobalRecordSIMDMSDocumentLibrary, GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS BC Standard Migration")
                {
                    ApplicationArea = All;
                    Caption = 'Migrate From BC';
                    Image = Import;
                    ToolTip = 'This action opens the BC Attachment Migration Wizard for the current entry.';
                    Visible = GlobalIsUserAdminBoolean;
                    Enabled = GlobalBCStandardRecordHasAttachmentsBoolean;

                    trigger OnAction()
                    var
                        LocalPageSIMDMSBCAttachWIZ: Page "SIM_DMS BC Attach WIZ";
                    begin
                        LocalPageSIMDMSBCAttachWIZ.SetValues(GlobalRecordSIMDMSDocumentLibrary, GlobalRecordSIMDMSMappingHeader, GlobalCurrRecordRef);
                        LocalPageSIMDMSBCAttachWIZ.RunModal()
                    end;
                }
                fileuploadaction("SIM_DMS Multi Quick Upload")
                {
                    ApplicationArea = All;
                    Caption = 'Quick Upload';
                    ToolTip = 'This action allows users to quickly drop documents without having to open the archive.';
                    AllowedFileExtensions = '.*';
                    AllowMultipleFiles = true;
                    Image = CreateDocuments;
                    Enabled = GlobalWriteAccessControlBoolean;

                    trigger OnAction(Files: List of [FileUpload])
                    var
                        LocalJsonObject: JsonObject;
                    begin
                        LocalJsonObject := GlobalCodeunitSIMDMSMgt.FilesUploadAction(Files);
                        CurrPage.SIM_DMSDropZoneFB.Page.UploadFilesFromJsonData(Format(LocalJsonObject));
                    end;
                }
            }
        }
    }

    trigger OnAfterGetCurrRecord()
    begin
        CurrPage.SIM_DMSDropZoneFB.Page.SetVariant(CurrPage.OBJECTID(FALSE), Rec, Rec."No.");
        CurrPage.SIM_DMSDropZoneFB.Page.GetValues(
        GlobalDMSWizardEnaBoolean,
        GlobalDMSWizardVisBoolean,
        GlobalDMSFactBoxButtonsVisBoolean,
        GlobalIsUserRegisteredBoolean,
        GlobalDMSFactBoxConfigButtonVisBoolean,
        GlobalAllowViewBoolean,
        GlobalCurrRecordRef,
        GlobalDocumentCountIntegerText,
        GlobalIsSharePointBoolean,
        GlobalIsAzureBlobStorageBoolean,
        GlobalCurrPageIdInteger,
        GlobalIsUserAdminBoolean,
        GlobalRecordSIMDMSDocumentLibrary,
        GlobalRecordSIMDMSMappingHeader,
        GlobalRecordSIMDMSUserSetup,
        GlobalRecordSIMDMSModuleSetup,
        GlobalMappingCode,
        GlobalWriteAccessControlBoolean,
        GlobalBCStandardRecordHasAttachmentsBoolean
        );
    end;

    var
        GlobalRecordSIMDMSModuleSetup: Record "SIM_DMS Module Setup";
        GlobalRecordSIMDMSUserSetup: Record "SIM_DMS User Setup";
        GlobalRecordSIMDMSMappingHeader: Record "SIM_DMS Mapping Header";
        GlobalRecordSIMDMSDocumentLibrary: Record "SIM_DMS Document Library";
        GlobalCodeunitSIMDMSMgt: Codeunit "SIM_DMS Mgt.";
        GlobalCodeunitSIMDMSFunctions: Codeunit "SIM_DMS Functions";
        GlobalPageSIMDMSDropZoneFB: Page "SIM_DMS DropZone FB";
        GlobalCurrRecordRef: RecordRef;
        GlobalCurrPageIdInteger: Integer;
        GlobalMappingCode: Code[20];
        GlobalBCStandardRecordHasAttachmentsBoolean: Boolean;
        GlobalDMSWizardEnaBoolean: Boolean;
        GlobalDMSWizardVisBoolean: Boolean;
        GlobalDMSFactBoxButtonsVisBoolean: Boolean;
        GlobalDMSFactBoxConfigButtonVisBoolean: Boolean;
        GlobalDocumentCountIntegerText: Text;
        GlobalIsUserRegisteredBoolean: Boolean;
        GlobalIsUserAdminBoolean: Boolean;
        GlobalWriteAccessControlBoolean: Boolean;
        GlobalIsSharePointBoolean: Boolean;
        GlobalIsAzureBlobStorageBoolean: Boolean;
        GlobalAllowViewBoolean: Boolean;

}

Liste

Code Anzeigen
AL
pageextension 5492925 "SIM_DMS PostedSalesInvoicesExt" extends "Posted Sales Invoices" //143
{
    layout
    {
        addfirst(FactBoxes)
        {
            part(SIM_DMSDropZoneFB; "SIM_DMS DropZone FB")
            {
                ApplicationArea = All;
            }

        }
    }
    actions
    {
        addafter(Category_Category20)
        {
            group("SIM_DMS Dropzone Actions")
            {
                Caption = 'Document Central';
                ShowAs = Standard;
                Image = Document;
                actionref("SIM_DMS Configuration Wizard Promoted"; "SIM_DMS ConfigurationWizard")
                { }
                actionref("SIM_DMS Archive Promoted"; "SIM_DMS Archive")
                { }
                actionref("SIM_DMS Multi Quick Upload Promoted"; "SIM_DMS Multi Quick Upload")
                { }
                actionref("SIM_DMS ArchiveVersionStatus Promoted"; "SIM_DMS ArchiveVersionStatus")
                { }
                actionref("SIM_DMS Configuration Promoted"; "SIM_DMS Configuration")
                { }
                actionref("SIM_DMS RelatedDocument Promoted"; "SIM_DMS RelatedDocument")
                { }
                actionref("SIM_DMS btnUpdate Promoted"; "SIM_DMS btnUpdate")
                { }
                actionref("SIM_DMS BC Standard Migration Promoted"; "SIM_DMS BC Standard Migration")
                { }
            }
        }
        addafter(Correct)
        {
            group("SIM_DMS Dropzone FB Actions")
            {
                action("SIM_DMS ConfigurationWizard")
                {
                    ApplicationArea = All;
                    Caption = 'Configuration Wizard';
                    Ellipsis = true;
                    Image = Setup;
                    ToolTip = 'This button opens the configuration wizard which will guide you through the process of creating a setup for the factbox.';
                    Enabled = GlobalDMSWizardEnaBoolean;
                    Visible = GlobalDMSWizardVisBoolean;

                    trigger OnAction()
                    begin
                        GlobalCodeunitSIMDMSFunctions.ConfigWizardAction(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS Archive")
                {
                    ApplicationArea = All;
                    Caption = 'Archive';
                    Ellipsis = false;
                    Enabled = GlobalDMSFactBoxButtonsVisBoolean;
                    Image = Documents;
                    Visible = GlobalIsUserRegisteredBoolean;
                    ToolTip = 'This button opens the document overview.';

                    trigger OnAction()
                    begin
                        if not GlobalAllowViewBoolean then
                            exit;
                        GlobalPageSIMDMSDropZoneFB.ViewDocuments(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS ArchiveVersionStatus")
                {
                    ApplicationArea = All;
                    Caption = 'Archive Queue';
                    Ellipsis = false;
                    Enabled = GlobalDMSFactBoxButtonsVisBoolean;
                    Image = WorkCenterLoad;
                    Visible = GlobalIsUserRegisteredBoolean;
                    ToolTip = 'This button opens the overview of the archive prints. This page can be used to monitor the archive printouts.';

                    trigger OnAction()
                    begin
                        GlobalPageSIMDMSDropZoneFB.ViewDocumentVersions(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS Configuration")
                {
                    ApplicationArea = All;
                    Caption = 'Configuration';
                    ToolTip = 'This button opens the mapping configuration page. The settings for the mapping can be made here.';
                    Image = Setup;
                    Visible = GlobalDMSFactBoxConfigButtonVisBoolean;

                    trigger OnAction()
                    begin
                        GlobalCodeunitSIMDMSFunctions.ConfigurationAction(GlobalMappingCode, GlobalCurrPageIdInteger);
                    end;
                }
                action("SIM_DMS RelatedDocument")
                {
                    ApplicationArea = All;
                    Caption = 'Relation Management';
                    ToolTip = 'This button displays all records related to this record.';
                    Image = Links;
                    Visible = GlobalIsUserRegisteredBoolean and GlobalIsUserAdminBoolean;

                    trigger OnAction()
                    begin

                        GlobalPageSIMDMSDropZoneFB.ViewDocumentRelations(GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS btnUpdate")
                {
                    ApplicationArea = All;
                    Visible = GlobalIsSharePointBoolean or GlobalIsAzureBlobStorageBoolean and GlobalIsUserRegisteredBoolean and GlobalIsUserAdminBoolean;
                    Caption = 'Sync Documents';
                    Image = Interaction;
                    ToolTip = 'This button will synchronize the documents with the SharePoint or Azure Blob Storage.';

                    trigger OnAction()
                    var
                        LocalRecordSIMCORESetup: Record "SIM_CORE Setup";
                    begin
                        GlobalCodeunitSIMDMSFunctions.SyncDocumentsAction('UPDATE_DATAGRID', LocalRecordSIMCORESetup, GlobalRecordSIMDMSModuleSetup, GlobalRecordSIMDMSUserSetup, GlobalRecordSIMDMSMappingHeader, GlobalRecordSIMDMSDocumentLibrary, GlobalCurrRecordRef);
                    end;
                }
                action("SIM_DMS BC Standard Migration")
                {
                    ApplicationArea = All;
                    Caption = 'Migrate From BC';
                    Image = Import;
                    ToolTip = 'This action opens the BC Attachment Migration Wizard for the current entry.';
                    Visible = GlobalIsUserAdminBoolean;
                    Enabled = GlobalBCStandardRecordHasAttachmentsBoolean;

                    trigger OnAction()
                    var
                        LocalPageSIMDMSBCAttachWIZ: Page "SIM_DMS BC Attach WIZ";
                    begin
                        LocalPageSIMDMSBCAttachWIZ.SetValues(GlobalRecordSIMDMSDocumentLibrary, GlobalRecordSIMDMSMappingHeader, GlobalCurrRecordRef);
                        LocalPageSIMDMSBCAttachWIZ.RunModal()
                    end;
                }
                fileuploadaction("SIM_DMS Multi Quick Upload")
                {
                    ApplicationArea = All;
                    Caption = 'Quick Upload';
                    ToolTip = 'This action allows users to quickly drop documents without having to open the archive.';
                    AllowedFileExtensions = '.*';
                    AllowMultipleFiles = true;
                    Image = CreateDocuments;
                    Enabled = GlobalWriteAccessControlBoolean;

                    trigger OnAction(Files: List of [FileUpload])
                    var
                        LocalJsonObject: JsonObject;
                    begin
                        LocalJsonObject := GlobalCodeunitSIMDMSMgt.FilesUploadAction(Files);
                        CurrPage.SIM_DMSDropZoneFB.Page.UploadFilesFromJsonData(Format(LocalJsonObject));
                    end;
                }
            }
        }
    }

    trigger OnAfterGetCurrRecord()
    var
        LocalRecordSalesInvoiceHeader: Record "Sales Invoice Header";
    begin
        CurrPage.SetSelectionFilter(LocalRecordSalesInvoiceHeader);
        GlobalCurrRecordRef.GetTable(LocalRecordSalesInvoiceHeader);

        CurrPage.SIM_DMSDropZoneFB.Page.SetVariant(CurrPage.ObjectId(false), Rec, Rec."No.", GlobalCurrRecordRef);
        CurrPage.SIM_DMSDropZoneFB.Page.GetValues(
        GlobalDMSWizardEnaBoolean,
        GlobalDMSWizardVisBoolean,
        GlobalDMSFactBoxButtonsVisBoolean,
        GlobalIsUserRegisteredBoolean,
        GlobalDMSFactBoxConfigButtonVisBoolean,
        GlobalAllowViewBoolean,
        GlobalCurrRecordRef,
        GlobalDocumentCountIntegerText,
        GlobalIsSharePointBoolean,
        GlobalIsAzureBlobStorageBoolean,
        GlobalCurrPageIdInteger,
        GlobalIsUserAdminBoolean,
        GlobalRecordSIMDMSDocumentLibrary,
        GlobalRecordSIMDMSMappingHeader,
        GlobalRecordSIMDMSUserSetup,
        GlobalRecordSIMDMSModuleSetup,
        GlobalMappingCode,
        GlobalWriteAccessControlBoolean,
        GlobalBCStandardRecordHasAttachmentsBoolean
        );
    end;

    var
        GlobalRecordSIMDMSModuleSetup: Record "SIM_DMS Module Setup";
        GlobalRecordSIMDMSUserSetup: Record "SIM_DMS User Setup";
        GlobalRecordSIMDMSMappingHeader: Record "SIM_DMS Mapping Header";
        GlobalRecordSIMDMSDocumentLibrary: Record "SIM_DMS Document Library";
        GlobalCodeunitSIMDMSMgt: Codeunit "SIM_DMS Mgt.";
        GlobalCodeunitSIMDMSFunctions: Codeunit "SIM_DMS Functions";
        GlobalPageSIMDMSDropZoneFB: Page "SIM_DMS DropZone FB";
        GlobalCurrRecordRef: RecordRef;
        GlobalCurrPageIdInteger: Integer;
        GlobalMappingCode: Code[20];
        GlobalBCStandardRecordHasAttachmentsBoolean: Boolean;
        GlobalDMSWizardEnaBoolean: Boolean;
        GlobalDMSWizardVisBoolean: Boolean;
        GlobalDMSFactBoxButtonsVisBoolean: Boolean;
        GlobalDMSFactBoxConfigButtonVisBoolean: Boolean;
        GlobalDocumentCountIntegerText: Text;
        GlobalIsUserRegisteredBoolean: Boolean;
        GlobalIsUserAdminBoolean: Boolean;
        GlobalWriteAccessControlBoolean: Boolean;
        GlobalIsSharePointBoolean: Boolean;
        GlobalIsAzureBlobStorageBoolean: Boolean;
        GlobalAllowViewBoolean: Boolean;

}

Dieser Code fügt der Seite die Document Central Factbox sowie die Document Central Aktionsgruppe hinzu, sodass alle Funktionen von Document Central verfügbar sind. Er überträgt die Referenz des ausgewählten Eintrags an Document Central und ermöglicht das Archivieren von Dokumenten für die gewünschten Einträge, wenn eine Dokumentbibliothek und eine Zuordnung für die Tabelle konfiguriert wurden.

Info

Die Barcode Factbox wurde in die Document Inbound App verschoben. Bitte wechseln Sie zum entsprechenden Bereich in der Dokumentation, um die neue Integration zu sehen.