El objeto Query ha existido durante mucho tiempo en Business Central, pero honestamente, yo no lo usaba mucho y seguro que muchos de los "Dinosaurios" de Navision tampoco.
Una Query, permite obtener datos de una o más tablas combinandolos para generar un dataset. Pero además, permite hacer agregaciones con los datos como medias o sumas de los valores.
Pero... y si además nos permitiese publicar datos y consumirlos en una API. Eso es lo que se llaman Query de tipo API.
Aunque el concepto es similar, el uso es distinto (igual que podemos tener una Page y una API Page).
API Query
Cuando imparto cursos de Power BI, siempre digo que todo lo que pueda obtenerse del origen de los datos, menos tenemos que hacer nosotros, por lo que si esos cálculos que queremos hacer para mostrar una gráfica, ya vienen de Business Central, mejor que mejor.
Creando un API Query en VS Code
Podemos usar las extensiones que tenemos disponibles o bien, usar el snippedtquery - Query of type APIpara crear el código correspondiente.
Dentro de elements pondremos los diferentes dataitem (tablas) y columnas (campos) que
queremos exponer. SerÃa como hacer un report. Podemos anidar dataitems, para lo cual
deberemos usar la propiedad DataItemLink:
DataItemLink ="Customer No."= customer."No.";
Donde le estamos diciendo como relacionamos el dataitem principal (Customer) con el secundario.
En nuestro caso la tabla Customer con la tabla "Cust. Ledger Entry".
La siguente propiedad que tenemos en el dataitem serÃa SqlJoinType que nos indica que registros serán incluidos en el dataset. Las opciones son, basandonos en nuestro ejemplo:
LeftOuterJoin: El dataset contendrá todos los clientes, incluso si no tienen movimientos de venta.
InnerJoin: Solo mostrará los clientes que tengan movimientos de venta.
RightOuterJoin: El dataset contendrá todos los movimientos de venta, aunque no tuviesen cliente (esto no deberÃa de ocurrir en nuestro ejemplo 😊 )
FullOuterJoin: El resultado contiene todos los datos de clientes y todos los datos de movimientos de clientes.
CrossJoin: SerÃa el resultado el producto cartesiano. Es decir una combinación de cada cliente con cada movimiento de cliente. En este caso, no debemos de usar la propiedad DataItemLink.
Como hacemos habitualmente, podemos probar nuestras API directamente en Postman, donde usaremos el correspondiente EndPoint y la autorización oAuth2.0 (puedes saber como configurar la autenticación oAuth2.0 de Business Central aquà (https://youtu.be/kFozSOopyz8)
Una vez configurado el acceso, ya podemos consultar nuestra API:
Usando la API Query en Power BI
Una vez que tenemos configurada nuestra extensión, que en este caso solamente tiene esta API Query, ya podemos compilarla y subirla a nuestro entorno.
AquÃ, al igual que las API Page, no tenemos que hacer nada. Se exponen directamente por lo que ya podemos acceder desde Power BI Desktop y desde "Obtener datos", seleccionamos Business Central:
Si no estamos identificados, nos pedirá que nos autentiquemos y a partir de ahÃ, ya podemos seleccionar dentro de Business Central, del entorno donde hayamos publicado nuestra extensión (BC24ES) y de la empresa que queramos (CRONUS ES), las API avanzadas, que es donde encontraremos la nuestra:
La seleccionamos y ya la podemos usar en nuestro Power BI para crear nuestras gráficas:
Como ves, una forma muy sencilla de exponer los datos, directamente con agregaciones, que nos va a permitir obtener información de Business Central de una forma muy potente.
No hay comentarios:
Publicar un comentario