Nell'articolo precedente abbiamo parlato di WebDirect, una delle nuove feature introdotte con FileMaker 13, questa volta invece vedremo le nuove funzionalità dei campi contenitore.

La versione 12 di FileMaker Pro ha visto l'ingresso della nuova gestione dei campi contenitore, di fatto una delle features più rilevanti di questa release.
FileMaker 13 prosegue su questa strada e propone una ricca serie di aggiunte e miglioramenti ai campi contenitori, consentendoci di conoscere molto di più i file che mettiamo nei nostri campi e di fare molte cose nuove.
Andiamo quindi a vedere in dettaglio le novità di maggior rilievo.

Metadata

La prima feature rilevante dei campi contenitore di FileMaker 13 è l'introduzione dei metadata, la possibilità cioè di leggere i dati che descrivono il file.
La nuova funzione si chiama GetContainerAttribute(), e consente infatti di leggere molti dati di ciò che è contenuto nei nostri campi contenitore.

Qui di seguito ecco un elenco di tutti i parametri ricavabili.

Parametri ricavabili
[General]
Filename: IMG_1170.JPG
Storage Type: Embedded
MD5: B889BB2E736A28E4FDC844C349A90350
File Size: 2086862
Internal Size: 2086926
External Size: 0
External Files: 0

[Image]
Width: 3264
Height: 2448
DPI Width: 72
DPI Height: 72
Transparency: 0 (False)

[Photo]
Orientation: 1 (Normal)
Created: 02/01/2014 14:05:30
Modified:
Latitude: 46.148064
Longitude: 10.997197
Make: Apple
Model: iPhone 5

[Audio]
Title: S.O.S.
Artist: Abba
Album: ABBA
Year: 1975
Track: 4
Genre: Oldies
Composer: Benny Andersson/Björn Ulvaeus/Stig Anderson
Cover Art: jpg
Duration: 00:03:21
Bit Rate: 128 kbps

[Barcode]
Bar Code text: 800256543435282
Bar Code Type: EAN-13

[Signature]
Signed: 17/01/2014 11:54:28

Le informazioni vengono ritornate in sezioni il cui nome è messo in parentesi quadre ([General], [Image], [Photo] ecc.); solo le sezioni pertinenti vengono mostrate per cui, per esempio, la sezione [Audio] compare solo se il campo contiene un file audio.
Il nome del parametro è quello da usare all'interno della funzione GetContainerAttribute() per ricavare il singolo dato, per cui se volete sapere se l'immagine è trasparente si imposta la funzione come: GetContainerAttribute(il campo ; "Transparency")

Nota: se il parametro non fa parte di queli previsti per il file vi beccate un ?

Per avere tutti i dati si usa GetContainerAttribute(il campo ; "all")

L'utilità di molti di questi parametri è evidente: una feature molto richiesta è per ad esempio la geolocalizzazione (latitudine e longitudine), con la conseguente possibilità di creare una mappa o un percorso semplicemente ricavando i dati dalle foto scattate con un cellulare. In altri casi la cosa è più sottile, come la possibilità di usare l'oscuro (per me) parametro MD5 checksum per vedere se ci sono files duplicati.

Memorizzazione su disco

Fino ad oggi la memorizzazione dei file dei campi contenitore usando FileMaker Server poteva avvenire solo ed esclusivamente nel disco in cui si trovava FMS, la qual cosa poteva creare problemi di spazio e performance visto il peso di questi file.
FileMaker Server 13 introduce la possibilità di mettere i file in un disco diverso da quello di FMS, potendo quindi configurare i due dischi nella maniera migliore per scrivere dati o per ospitare immagini.

Riconoscimento delle firme su FileMaker Go

La firma presa tramite iPad/iPhone viene classificata come tale, e non genericamente come immagine. Inoltre la funzione GetContainerAttribute() consente di distinguere tra una firma originale ed una copia: se una firma viene copiata gli attributi del nuovo file cambiano e l'immagine non viene più considerata una firma ma un'immagine.

Nota: purtroppo la duplicazione del record elude questo meccanismo e l'immagine viene ancora considerata firma.

Coding/Decoding da testo a immagine e viceversa

La funzione Base64Decode() consente di riprodurre un'immagine da un testo, mentre la funzione Base64Encode() fa il contrario.
A parte usi molto "geeky" la  funzione Base64Decode() può essere usata fornendo un testo col quale creare immagini, sfondi, colori: la cosa risulta utile in quanto è un metodo "nativo" di produrre immagini, senza doversi appoggiare a un web viewer o senza dover creare campi supplementari per inserire immagini.
Un bell'esempio di quanto sopra lo trovate in questo articolo di excelisys.com, mentre nell'articolo di cimbura.com trovate come si faceva prima passando lo stesso testo ad un web viewer.

Web Direct

In WebDirect è possibile il drag-and-drop nei campi contentitore (!!!!) e non aggiungo niente 🙂

Varie

  • Il limite di 4GB di upload su FM Server è stato rimosso e la velocità dell'upload è stata aumentata.
  • Il rendering dei PDF nei campi contenitori non interattivi è stato migliorato.
  • La funzione Self può essere impiegata nel calcolo del path per la memorizzazione esterna dei campi contenitore.

In questo articolo abbiamo visto che, dopo l'ingresso della nuova gestione dei campi contenitore in FileMaker Pro 12, anche FileMaker 13 continua a procedere su questa strada con diverse novità: abbiamo così la possibilità di conoscere molto di più i file che mettiamo nei nostri campi e di sperimentare nuove soluzioni.

1 commento

  1. Ciao Giuseppe,
    ti ringrazio dell'articolo, ti chiedo un consiglio.

    Devo realizzare un database "catalogo", di circa due mila records. Per ogni record un immagine jpg di max 25kb, io vorrei inserire l'immagine direttamente nel campo contenitore, altri mi dicono che è meglio inserire un link all'immagine, e mantenerla esterna al database, ne vale la pena per le dimensioni finali di questo db?? Ultima domanda,.. qualora decidessi di porre l'immagine esterna al db con relativo link, se per qualsiasi ragione dovessi trasferire il db su altro computer, o su un server online, dovrei rifare 2000 link immagini suppongo, come dovrei fare???

    Ti ringrazio
    Paolo

  2. Caro Paolo
    FM13 è la risposta al tuo problema
    Le nuove funzioni dei campi contenitore ti consentono di memorizzare i files in cartelle esterne, ma di averli a disposizione degli utenti come se fossero "interni" al db
    Basta attivare la memorizzazione "esterna": per farlo vai in Definizione campi, doppio click sul campo contenitore ed alla linguetta Memorizzazione trovi - in basso - l'opzione di cui ti parlo. In questo modo FM crea una cartella in cui mette i files .jpg.
    (Volendo puoi creare anche più cartelle per dividere i jpg in base a criteri tuoi, o criptare i files jpg che vengono memorizzati)

    Se poi ti dovesse capitare di spostare il db hai 2 opzioni
    1. sposti il file di FM insieme alle cartelle che contengono i files .jpg

    2. entri in Definizione campi, imposti la memorizzazione interna.
    Esci => FM copia i jpg nel campo
    Sposti il file
    Entri in Definizione campi, imposti la memorizzazione esterna => FM crea di nuovo la cartella per i files jpg

    ciao

    g.

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here