FileMaker e NFC: un esempio pratico
4 min read

FileMaker e NFC: un esempio pratico

FileMaker e NFC: un esempio pratico

Per quanto riguarda FileMaker, l’introduzione di questa particolare caratteristica è avvenuta con la versione 19, di recente rilascio. Va sottolineato che, all’interno della suite di prodotti, l’unico in grado di supportare la tecnologia NFC è FileMaker Go, ovvero la versione in grado di girare sui dispositivi iOS.

Nello specifico, con l’aggiornamento di iOS alla versione 13 tutti gli iPhone dal 7 in poi, sono in grado di leggere e scrivere un tag NFC.

Tra i formati supportati da FileMaker Go nella lettura dei tag NFC esistono comunque delle limitazioni. Tra tutti quelli utilizzabili possiamo annoverare:

  • Testo semplice AHAHA
  • URL
  • Text/x-vcard ovvero un biglietto da visita elettronico
  • Smart Poster, una combinazione di testo e URI

Ponendo maggiore attenzione a FileMaker, l'istruzione script che permette di sfruttare questa funzionalità è: Configura lettura NFC e le azioni che possono essere effettuare sono due, avviare la lettura o arrestare la scansione dei tag.

Ad appannaggio solo della lettura, l’istruzione prevede delle opzioni su cui possiamo intervenire:

  • “Script” che si occuperà di analizzare il risultato ottenuto della lettura
  • “Parametri”, opzionale, sono gli eventuali parametri da passare allo script indicato in precedenza
  • “Timeout”, ovvero il tempo al termine del quale la scansione verrà annullata
  • “Lettura continua”, opzionale, se attivato la lettura dei tag sarà continua fino a quando non sarà lo stesso utente ad annullarla
  • “Risultato della lettura”, il cui parametro, a partire dalla versione di FileMaker Go 19.1.2, ci permette di scegliere tra due diversi formati: se viene indicato un valore diverso da 0 i dati dell’NFC verranno letti come un JSON, se questo valore è pari a 0 o assente il lettore restituirà una una stringa su più righe.

A proposito di questa recente introduzione è importante mostrare il JSON creato da FIleMaker in seguito alla lettura del tag NFC e la struttura chiave-valore di cui esso si compone. Di seguito la tabella messa a disposizione sul sito ufficiale con i relativi campi.

Nota: la documentazione è in corso di aggiornamento, per cui riportiamo la corretta nomenclatura da utilizzare per l’analisi dei campi del JSON.

Elemento JSON Numero riga stringa Descrizione
action 1 Il motivo per cui è stato richiamato lo script. Restituisce: TagLetto se è stato letto un tag NFC AnnullatoDaUtente se l'utente ha toccato il pulsante Annulla AnnullatoPerErrore se si è verificato un errore
error 2 Stringa di errore
parameter 3 Parametro di script facoltativo specificato nella finestra di dialogo Specifica script
payloadCount 4 Numero di record NFC letti dal tag
payload - In JSON, una matrice di oggetti nelle righe seguenti, una per ciascun record NFC. In una stringa a più righe, le righe dalla 5 alla 8 vengono ripetute per ogni record NFC.
identifier 5 Identificativo del record NFC
primary 6 Payload del record NFC come stringa
type 7 Tipo di record NFC
TypeNameFormat 8 Formato del nome del tipo del record NFC
secondary - Informazioni di payload aggiuntive, se presenti (solo JSON)

FileMaker: un esempio pratico

Ma andiamo ora ad osservare nello specifico come avviene questa trasmissione. Per poter procedere, come già visto in precedenza, è necessario avere a disposizione un tag NFC, che è possibile acquistare sulle più famose piattaforme di vendita online e un iPhone (dal 7 in poi) con almeno iOS 13.2 in modo da poter installare anche FileMaker Go 19.

Utilizzando l’app NFC Tools, disponibile gratuitamente sull’AppStore (download link), sono state scritte sul tag NFC delle semplici informazioni ovvero:

  • un testo: “Testo di prova”
  • un url: “www.prova.it
  • un numero di telefono: “123456789”

In questo caso d’uso abbiamo quindi utilizzato lo stesso iPhone sia per scrivere le informazioni sul tag che per leggerle tramite FileMaker Go in un secondo momento.

Per quanto riguarda il file di FileMaker realizzato per questo esempio, è necessario soffermarci sui due diversi script utilizzati: il primo adibito alla lettura del tag, il secondo che si occupa dell’analisi dei dati letti.

Leggere i dati da un tag NFC

Lo script leggiDaTagNFC effettua una prima verifica che termina l’esecuzione se lo script viene lanciato su un dispositivo diverso da un iPhone, dopodichè recupera i parametri passati dallo script, ovvero “stringa” o “JSON” in base al bottone premuto e, infine, esegue l’istruzione Configura Lettura NFC.

In entrambe le scelte del costrutto if-else, l’istruzione Configura Lettura NFC è impostata per effettuare una lettura utilizzando lo stesso script di analisi dei dati letti e il medesimo tempo di timeout, mentre si differenzia per il parametro passato allo script e il risultato ottenuto.

In particolare, nel primo caso del costrutto “IF” (riga 21), il parametro passato è “Stringa” e non viene indicato nulla all’interno dell’opzione “Risultato della lettura”: in questo modo verrà restituito un elenco di stringhe separate da ritorni a capo.

Nel secondo caso (“ELSE”, riga 23), il parametro è “JSON" e in “Risultato della lettura” è stato inserito il valore “1”: questa combinazione di opzioni restituirà un JSON.

Gestire i dati restituiti da una lettura NFC

Lo script analizzaTagNFC per prima cosa si occupa di effettuare il parsing, ovvero l’estrapolazione dei dati. Per poter procedere con un’analisi corretta, è però necessario comprendere il formato da dover analizzare: le primissime righe di codice recuperano la lettura effettuata e verificano se il formato ottenuto è compatibile con un JSON.

In base al risultato ottenuto, lo script adotta il modo corretto di gestire i dati: nel caso sia un insieme di stringhe concatenate con dei ritorni a capo, verrà utilizzata l’istruzione RicavaValore per individuare il dato. Nel caso si tratti di un JSON, lo script farà riferimento alla struttura chiave-valore appositamente indicata da FileMaker per l’analisi dei dati.