Con il passare del tempo l’universo FileMaker si è molto ampliato e nei miei tanti anni di sviluppo (forse pure troppi ????) ho avuto il piacere di assistere alle molte evoluzioni che questo ambiente di sviluppo ci ha regalato - in  bene e in male.
Resto convinto che uno dei maggiori punti di forza di FileMaker sia proprio nelle capacità di collegamento con il mondo esterno, sia native, sia frutto della mente diabolica degli sviluppatori più capaci.

I cinque metodi per collegare FileMaker ad un Web service

Quali sono i metodi che possiamo utilizzare per permettere a FileMaker di parlare con questi Web service?
  1. visualizzatore web tramite la funzione get (attributooggettoformato).
  2. importazione diretta di dati XML attraverso un foglio di stile XSLT
  3. istruzioni di script inserisci da url
  4. utilizzo di plugin
  5. utilizzo di pagina PHP per connettersi direttamente a web service

Il visualizzatore web (o web viewer)

Questo metodo ha il grandissimo vantaggio di rimanere all’interno di FileMaker, quindi nella nostra comfort zone.

Non dobbiamo imparare codici strani e usiamo lo strumento che FileMaker 16 ha definitivamente consacrato come uno dei miei preferiti (ne ho parlato anche qui): il visualizzatore web (o web viewer).

Ha però tutti gli svantaggi di un Web viewer e cioè che si basa comunque sulle librerie del browser standard di sistema (Safari per Mac OS X e Explorer o Spartan per Windows).

Non può utilizzare il metodo post, non può leggere o scrivere le intestazioni e soprattutto è scarsamente programmabile a livello di scripting quindi l’unico modo per raggiungere il risultato è utilizzare un metodo alla pause and pray (ossia passi un URL, carichi i dati e preghi Dio che restituisca quello che ti serve e non se ne vada per fatti suoi).

L'importazione diretta di dati XML attraverso un foglio di stile XSLT

Questo metodo ha tutti i vantaggi del linguaggio XML: solido, documentato, strutturato, robusto e facilmente gestibile [ma tremendamente noioso!]

Il metodo comporta l'importazione diretta dei dati da un'origine dati XML, sfruttando il comando File>Importa Record>Origine Dati XML e specificando  la richiesta HTTP e il foglio di stile XSLT.

Ha però alcuni degli svantaggi che abbiamo già visto quando si usa un web viewer: può essere utilizzato soltanto attraverso http get e non c’è la possibilità di modificare o scrivere gli header.


Altra cosa importante da tener presente è che il tracciato dei dati XML deve essere compatibile con la grammatica XML standard di FileMaker a meno che non si abbiano forti competenze di XSLT che permettano la creazione di un foglio stile personalizzato.

È stato uno dei primi metodi usabili, attualmente è utilizzato raramente per la presenza di altre possibilità più flessibili.

L'istruzione di script InseriscidaUrl

Anche in questo caso l'utilizzo dell'istruzione di script InseriscidaUrl ha il grande vantaggio di essere una funzione nativa del motore FileMaker e quindi è nella comfort zone di qualunque sviluppatore.

Per questo motivo è perfettamente compatibile con qualunque dispositivo iOS e può essere utilizzata su iPad o iPhone senza nessun problema.

Fino alla versione 14 l'istruzione inserisci da URL pagava una scarsa flessibilità e un supporto molto limitato del metodo POST.
La versione 15 ha migliorato l'utilizzo, ma la vera svolta è arrivata con la versione 16, che ha portato la compatibilità con la libreria cURL, quindi gestione di http post, header ftp, etc,
Insomma, un vero coltellino svizzero.
Ovviamente anche in questo caso c'è un prezzo da pagare: cURL è un protocollo totalmente al di fuori dalla comfort zone in FileMaker, quindi è necessario fare i conti con una sintassi strana (e con il modo con cui è resa in FileMaker).
Certo, chi ha domato il comando EseguiSQL non si spaventerà certo per questo... vero?

