Añadiendo datos de demostración a nuestra extensión de Business Central - Business Central

Breaking

miércoles, 5 de febrero de 2025

Añadiendo datos de demostración a nuestra extensión de Business Central

En ocasiones necesitamos cargar datos de demostración en nuestra extensión de Business Central, para mostrar la funcionalidad.


Hasta ahora, esa funcionalidad se hacía cargando los datos directamente en el código AL “hardcodeado”, o bien usando un rapid start una vez instalada la aplicación.

Desde la versión de Business Central 2024 wave 2, ya tenemos disponible una opción, que nos permite añadir ficheros Json, ficheros de texto o incluso imágenes.

 Nueva propiedad en el fichero app.json

Dentro del fichero de configuración de la extensión, el app.json, vamos a añadir una nueva propiedad llamada “ResourceFolders” donde incluiremos las carpetas que queramos añadir a nuestra extensión.  Ojo, que tenemos unos límites que hay que tener en cuenta (ver más abajo).

 


En la carpeta (o carpetas) indicadas aquí, incluiremos los ficheros que queramos incluir con nuestra extensión.

Nuevas funciones en NavApp

Dentro del objeto NavApp, que como sabéis corresponde al objeto de la extensión, disponemos de nuevas funciones:



NavApp.GetResource


Permite obtener un recurso que fue incluido con la aplicación.  En este caso los parámetros son el nombre del fichero, así como la variable InStream que usaremos para guardar el contenido.  También tenemos un parámetro opcional de TextEncoding para cuando tenemos símbolos raros como la “ñ”



NavApp.GetResourceAsJson



En este caso, la función nos devolverá un objeto Json, cuando el contenido del “ResourceName” sea un Json.


Una vez que tenemos el contenido incluido en un objeto Json, lo siguiente es obtener los valores siguiendo la programación habitual:


 NavApp.GetResourceAsText


Si lo que necesitamos es leer un fichero de Texto usaremos esta función.  En este caso nos devolverá rellenará una variable de texto, pero la idea sería la misma que con un Json.

 Añadiendo imágenes

También podemos incluir imágenes dentro de nuestra extensión.  Para ello podemos incluir el fichero directamente o crear una carpeta donde las introduciremos. 



En caso de crear una carpeta nueva, podemos usar otra función llamada NavApp.ListResources



En este caso, nos devolverá, siguiendo un filtro que le indicaremos, una lista con los nombres de los recursos (ficheros) que encuentre cumpliendo ese filtro.



En este ejemplo, leemos todos los ficheros encontrados en la subcarpeta imágenes con la extensión JPG.

A partir de ahí, cargamos los datos, en este caso una imagen, en el correspondiente InStream para tratarlo.  En el ejemplo, guardo la información en una de las tablas.


Límites

Esta nueva funcionalidad, nos llevará a mejorar nuestras extensiones, sobre todo cuando tenemos que crear datos de demostración, pero cuidado que hay límites de tamaños y número de ficheros.

 



Aquí te incluyo la documentación oficial.

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-app-resources?wt.mc_id=DX-MVP-5005064

También te incluyo un video por si prefieres verlo en funcionamiento todo junto.


No hay comentarios: