Mitra Global Services

Navimania 49 – Mgt. Json CAL (Rec2Json y Json2Rec)

Hola! Aquí estamos una semana más 🤗

Hoy vais a saber por qué en las últimas semanas os he estado enseñando cómo hacer una DLL de lectura y escritura de Json. Lo tenéis en este link

Es porque vamos a replicar el crear Json desde tablas que es lo que hicimos en Business Central pero para Dynamics Nav, esto lo podéis ver en link.

Por lo que juntaremos las dos cosas, utilizaremos la DLL del Json para crear el Json mucho mas sencillo y modificaremos el código para que en Dynamics nos funcione la extracción e inserción de datos de una tabla desde Json.

Dicho todo esto, vamos manos a la obra 🧐

Empezaremos por la función para encontrar el nombre, que la utilizaremos tanto para importar como para exportar.

Lo primero como siempre es crear la función y sus variables necesarias. La función “GetJsonFieldName”.

Cabe mencionar que ya en esta función hemos tenido que cambiar cosas relacionadas con la función de Business Central.

Esta parte es muy similar al ejemplo que ya hicimos, la gran diferencia es que no tenemos las funciones de Replace del string en Dynamics y por tanto lo tenemos que suplir con otras cosas.

Aquí lo que hacemos es buscar todas las veces que sale la doble línea baja para reemplazarla por una línea simple.

La segunda función del export seria “FieldRef2JsonValue”. Esta función se utiliza para formatear los valores para su correcta extracción.

En este caso necesitamos menos transformaciones que en Business Central pero se le pueden añadir todas las que queramos.

Por ultimo para la parte de exportación esta la función para exportar todo a Json.

En esta es donde tendremos más variables y entre ellas esta nuestra DLL.

El código es bastante similar con la diferencia de que utilizaremos la tabla tempblob y la codeunit File Management para exportar nuestro archivo.

También que en lugar de usar una Objeto Json utilizaremos nuestra DLL.

Vale ahora vamos a las importaciones.

La función de transformación de datos la tenemos en “AssignValueToFieldRef”

Y el código como veis es simplemente ir transformando el valor del Json en un tipo u otro.

Por último creamos la función para importar el Json al record escogido.

Al igual que en el export aquí tenemos nuestra DLL apuntando a la clase de Read para poder leer nuestro Json.

Lo primero es inicializar las variables:

Después recorremos y vamos añadiendo en cada campo el dato que nos muestra el Json

Como siempre este ejemplo entero lo tenéis colgado en GitHub en el link.

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

Esteve Sanpons

ES