Scambio di informazioni: usiamo i Json!

Salve lettore, in questo articolo voglio renderti partecipe di una mia riflessione che ho fatto in questi giorni. Infatti mi è capitato di dover lavorare al file della certificazione unica. Questo file va comunicato all’agenzia delle entrate italiana. Il vero problema, non è tanto costruire il file, quanto la tecnologia che ci sta dietro. E’ un file che ancora si regge sul fatto che un certo valore sia presente in una certa posizione all’interno della riga del file. Questa tecnica poteva andare bene anni fa, quando ancora la tecnologia non aveva raggiunto i livelli che attualmente conosciamo.

Ho pensato, ma quanto sarebbe bello se l’istituzione tale per cui devo generare il file, anziché questo file richiedesse un file JSON. A tal proposito ho pensato a una funzione in AL che dato un qualsiasi record di una tabella trasforma il record in un oggetto JSON che può essere scambiato con un altro sistema.

Ho creato una semplice codeunit con all’interno una funzione che prende in input un tipo Variant e restituisce un oggetto di tipo JSON.

Come potrai notare, ho utilizzato la variabile JsonObj che è di tipo JsonObject. Questo tipo è un container ben definito di JSON e di default contiene un JSON vuoto. Se vuoi saperne di più su questo oggetto, qui puoi consultare la guida in linea. La funzione Add dell’oggetto JSON, vuole due parametri, una chiave in cui metteremo il nome del nostro campo (o l’ID del campo se lo preferisci) e nel secondo parametro il valore del JSON. A questo scopo, ho creato un’ulteriore funzione che mi restituisce un tipo Jsonvalue dato un valore.

In questa funzione, puoi vedere l’introduzione del tipo variabile Jsonvalue che, con la funzione SetValue puoi impostare il valore del JSON. In questo link ti lascio la guida sull’oggetto Jsonvalue. Come puoi notare ho dovuto implicitamente intercettare i tipi date, time e datetime per darne una formattazione più leggibile.

La codeunit, infine, l’ho testata tramite una page extension sulla pagina del piano dei conti. Ho aggiunto una action che visualizza in un message il contenuto del JSON.

Nella prossima immagine puoi visualizzare il risultato che restituisce la funzione.

Possiamo copiare e incollare il contenuto del messaggio in un formattatore di JSON (io utilizzo DevToys scaricabile dal Microsoft Store) e possiamo notare come il JSON del record su cui ero posizionato è perfettamente contenuto nell’oggetto JSON.

Tornando al discorso iniziale, se l’agenzia delle entrate avesse accettato un file JSON anziché un obsoleto file con valori posizionali, il lavoro che ho dovuto fare in questi giorni sarebbe stato molto più veloce.

E tu hai già utilizzato i JSON nelle tue applicazione?

Lascia una risposta