API Page con datos propios - Business Central

Breaking

domingo, 23 de julio de 2023

API Page con datos propios

Después del post anterior sobre la creación de APIs propias en Business Central, muchos me habéis preguntado como hacemos para publicar datos personalizados, …  En la entrada de hoy, voy a tratar de aclarar esas dudas.



Hoy, crearemos una API personalizada pero esta vez, de una tabla propia y de unos campos añadidos a una tabla estándar.  

Si no sabes como hacer una API personalizada, te recomiendo que veas primero el video anterior.


Supongamos que tenemos una extensión propia, en la que tenemos dos campos personalizados en la tabla Pedidos de compra (Purchase header) que nuestro cliente o nuestro usuario nos ha pedido, además de que también tenemos una tabla personalizada.

Si necesitáis aprender a crear vuestra propia extensión, podéis ver otro de mis videos donde podéis aprender a crear una tabla.



La idea aquí es ser capaz de acceder a esos nuevos datos desde una Power App.

Vamos a crear una extensión en la que además de traernos las App de Business Central, también nos traeremos la extensión propia de nuestro cliente.  Para ello usaremos lo que se llama, dependencias.

Identificando la extensión: Inspector de páginas

A veces lo tendremos claro, pero lo primero que deberíamos saber es si el campo que queremos publicar, corresponde a una extensión que nos ha preparado nuestro partner o corresponde al estandar.  Y en caso de que sea de una extensión personal, ¿que extensión es?

Para ello usaremos el inspector de páginas.  Con las teclas  CTRL + ALT + F1 entramos en el inspector de páginas, que nos permite ver la tabla, la página y los campos, así como a qué extensión corresponden:




Ya hemos encontrado que mi campo "Comments" pertenece a la tabla "Purchase Header" y me indica que está en la extensión "Sample Extension"

Localizando la información de la extensión


El siguiente paso, es localizar cierta información necesaria de nuestra APP.  Para poder descargar los objetos, necesitamos conocer el ID, la versión y el Publisher, en nuestro caso de la extensión "Sample Extension".  Para hacerlo, nos iremos a "Extension management"  o "Gestión de extensiones" en la lupa:



Y una vez allí, localizamos la extensión:

Imagen 1

Pinchamos sobre el nombre y allí veremos los otros datos que necesitamos:
Imagen 2

Creando mi Custom API


Aquí el proceso es igual que en post anterior.  La única diferencia es que tenemos que modificar el fichero App.json.  En especial, la propiedad dependencies:



Allí, vamos a indicar lo que hemos encontrado en las imágenes anteriores 1 y 2.

Ahora, descargaremos los símbolos de la misma forma que hacemos habitualmente:


La diferencia es que ahora no sólo nos descarga los cuatro ficheros correspondientes a Business Central, también nos descarga los objetos de la App "Sample Extension"



Creando una API con nuestros campos y tablas personalizadas

Usando el mismo asistente que utilizabamos en el video anterior (la extensión AZ AL Dev Tools), nos permite seleccionar las tablas personalizadas, no solo las standard, para crear nuestra API


Lo mismo con las tablas estandard, pero con campos de nuestra "Sample Extension": Comments y Agreement No.



Probando nuestra API


Una vez creada y compilada nuestra API, ya podemos subirla a Sandbox para probarla.  Como recordáis esto lo hacemos mediante el menu Run y Start Debugging


Pero realmente, ¿que está haciendo esto?  


Lo que internamente está haciendo es, en lenguaje básico, verificar que no tengamos ningún error en el código, crearnos el fichero de la extensión (.app) con el nombre del publicador y el nombre de la extensión.  En nuestro caso Roberto Corella_API con mis datos_1.0.0.0.app



Publicarla en el destino (entorno) que le hemos indicado en el fichero Launch.json.  Por defecto, entorno de tipo Sandbox de nombre Sandbox.



Vamos a probar en una Canvas App


Si creamos una Canvas App, puedo conectar a mis datos y si buscamos en el entorno Sandbox, ya tenemos las dos API que acabo de generar:



Y por supuesto, tengo los campos personalizados de mi tabla Purchase Header:



En la próxima entrada, publicaremos nuestra extensión en producción.

Si queréis prácticar con estas extensiones, os las dejo en GitHub.

Si queréis verlo en video, podéis verlo aquí:









Id

·         

No hay comentarios: