Esegui Script Su Server in FileMaker 2023

Claris FileMaker 2023 è disponibile da oggi per tutte le piattaforme.

Uno degli obiettivi delle ultime versioni di FileMaker è quello di rendere FileMaker Server il vero centro della piattaforma. Ed effettivamente è un obiettivo pienamente raggiunto:

  • WebDirect è giunto alla piena maturità
  • DataApi e OData si sono affiancate alle tradizionali pubblicazioni PHP e XML
  • LDAP, Oauth permettono di gestire gli utenti in maniera flessibile
  • Il motore di backup garantisce l'integrità dei dati
  • SSL e Encrypt At Rest ne garantiscono la sicurezza in ogni fase
  • I programmi di script gestiscono le attività ripetitive/pesanti
  • Le Admin Console API permettono una gestione semi automatica (con qualche bonus anche per lo sviluppo, come il controllo degli utenti)
  • I log e le statistiche consentono un controllo capillare delle attività e dei carichi
  • La possibilità di usare un load Balancer ne garantisce la scalabilità

Ovviamente questa scelta ha cambiato anche le metodologie di sviluppo, permettendo agli sviluppatori di eseguire quante più procedure possibile direttamente sul server: anche se più complesso, l'esecuzione di script direttamente sul server migliora le prestazioni e l'esperienza utente, e massimizza la compatibilità delle istruzioni di script con i diversi componenti della piattaforma FileMaker.

Esegui script su server

Il primo metodo pratico è stato introdotto con FileMaker 13 e la mitica istruzione Esegui script su server (per gli amici PSOS, dal nome inglese Perform Script On Server), rimasta pressoché invariata nelle versioni successive. In se è abbastanza semplice: si specifica uno script, un parametro (facoltativo, ma quasi sempre indispensabile) e una opzione: l'utente deve scegliere se aspettare la fine dello script lato server ricavandone il risultato (ma bloccando il client per il tempo necessario) oppure eseguire lo script su server senza aspettarne la fine.

In sostanza possiamo scegliere fra una modalità sincrona (il client aspetta il server) o asincrona (client e server lavorano in maniera indipendente).

Ma perché dovremmo utilizzare un approccio così complicato?
In realtà è un metodo di sviluppo utilissimo per una serie di motivi:

  • prestazioni: eseguire uno script su Server di solito è molte volte più veloce che eseguirlo su client.
  • compatibilità (e risparmio di tempo da parte dello sviluppatore): si può eseguire lo stesso script su tutte le anime di FileMaker, senza dover badare alle compatibilità. Su WebDirect ad esempio tutta la reportistica dovrebbe essere fatta lato Server, come le chiamate alle API e l'utilizzo di plugin.
  • esperienza utente: eseguire uno script server-side significa non dover spostarsi di formato o aprire finestre più o meno virtuali, permettendo soluzioni più veloci e una esperienza utente migliore (anche in questo caso, il beneficiario maggiore è WebDirect)

Quello che è sempre mancato è la mancanza di controllo: una volta "lanciato" lo script lato server questo sparisce dall'orizzonte del client, che può solo aspettarne la fine per ricavarne i dati oppure continuare in maniera totalmente indipendente.

E FileMaker 20?

FileMaker 20 porta due novità:

  • un nuovo log ScriptEvents, che unito all'istruzione di script che imposta l'ID di sessione aiuta molto il controllo di quello che succede lato server (per chi fosse interessato, è disponibile un approfondimento di Giuseppe Pupita).
  • una nuova istruzione di script che consente una procedure differente: Esegui Script su server con Callback.

Questa procedura richiede di specificare lo script da eseguire lato server e quello che deve essere invocato sul client al completamento

In questo caso non abbiamo bisogno di nessun opzione: la procedura opera sempre in modo asincrono: il client passa i dati al server, che quando ha terminato lo script esegue direttamente lo script specificato sul client, eventualmente ripassando i dati di elaborati.

Il risultato finale è un miglioramento delle prestazioni, una migliore gestione del flusso di lavoro di script complessi, una migliore esperienza utente.

Il Buono, Il Brutto e il Cattivo

10 curiosità su: "Il buono, il brutto, il cattivo" - LaScimmiaPensa.com

Tutto perfetto, quindi? Non proprio. Dopo aver fatto una panoramica del funzionamento, vediamo in breve quelli che sono i punti di forza e quali sono gli aspetti che possono essere migliorati.

Il Buono

Sicuramente è un bel passo avanti, che porta miglioramenti allo sviluppo delle soluzioni FileMaker.

Il Brutto

Perché creare un'altra istruzione ex-novo? dal punto di vista dello sviluppatore sarebbe stato meglio aggiungere un parametro "call-back" all'istruzione Esegui Script su Server ( o meglio: due parametri, se aggiungiamo anche la tipologia di call-back di cui parliamo nel prossimo paragrafo).

Il Cattivo

L'implementazione è poco pratica e incompleta. Sia lo script da eseguire che quello di call-back devono per forza essere scelti a mano da un elenco: non è quindi possibile definirli per nome o da calcolo, cosa che è un tuffo nel passato a livello di interfaccia ed esperienza utente.

Non esiste una opzione per gestire lo script di call-back: che succede se l'utente sta facendo altro? Sarebbe stato meglio aggiungere una opzione in merito, come accade per altre funzioni similari come l'esecuzione di script da Visualizzatore Web, le cui opzioni sono elencate di seguito.

0Continua
Dopo il completamento di uno script FileMaker in esecuzione, gli script FileMaker in coda vengono eseguiti nell'ordine. Se l'esecuzione degli script FileMaker viene annullata, la coda viene eliminata. (Questo è il comportamento se non è specificata l'opzione. È anche il comportamento predefinito per FileMaker.PerformScript()).
1Arresta
L'esecuzione di uno script FileMaker attualmente in esecuzione viene arrestata e tutti gli altri script in sospeso (in coda o nella call stack) vengono annullati. Quindi viene eseguito lo script.
2Esci
Si esce da uno script FileMaker attualmente sospeso. Se lo script FileMaker corrente era stato chiamato da un altro script FileMaker, il comando ritorna allo script FileMaker che ha effettuato la richiesta fino a quando non rimangono altri script nella call stack. Quindi viene eseguito lo script.
3Riprendi
Viene ripreso uno script FileMaker sospeso. Dopo il completamento dello script ripreso, viene eseguito lo script.
4Pausa
Uno script FileMaker in pausa rimane in stato di pausa. Se lo script sospeso viene ripreso e completato, quindi viene eseguito lo script.
5Sospendi e Riprendi
uno script FileMaker attualmente in esecuzione viene interrotto e viene eseguito lo script. Quando lo script è completato, lo script sospeso riprende con l'istruzione di script successiva. Uno script in pausa rimane in stato di pausa mentre lo script è in esecuzione.

Quindi…

Per approfondimenti sul come trarre il massimo da questa funzione, ci sono i nostri corsi di formazione e laboratori di sviluppo: se sei interessato mandaci una mail, scrivi sulla nostra community Facebook o sul GuruCorner!

Non mi resta che darvi appuntamento per parlare della nuova release di FileMaker nel nostro Bar FileMaker interamente dedicato a FileMaker 2023, che si terrà il 6 Maggio 2023 alle ore 10 (clicca qui per iscriverti e ricevere reminder e aggiornamenti). E ricorda, l’accesso al Bar FileMaker è gratuito, ma a numero chiuso, e sarà disponibile esclusivamente LIVE.




Voti
Risposte
Visite
Domanda
0
voti
2
risposte
52
visualizzazioni
Categoria:

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

Ultimi articoli