La piattaforma FileMaker è composta da FileMaker Server, FileMaker Pro (e Pro Advanced) e FileMaker Go. Lo abbiamo ripetuto spesso ed è informazione molto nota ????.

Ciò che non è così noto invece è che oltre al software, la piattaforma FileMaker fornisce anche un protocollo di rete (o IP protocol) davvero molto utile.

L’installer di FileMaker registra infatti nel sistema operativo FileMaker come protocollo internet, rendendo possibile “chiamare” FileMaker dall’esterno, allo stesso modo in cui è possibile aprire il browser utilizzando il protocollo http/https.

Con questo protocollo è quindi possibile controllare FileMaker anche dall’esterno, come per esempio da una pagina web, da altre applicazioni ma anche da un web viewer.

Procediamo però per gradi.

Brevi cenni storici

FMI rende disponibile il protocollo con FileMaker 11, che supporta i protocolli fmp7:// e fmp7script://, anche se in maniera molto limitata: fmp7:// supporta infatti solo i file ospitati da FileMaker Server e mantre fmp7script:// funziona solo solo su iOS. È comunque una rivoluzione perché permette il callback di altre APP iOs verso FileMaker Go.

FileMaker 12 introduce il protocollo fmp:// che supporta tutti i possibili deoplyment di file su iOS (locale, remoto e ibernato), che raggiunge la definitiva maturità con la versione 13.0v2 del 3.4.2014 (http://help.filemaker.com/app/answers/detail/a_id/13313), in cui si realizza la versione definitiva, con il pieno supporto di tutte le varianti di file, sia su desktop che su iOS.
Questa versione è quella tuttora in vigore, che verr da ora in poi utilizzata come riferimento.

Cosa fa il protocollo FMP URL ?

Col protocollo FMP URL possiamo fare 2 cose:

1. aprire un file, locale o remoto

2. eseguire uno script in un file, locale o remoto

Come si utilizza il protocollo FMP URL ?

La sintassi per aprire un file è:

fmp://indirizzo di rete del file/nome del file

L’indirizzo di rete varia  a seconda del tipo di file che si cerca di aprire

1. se il file è ospitato da FileMaker Server si possono usare
- Nome del DNS: fmp://host.domain.com/Activity.fmp12
- Indirizzo IPv4: fmp://192.168.1.200/Activity.fmp12
- Indirizzo IPv6: fmp://[2001:0DB8:85A3:08D3:1319:8A2E:0370:7334]/Activity.fmp12 

2. Se il file è già aperto, ma “ibernato” (FileMaker Go)

fmp://$/Activity.fmp12

3. Se il file è locale

fmp://~/Activity.fmp12

oppure

fmp://$/Activity.fmp12

Il nome del file è sempre case sensitive. L’estensione .fmp12 non è obbligatoria, dato che il protocollo valuta il nome del file fino al primo punto. Questo vuol anche dire che il nome del nostro file non deve contenere dei punti: utilizzare il protocollo fmp:// per operare su un file chiamato Activity.Monthly.fmp12 produrrà infatti un errore.

È anche possibile specificare username/password per aprire il file, per cui la sintassi diventa:

fmp://username:password@ indirizzo di rete del file / nome del file

La sintassi per eseguire uno script in un file è simile alla precedente, variando solo nella parte finale in cui si  specifica quale script eseguire

fmp:// username:password@ indirizzo di rete del file / nome del file ? script=nome dello script

Il nome dello script NON è case sensitive.

In aggiunta possiamo passare allo script da eseguire un parametro nella forma “classica” del metodo Get

fmp:// username:password@ indirizzo di rete del file / nome del file ? script=nome dello script & nome parametro = valore 

e/o una o più variabili

fmp:// username:password@ indirizzo di rete del file / nome del file ? script=nome dello script & nome parametro = valore & $variabile1 = valore & $variabile2 = valore 

E’ importante ricordare che il testo di username/password, nome del file, valori di parametro e variabili va sottoposto a URL encoding con la funzione GetAsURLEncoded in caso contenga spazi o altri caratteri che non rientrano tra quelli “safe”secondo la  RFC3986 §2.3 (ossia i caratteri [a-z][A-Z], cifre [0-9], trattino "-", underscore "_", punto "." e tilde "~")

È anche importante ricordare che il limite del link è di oltre 80.000 caratteri su Mac, ma solo di 2083 su PC, a causa di una caratteristica di Internet Explorer.

Esempio riassuntivo

fmp://user:Password@192.168.1.200/Activity?script=CercaCosaFare&param=DataOdierna&$status=open&$data=735205 

Avviso ai naviganti

La versione 16 di FileMaker contiene un nuovo set di privilegi estesi, che si regola la possibilità di eseguire script in FileMaker da chiamate da URL, utilizzando appunto il protocollo FMP URL.

Questo privilegio è disattivo di default, anche nell’account con accesso Full, per cui tutte le chiamate che usano il protocollo FMP URL si troveranno bloccate, con un messaggio che dice che non abbiamo i privilegi necessari per eseguire l’operazione. Dobbiamo quindi ricordarci di attivare il privilegio se utilizziamo il protocollo FMP URL nelle nostre soluzioni.

Tutto chiaro, ma... a cosa mi serve?

Il protocollo FMP è molto usato per eseguire operazioni sui file.

Rispetto ad altri metodi ha due grandi vantaggi:
- non deve necessariamente essere lanciato da FileMaker
- non richiede una connessione continua al file di riferimento.

Il che significa ad esempio che può essere usato come link web per lanciare file remoti da un pc (il mitico file di lancio che tanti sforzi richiedeva), anche semplicemente dalla cronologia o dalla barra dei preferiti di un browser.

Inoltre può essere inserito in qualunque tipo di costrutto web, che può quindi interagire con FileMaker.

Se aggiungiamo che un calcolo del tipo "fmp://$/" & get(nomefile)  da la possibilità di eseguire script sul file in cui si sta operando, diventa di fatto l'anello perfetto di congiunzione fra il Visualizzatore Web e i dati FileMaker, come approfondiremo nel prossimo articolo sull'utilizzo avanzato del WebViewer.

Memorizzate il link dell'articolo, e scaldate le tastiere, ne parleremo approfonditamente!

Vi aspetto tutti nel gruppo Facebook FileMaker Developer Italia per parlarne (qui)!

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here