Valutare i campi testo con le Regular Expression in Business Central

Salve lettore, in questo articolo voglio parlarti di un metodo per la validazione di campi e variabili testo per le tue applicazioni. Avrai sicuramente sentito parlare delle ‘Regular Expression’, se non le hai mai sentite nominare, ti lascio il link alla pagina di Wikipedia dove spiega la genesi e i rudimenti di funzionamento.

Non voglio tediarti su come costruire un’espressione regolare per valutare un valore di input di tipo testo, ma voglio porre la tua attenzione al fatto che in Business Central abbiamo una codeunit che fa al caso nostro e che possiamo utilizzare tutte le volte che ci troviamo a che fare con la valutazione del significato di un campo testo.

Mi riferisco alla codeunit 3960 Regex che fa parte del namespace System.Utilities. In particolare, questa codeunit ha una funzione chiamata IsMatch che dato il valore di input e il pattern della regular expression, restituisce vero o falso a seconda che il valore di testo sia compatibile col pattern o meno.

Vediamo con un semplice esempio, che campo applicativo possiamo utilizzarlo. Supponiamo di costruire una pagina con un campo testo di input e un enum che identica al sistema su che ambito vogliamo valutare il testo di input. Tale enum ha i seguenti valori:

La pagina di tipo card, avrà, quindi, i due campi di testo e l’enum esposti e una action che permette di richiamare la funzione EvaluateInput della codeunit che ho creato appositamente per questo esempio che si chiama Validate Input DZ (per comodità, nel print screen sotto mostro solo la action e il richiamo alla funzione)

Vediamo, ora, la funzione EvaluateInput come si presenta, è formato da una istruzione case che valuta ciascun elemento dell’enum.

Tralascia il pattern della regular expression, non è lo scopo di questo post, è solo per farti capire che un valore di testo lo possiamo valutare utilizzando la codeunit standard Regex. Ad ogni modo, se vuoi sapere come ho fatto a recuperare il pattern, l’ho chiesto a Copilot, come mostrato nell’immagine seguente 😉

Se non hai Copilot, ti consiglio di visitare questo portale dove avrai modo di testare i tuoi pattern Regex101 nonché di consultare la documentazione ufficiale Microsoft per la codeunit Regex.

Il risultato che otterremo è questo:

Questa metodologia, puoi, ad esempio, utilizzarla per valutare l’input da sistemi esterni (file di logistica esterna, banche, ecc.), è chiaro che per operazioni semplici (capire se un valore testo è un numero ad esempio) vale sempre l’utilizzo del buon vecchio EVALUATE.

Spero che questo post ti abbia chiarito, se avessi mai avuto dubbi, sull’utilizzo delle Regular Expression in Business Central.

Lascia una risposta