NunezERP
← Volver a los artículos

Cómo incrustar una página web dentro de Business Central con WebPageViewer

Hace unos días me plantearon si era posible visualizar un listado externo directamente desde Business Central, sin necesidad de salir de la aplicación. La idea era bastante sencilla: tener una página en BC desde la que poder consultar información alojada en una aplicación web externa.

Publicado el

Inicia sesión para exportar este artículo

Investigando un poco, encontré que se puede hacer mediante WebPageViewer, que permite incrustar contenido web dentro de una página de Business Central. El usuario sigue usando la aplicación de BC pero tiene una página web incrustada en su pantalla.

Para probarlo, he creado una página AL muy sencilla que apunta directamente a la web oficial de Microsoft:

page 50500 "XXX External Web Viewer"
{
    PageType = UserControlHost;
    ApplicationArea = All;
    UsageCategory = Administration;
    Caption = 'Listado externo';

    layout
    {
        area(Content)
        {
            usercontrol(WebViewer; WebPageViewer)
            {
                trigger ControlAddInReady(CallbackUrl: Text)
                begin
                    CurrPage.WebViewer.Navigate(
                        'https://www.microsoft.com/es-es');
                end;
            }
        }
    }
}

En este ejemplo he utilizado WebPageViewer para cargar la URL mediante el método Navigate(). Además, he utilizado el tipo de página UserControlHost, disponible desde Business Central 26 (runtime 15.0), que está pensado precisamente para alojar este tipo de controles y aprovechar mejor el espacio disponible.

En versiones anteriores también se podía utilizar una página de tipo Card, pero la verdad es que con UserControlHost se ve mucho mejor.

Una vez publicada la extensión, podemos acceder a la página directamente desde el buscador, ya que hemos definido UsageCategory = Administration.

Listado externo

Al abrirla, veremos la web de Microsoft incrustada dentro de BC, manteniendo la interfaz habitual de Business Central y sin salir de la aplicación:

Web de Microsoft dentro de Business Central

El resultado me ha parecido bastante interesante, sobre todo por lo sencillo que es implementarlo. En realidad, estamos mostrando una página web dentro de BC, por lo que no necesitamos importar sus datos ni desarrollar una integración mediante API si lo único que queremos es simplemente consultar su contenido.

Algunas consideraciones

Evidentemente, no todas las páginas web pueden mostrarse de esta forma. Para que funcione, la aplicación externa debe permitir su visualización dentro de un iframe. Además, si se trata de una aplicación privada, habría que revisar cómo gestiona la autenticación, ya que tener una sesión iniciada en BC no implica estar autenticado automáticamente en esa aplicación.

Por tanto, que una web funcione directamente en el navegador no garantiza que podamos incrustarla dentro de Business Central, pero de entrada la idea es bastante ilusionante.

Referencias

Además de la documentación estándar (https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-page-type-usercontrolhost), me apoyé en este vídeo de YouTube que me pareció bastante interesante para entender el funcionamiento de WebPageViewer. También recomiendo echar un vistazo al artículo Render image and URL in Business Central with UserControlHost page type, donde se explica este nuevo tipo de página y se muestran otros ejemplos con un detalle técnico más elevado.

Una idea para seguir pensando.

Explorar otras lecturas →