Mi primera extensión con el New Development Experience, paso a paso

Tal como anunciaba ayer el equipo oficial de Microsoft Dynamics NAV en su blog mediante este post, me he dispuesto a crear mi primera extensión con Visual Studio Code y la extensión AL Language.

Siguiendo las indicaciones del post, he creado la máquina virtual en Azure y en pocos minutos he podido acceder remotamente e inicio VScode para comprobar como efectivamente incluye la preview de la extensión AL Language.
1vscal

Procedo a crear mi primera extensión. Para ello debemos crear y abrir una carpeta donde se colocarán todos los archivos del proyecto.2vscal

Y este es uno de los cambios para mí más importantes, ya que pasamos a trabajar con proyectos y ficheros (tal como lo hacen todos los IDEs) en lugar de BBDD.3vscal

Creo la carpeta Test-1 y procedo a crear un fichero con extensión AL.4vscal

Escribo pageextension para indicar a NAV que deseo crear un nuevo objeto que extende a una página existente. Le doy un número y nombre a mi objeto e indico la página que deseo extender, en este caso la ficha del proveedor.5vscal

“Vendor Card” se subraya en rojo para indicar que no se reconoce. Entonces procedo a crear el paquete mediante la pulsación de las teclas Ctrl+May+B6vscal

Da error, pero es porque VScode ha creado automáticamente el manifest llamado app.json y debemos indicarle donde se encuentran los ficheros de recursos y cual es su localización.
7vscal

Esta es la modificación a efectuar en app.json, el “locale” y el “packageCahePath”.
8vscal

9vscal

Debemos guardar y cerrar este fichero para evitar que VScode nos de un error de “fichero en uso”.
10vscal

Volvemos a generar el paquete mediante la pulsación de las teclas Ctrl+May+B y vemos como ya no da errores.11vscal

En este punto se ha generado un archivo con extensión navx que es el archivo que deberíamos utilizar para instalar nuestra extensión en cualquier NAV.
captura

La intención que tengo es añadir una nueva opción en la página de ficha de proveedor, para ello debo escribir pero cuando escribo el comando addlast Intellisense entra en acción y me muestra los grupos disponibles.12vscal

Escribo que deseo añadir una nueva acción y cuando voy a definir el trigger Intellisense me ofrece su ayuda de nuevo.13vscal

Al seleccionarlo este es el resultado.14vscal

Lo msimo, Intellisense me ayuda con la típica función Message de NAV.15vscal

Y además, ayuda con explicación amplia sobre sus parámetros. ¡Genial!16vscal

Así es como queda el código final.17vscal

Vamos a probarlo. Pulsamos F5 y VScode nos pide el entorno. Evidentemente le digo que quiero Dynamics NAV.18vscal

Y en este momento se crea automáticamente el archivo launch.json que indica los parámetros del NAV al que conectar para probar la extensión. ¡Super!19vscal

El paquete se ha publicado en el servidor de NAV. Abrimos cualquier cliente de NAV y nos dirigimos a la ficha del proveedor… ¡Voila! Aparece mi nueva acción.20vscal

Y efectivamente se ejecuta el código. ¡Maravilloso!21vscal

Conclusión

Mi primera experiencia no ha podido ser más satisfactoria. Cero problemas. Y evidentemente sin tocar los objetos estandar.

Creo que los programadores senior deberemos reaprender a utilizar este nuevo entorno de programación, sin embargo los programadores más acostumbrados a entornos Visual Studio y similares lo pillaran rápido.

A mi particularmente me preocupa perder la parte de diseño, me refiero a esa parte en la que diseñas tablas y campos, sus relaciones, los FlowField, las páginas… y todo sin una sola línea de programación. Es superrápido.

En próximos posts intentaré ir un poco más allá y averiguar quan rápido es VScode vs. C/SIDE en lo referente a la parte de diseño.

Anuncios