Saltar al contenido

Ampliación de páginas con Document Central

Document Central puede integrarse en páginas existentes de Business Central ampliándolas con la Factbox de Document Central y el grupo de acciones Document Central en la barra de acciones. De este modo, todas las funciones clave —como la gestión y el archivo de documentos— permanecen disponibles, incluso cuando la Factbox está oculta debido a personalizaciones, configuraciones de rol o limitaciones de espacio en pantalla. La siguiente documentación muestra cómo implementar estas ampliaciones mediante una extensión de página.

Existen dos formas de hacerlo:

  • En el caso de una página propia, puede agregar el código directamente a la página.
  • En otras páginas, puede crear una extensión de página que ejecute el código.

Los siguientes requisitos deben cumplirse:

  • El módulo Document Central debe estar licenciado.
  • CORE debe estar disponible como referencia en la extensión.
  • Document Central debe estar presente como referencia en la extensión.

Código para la extensión de una página de Business Central con la Document Central DropZone FB y el grupo de acciones Document Central en la barra de acciones:

Tarjeta

Mostrar código
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;

}

Lista

Mostrar código
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;

}

Este código agrega la Factbox de Document Central a la página, junto con el grupo de acciones Document Central, asegurando que todas las funciones de Document Central estén disponibles. Envía la referencia del registro seleccionado a Document Central, lo que permite archivar documentos para los registros deseados cuando se ha configurado una biblioteca de documentos y un mapeo para la tabla.

Info

  • La Factbox de código de barras se ha movido a la Document Inbound App. Por favor, dirígete al área correspondiente en la documentación para ver la nueva integración.