FileMaker Pro 13 e Base64: come trasformare una zucca in una carrozza…

...senza il problema dei dodici rintocchi!

FileMaker Pro 13 ha introdotto parecchie novità: tanta carne al fuoco per il barbecue dello sviluppatore, molti bocconi pregiati per il raffinato palato dell’utente.

Una delle novità meno evidenti ma non meno gustose è la possibilità di codificare file mediante l’algoritmo Base64, trasformando quindi in testo univoco qualunque tipo di file binario (immagini, testi, documenti, etc.). Anche se può sembrare una caratteristica abbastanza “esoterica”, questa funzione porta a sviluppi molto interessanti: eccone alcuni.

Esportare le immagini in un semplice file di testo

Fino alla versione 12, la sola possibilità di esportare testo e immagini in un unico file era di usare il formato filemaker (.fp7 o .fmp12) utilizzando un campo contenitore. Adesso è possibile inserire le immagini direttamente in un file di testo, proprio come se fosse un campo qualsiasi. Ovviamente, il peso in kb delle immagini non cambia: nel caso aveste qualche decina di migliaia di record, ciascuno con un riferimento ad una immagine da 1 Mb, aspettatevi un file di testo decisamente corposo.

Questo metodo comporta però dei vantaggi significativi. Pensiamo ad esempio ad un gestionale che vuole comunicare con il mondo esterno (un sito web, un altro gestionale, etc.) trasportando in modo automatico anche le immagini. Fino a FileMaker Pro 12, l’unico modo era quello di trasferire separatamente le immagini, di solito via ftp o http post, inserendo nel testo un link. Ora è possibile inviare un singolo file di testo: sarà poi l’altra parte a dover importare le immagini, utilizzando una delle varie librerie che gestiscono il protocollo Base64.

Questa tecnica è utilizzabile anche tra file filemaker, anche se i vantaggi rispetto all’utilizzo di un file .fmp12 con i campi contenitore si restringono ad ambiti molto particolari. Ovviamente il discorso fatto per le dimensioni dei file vale anche in questo caso: nel caso di un elevato numero di record o di immagini pesanti, il rischio è di ritrovarsi con dei file molto ingombranti.

Utilizzo interno

Le funzioni CodificaBase64() e DecodificaBase64() consentono di inserire immagini in un campo contenitore via script senza avere l’immagine di partenza. Il che vuol dire, ad esempio, poter gestire le icone via script senza necessariamente avere immagini già inserite nel database. [download id="634"].

All'inizio la gestione delle immagini via codice al posto del metodo classico può sembrare una complicazione fine a se stessa. Ed effettivamente, in certi casi lo è. Tuttavia, dopo aver impegnato qualche neurone sulla questione, la cosa inizia a diventare stimolante. Il concetto di base è che queste funzioni permettono di interagire con l’immagine partendo dal codice, ovvero da qualcosa che possiamo gestire con il motore di calcolo di FileMaker.

Parecchi neuroni più tardi, le potenzialità iniziano a diventare decisamente interessanti. Andy Parsons, ad esempio, ha dato la sua personale interpretazione dell’utilizzo della funzione CodificaBase64() creando una progress bar interamente gestibile via codice, partendo dalla codifica di una linea di un singolo pixel.

Ingredienti? Una spruzzata di funzioni personalizzate, una doppia dose di fantasia e una mostruosa padronanza dello strumento nello shakerare il tutto. Il risultato è eccellente, e lo trovate sul blog di Excelisys. Il metodo può tranquillamente essere usato anche per creare diagrammi di GANTT (uno dei sogni proibiti dello sviluppatore di FileMaker).

A livello di gestione immagini, questa metodologia permette di evitare l’inserimento di file nei campi contenitore: una delle cause principali di malfunzionamento dei file nelle versioni ante 12, o in assenza di un FileMaker Server che ne gestisca il traffico (su questo tema, vedi l'approfondimento nella sezione Emergency Room). Avere la possibilità di inserire i file mediante il loro equivalente Base64 non solo permette di evitare problemi, ma dà una flessibilità non indifferente rispetto a tutta una serie di possibilità grafiche. Per dare un'idea delle potenzialità, Douglas Adler ha creato una piccola demo visibile sul sito HomeBase Software.

Altro aspetto da considerare è il tema della sicurezza a livello di condivisione delle informazioni. Avere un codice testuale permette operazioni di crittazione dati aggiuntive, in modo da garantire un ulteriore livello di sicurezza rispetto ad un file binario. Un utente non autorizzato troverebbe sicuramente più semplice avere accesso ad un file già pronto che non ad un insieme pseudo-aleatorio di caratteri. È ovviamente possibile gestire le protezioni direttamente a livello di formato del file, ma solo in alcuni casi (pdf, office, etc.). Si tratterebbe comunque di un'operazione da gestire al di fuori di FileMaker. Una codifica del codice creato con le funzioni di FileMaker ne permette invece la gestione interna.

Conclusione

Le funzioni Base64 non rappresentano forse la novità di punta dell'ultima versione FileMaker, ma di certo ampliano le possibilità di intervento dell’utente, creando nuovi scenari operativi precedentemente realizzabili solo tramite l’utilizzo di plugin.




Nessuna domanda trovata.

Giulio Villani

Utilizza FileMaker dalla versione 2 (A.D. 1993), per sviluppare idee e soluzioni, e risolvere problemi. Membro della Filemaker Business Alliance, sviluppatore Certificato FileMaker su tuttele versioni a partire dalla 11, FileMaker Certified Trainer, si occupa di formazione, consulenza, sviluppo di soluzioni, con qualche incursione nell’editoria. Oltre a “Sviluppo FileMaker consapevole”, è autore di “FileMaker Pro 9 La Grande Guida” e di “FileMaker Pro 10 La Grande Guida”, entrambi editi da Mondadori Informatica, di articoli e di recensioni sulle principali riviste italiane del settore. Utilizza – con sentimenti ambivalenti – anche PHP, JavaScript, CSS/HTML, MySQL e NoSQL. Feroce capacità di analisi e problem solving.
Cerca
Prendi la corsia preferenziale e risolvi i tuoi problemi di sviluppo FileMaker!

Risorse gratuite

Guru Corner

Altri articoli di Giulio Villani

Altri articoli:
,

Ultimi articoli