Publicar apps dependientes con el comando AL: Publish full dependency tree for active project

En Business Central, podemos definir extensiones que dependen la una de la otra.

A la hora de publicar las extensiones, hay que ser consciente de cuál es el árbol de dependencias, ya que hay que publicar la primera extensión antes de poder publicar la segunda. Básicamente para poder publicar una extensión, todas sus dependencias tienen que estar publicadas previamente.

Hasta BC19 la publicación del árbol de dependencias en el orden correcto era responsabilidad del programador. A partir de BC20 (Business Central 2022 release wave 1) ha aparecido un nuevo comando que nos ayuda en esta tarea y se encarga de publicar las extensiones dependientes en el orden correcto – siempre que tengamos todas las extensiones en el mismo espacio de trabajo (workspace).

AL: Publish full dependency tree for active project

Para ejecutar el comando, presiona F1 para abrir la paleta de comandos y escribe AL: Publish full dependency tree for active Project o utiliza el atajo de teclado Shift + Alt + w.

¿Cómo funciona?

Imagina que tenemos dos extensiones. App1 es la base y App2 depende de la primera.

Para poder publicar la segunda App, la primera tiene que estar presente previamente. Si no está, Visual Studio Code nos devuelve el siguiente error:
The request for path /BC/dev/apps tenant=default&SchemaUpdateMode=synchronize&DependencyPublishingOption=default failed with code UnprocessableEntity. Reason: Extension compilation failed error AL1024: A package with publisher ‘ClipPlatform’, name ‘App1 Base’, and a version compatible with ‘1.0.0.0’ could not be loaded. Symbols for the requested app App1 Base by ClipPlatform 1.0.0.0 could not be found in the database

El comando AL: Publish full dependency tree for active project es capaz de leer el atributo dependencies del fichero app.json. Con esta información se crea el árbol de dependencias y publica automáticamente todas las extensiones necesarias en el orden adecuado.

En el ejemplo, la App2 depende de la App1, así que hay que publicar la App1 primero.

Importante: Las dos extensiones tienen que estar en el mismo espacio de trabajo (workspace), sino acabaremos con este error:
Error: Failed to publish: App2 – dependiente
Error: Failed to publish: App2 – dependiente

Ahora si, si tenemos las dos extensiones en un mismo espacio de trabajo, y ejecutamos el comado AL: Publish full dependency tree for active project obtendremos el siguiente resultado:
Preparing to publish 2 projects in the following order:
1. App1 Base
2. App2 – dependiente

En BC, en la página Extension Management, tenemos que ver las dos extensiones publicadas.

Espero que esta pequeña herramienta os resulte de utilidad.

Salut!
Laura Nicolàs


More Info Course Cursos relacionados con este artículo:


 

Comentarios