Utilizzo di plugin

Un plugin è un modulo di terze parti che aggiunge funzionalità a FileMaker.

Il vantaggio di questo tipo di metodo è che le funzioni aggiunte da un plugin sono solitamente molto più numerose e strutturate rispetto a quelle native di FileMaker e data l’ampiezza del mercato ci sono molte scelte a disposizione dello sviluppatore, che può facilmente selezionare il plugin più adatto alle sue esigenze.

A livello di caratteristiche tecniche l’utilizzo di plugin permette di utilizzare il metodo get, il metodo post, di leggere e modificare gli header, di gestire gli ssl e anche di mandare direttamente costrutti XML o JSON al Web Service oltre a ricevere la risposta.

Contro? E se l'azienda che produce il plugin smette di supportarlo come te la cavi al primo cambio di versione in cui non è più compatibile?

Sempre se non occorre utilizzare iOS, allora i plugin sono da escludere.

Utilizzo di pagina PHP per connettersi direttamente a Web Service

Il PHP è un linguaggio di scripting che contiene una serie di librerie che permettono la comunicazione diretta con la maggior parte dei Web Service REST e SOAP.

Il vantaggio è che si minimizza la creazione di nuovo codice utilizzando delle librerie già esistenti, testate e robuste.

Lo svantaggio è che si esce dall’universo FileMaker e bisogna necessariamente creare una pagina di linguaggio PHP.

Non è impossibile ma occorre avere delle competenze avanzate di PHP o molto tempo a disposizione.

Questo approccio necessita comunque sempre di FileMaker Server perché è FileMaker server che deve pubblicare i dati che poi la pagina PHP trasferirà al Web Service e da cui ricaverà una risposta. E sarà sempre FileMaker Server a fare da interpretare ad eventuali dati restituiti dal Web Service e a gestire l'incontro con i dati utilizzati.

Il metodo migliore è...

Fino alla versione 16 ho sempre preferito l'utilizzo di plugin di vario tipo (da quelli che permettono di gestire le chiamate http a quelli che riuscivano addirittura a trasformare le chiamate al webservice in funzioni di FileMaker), anche se il metodo più sicuro, scalabile e potente era la connessione via Pubblicazione Web Personalizzata e PHP; alla fine però è arrivata l'illuminazione: data la differenza nei singoli approcci,  dopo qualche decina di Web Service ho capito che il metodo migliore è sempre quello che preferisce il Web Service di turno.

 

Per questo ho ideato il corso "Come collegare FileMaker e Web service".

Un corso in cui spiego, accompagnando la teoria alla pratica, quali sono i modi migliori per collegare FileMaker ai Web service più utilizzati nel panorama di sviluppo italiano.

Se vuoi saperne di più, compila il form qui sotto e i miei collaboratori ti terranno informato appena il Corso sarà disponibile!

 

 

2 Commenti

  1. Davvero interessante,
    una domanda cretina. ma un esigenza. Con un amico abbiamo creato delle pagine php (Lui) io creazione del database e inserimento dati. Se vai a vedere il al pagina in www. comicitaly.it / Cartoline vedi come gira sulla rete.
    La domanda. esiste un sistema per esprtare i dati ( Testi ) da Fmk alle pagine php. Io adesso esperto con testo separato da tab se ricordo bene o virgole. Sono i dati delle cartoline e le foto sono in una cartella apposita caricata a mano,

    • Buongiorno, Miro.

      Puoi esportare i dati in un database mysql che venga letto da PHP lato web e visto da FM come una tabella interna, esportarli in testo (magari in markdown) oppure far si che il PHP legga direttamente i dati presenti in FM (ma ti serve FileMaker Server). Per quanto riguarda le immagini, puoi anche caricarle direttamente in ftp o http post via plugin oppure (dalla 16) con la nuova funzione Inserisci da URL 🙂

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here