Mitra Global Services

Navimania 56 – Trabajar conjuntamente con CAL y AL

Hola a todos!

Os ha ocurrido alguna vez tener que trabajar simultáneamente en una versión que contenga código CAL y extensiones de AL? Un ejemplo de versión seria Business Central 14.

Esto si lo habéis intentado, veréis que al descargar los símbolos sí que podemos ver las modificaciones de CAL hechas en objetos estándar pero todo objeto no estándar no lo conseguiremos visualizar en nuestros proyectos de AL.

Pero el sabio de Navision nos trae una solución que nos va venir súper bien. La podemos encontrar en la documentación oficial en este link

Pues venga, vamos a verlo! 🤩

Primero lo que hacemos es configurar la instancia:

Tenemos que activar el Developer de la instancia y un check llamado “Enable loading application symbols at server startup”. Esto lo que hace es reflejar los símbolos del sistema para poder descargarlos.

Ahora, si vamos a nuestro VsCode y descargamos símbolos, nos aparecerán los símbolos que tuviéramos en ese momento.

He creado un proyecto sencillo donde he añadido la codeunit 80 de registro de ventas y vemos que nos la coge con los símbolos descargados.

Ahora vamos a crear unas codeunit de ejemplos en rango no estándar.

Al volver a descargar los símbolos no aparecen.

No hay problema, en la documentación oficial nos muestra que si ejecutamos nuestro Object Designer con una propiedad en él y compilamos un objeto teniendo las configuraciones de la instancia, nos lo podremos descargar en el VsCode como símbolos y podremos trabajar con él en extensiones.

Esto lo tendremos que hacer de la siguiente manera:

Vamos a la carpeta donde tenemos instalado Nav y en el archivo “finsql.exe” creamos un acceso directo.

Ahora en ese acceso directo le damos a propiedades y vamos al final del todo del destino añadiendo lo siguiente:

Si tenemos el Object Designer en inglés, lo ponemos así: “generatesymbolreference=yes” y si lo tenemos en español así: “generatesymbolreference=Sí

Esto nos crea un acceso directo que al compilar objetos creará los símbolos para que se pueda ver en nuestro VsCode.

Vamos a probarlo, compilamos la Codeunit 50002 ejecutándolo desde este acceso directo.

Al descargar ahora los símbolos, lo que sucederá es que la codeunit aparece:

Pero vemos que los demás objetos han desaparecido, todos los objetos excepto los de sistema, no están en los símbolos descargados.

Esto se soluciona fácilmente, solo tenemos que seleccionar todos los objetos, pulsar F11 y compilar todos los objetos. Por supuesto siempre desde nuestro nuevo acceso directo.

Una vez ha terminado de compilar, si descargamos de nuevo los símbolos veremos que ya están todos nuestros objetos, tanto los del estándar como los personalizados.

Ahora ya podemos crear extensiones y trabajar conjuntamente CAL y AL.

Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.

Esteve Sanpons

ES