Aller au contenu

Extension des pages avec Document Central

Document Central peut être intégré dans des pages existantes de Business Central en les étendant avec la Factbox Document Central ainsi que le groupe d'actions Document Central dans la barre d'actions. Cela garantit que toutes les fonctionnalités principales — telles que la gestion et l'archivage des documents — restent disponibles, même si la Factbox est masquée en raison de personnalisations, de paramètres de rôle ou de limitations d'espace à l'écran. La documentation suivante montre comment mettre en œuvre ces extensions à l'aide d'une extension de page.

Il existe deux manières de procéder :

  • Dans le cas d'une page propre, vous pouvez ajouter le code directement à la page.
  • Pour d'autres pages, vous pouvez créer une extension de page qui exécutera 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'une page Business Central avec la Document Central DropZone FB et le groupe d'actions Document Central dans la barre d'actions :

Carte

Afficher le code
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

Afficher le code
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;

}

Ce code ajoute la Factbox de Document Central à la page, ainsi que le groupe d'actions Document Central, garantissant que toutes les fonctionnalités de Document Central sont disponibles. Il envoie la référence de l'enregistrement sélectionné à Document Central, permettant l'archivage de documents pour les enregistrements souhaités lorsque une bibliothèque de documents et un mappage ont été configurés pour la table.

Info

La Factbox de code-barres a été déplacée vers l'application Document Inbound. Veuillez vous rendre dans la section correspondante de la documentation pour voir la nouvelle intégration.