Home › PAC Software › PAC Form Bridge for Formidable Forms › Documentazione
PAC SOFTWARE DOCS
PAC Form Bridge for Formidable Forms
Questa pagina è una guida pratica alla configurazione e all'uso di PAC Form Bridge con Formidable Forms gratuito. Il plugin invia richieste JSON a uno script FileMaker e applica nel browser le action restituite dallo script.
Versione 1.0.1.1 • Documentazione ufficiale
Formidable Forms
PAC Form Bridge
FileMaker script
Azioni nel browser
1. Overview
PAC Form Bridge è il collegamento tra Formidable Forms e FileMaker. Permette di usare un form web come interfaccia per una logica applicativa eseguita in FileMaker, mantenendo connessione e credenziali sul server WordPress. Ogni form ha la propria configurazione FileMaker: URL del FileMaker Server, versione della Data API, database, layout, Main Script, username, password e timeout.
Nei form Professional la chiamata form_open è obbligatoria e avviene all'apertura del form. Seguono, quando configurati, field_change al cambio di un campo e button per PAC Action Button o submit finale. Ogni richiesta contiene sempre un instance_id stabile per quella istanza del form; dopo il bootstrap contiene anche il record_id restituito da FileMaker.
Risposta applicata nel browser
Lo script FileMaker esegue calcoli, ricerche e logica aziendale, quindi restituisce JSON. PAC Form Bridge applica le action nell'ordine ricevuto: può impostare o svuotare valori, sostituire le opzioni di select, radio e checkbox, mostrare o nascondere campi, abilitarli o disabilitarli e, se autorizzato, spostarli prima o dopo un altro campo. Le autorizzazioni sono configurate per campo: aggiornamento di valori/opzioni, show/hide e enable/disable.
Responsabilità separate, flusso unico
Il plugin usa le funzionalità native di Formidable Forms gratuito e non richiede Formidable Forms Pro per questo flusso. PAC Form Bridge non sostituisce FileMaker: collega il form al Main Script e lascia alla soluzione FileMaker la responsabilità dei calcoli, delle ricerche e della gestione dei dati. Le risposte applicate nel browser non generano nuove chiamate ricorsive field_change.
2. Key benefits
PAC Form Bridge porta la logica di FileMaker dentro l'esperienza del form senza spostare le credenziali nel browser.
Formidable gratuito
Il form resta costruito e gestito con gli strumenti nativi di Formidable, senza richiedere Formidable Forms Pro per il flusso PAC.
Configurazione isolata
Ogni form ha il proprio FileMaker Server, database, layout, Main Script, account e timeout. Form diversi possono quindi parlare con file o script diversi.
Interazione in tempo reale
L'apertura del form, il cambio di un campo e il click su un pulsante possono avviare chiamate separate al Main Script.
Form dinamici
FileMaker può restituire valori, opzioni per select/radio/checkbox e istruzioni per mostrare, nascondere, abilitare o disabilitare campi.
Controllo esplicito
Ogni campo può autorizzare o rifiutare le risposte FileMaker. Le action verso campi inesistenti o non autorizzati vengono ignorate.
Invio finale completo
Il PAC Action Button e il submit finale possono inviare tutti i valori correnti del form e gli eventuali file PAC selezionati.
Log e diagnosi
Ogni chiamata ha un request_id e può essere verificata in Tools → PAC Form Bridge Logs, con il JSON in uscita attivabile temporaneamente per il troubleshooting.
PAC Form Bridge non sostituisce la logica aziendale FileMaker e non impone uno schema di database: WordPress gestisce il form e il trasporto sicuro della richiesta, mentre il Main Script decide come interpretare i dati e quale risposta restituire.
3. How it works
PAC Form Bridge aggiunge le proprie impostazioni in più punti dell'editor di Formidable Forms. La connessione appartiene sempre al singolo form; le opzioni dei campi e dei pulsanti definiscono invece quali interazioni attivare.
Punti di configurazione
1
Impostazioni del form → PAC Form Bridge. Configura la connessione FileMaker del form: FileMaker Server URL, Data API version, Database, Default layout, Default Main Script, Username, Password e Timeout. Il bootstrap form_open è automatico e obbligatorio: FileMaker deve restituire record_id. Il campo record ID resta disponibile solo come compatibilità per form legacy. Attiva temporaneamente Include the outgoing script JSON in the PAC log per la diagnostica.
2
Campo dati → opzioni del campo → PAC Form Bridge. Per i campi supportati si può attivare Call FileMaker when this field changes. Il cambio invia a FileMaker l'ID, la field_key e il valore del campo. Nello stesso punto si sceglie il Parameter name opzionale, i campi aggiuntivi da includere nella richiesta e l'autorizzazione Allow FileMaker responses to update this field and its options.
3
Select, radio e checkbox. Se il campo è autorizzato, FileMaker può restituire replace_options per sostituire dinamicamente le opzioni. Ogni opzione ha un value tecnico e una label visualizzata; un'opzione può anche avere disabled: true.
4
Campo File → opzioni PAC Form Bridge. Configura il Container FileMaker, i tipi di file accettati e l'eventuale caricamento multiplo. Il record viene identificato dal record_id restituito durante form_open; il campo nascosto per l'ID resta solo una compatibilità per form legacy.
5
Aggiungi campo → PAC Action Button. Questo è un elemento specifico di PAC Form Bridge per eseguire una chiamata esplicita al Main Script. Il pulsante invia tutti i campi correnti del form e i file PAC selezionati; può inoltre inviare un parametro aggiuntivo nome/valore e definire cosa fare dopo una risposta FileMaker riuscita, ad esempio mantenere aperto il form, mostrare un messaggio di chiusura o reindirizzare.
6
Campo Submit di Formidable → PAC Form Bridge final submit. Il submit nativo può essere abilitato come invio finale PAC. In questo caso l'invio normale di Formidable viene intercettato e trasformato in una richiesta button con ruolo final, contenente tutti i campi correnti e gli eventuali file selezionati.
7
Tools → PAC Form Bridge Logs. Qui si controllano richieste, risposte, errori e request_id. Il request ID permette di collegare l'errore mostrato nel browser alla chiamata registrata dal server.
Flusso tipico Formidable Forms → PAC Form Bridge → FileMaker
1
L'utente apre il form. Se l'inizializzazione è attiva, PAC Form Bridge invia una richiesta form_open con i valori iniziali o correnti.
2
L'utente compila o modifica un campo configurato. Formidable rileva il cambio e PAC Form Bridge prepara una richiesta field_change con il campo che ha generato l'evento e gli eventuali campi aggiuntivi selezionati.
3
Il server WordPress recupera la configurazione del form, mantiene le credenziali server-side e chiama il FileMaker Server tramite la Data API e il Main Script configurati.
4
FileMaker riceve il JSON come parametro dello script, legge event e fields, esegue calcoli o ricerche e restituisce una risposta JSON valida.
5
PAC Form Bridge valida e normalizza la risposta, scarta i target inesistenti o non autorizzati e applica le action nell'ordine ricevuto.
6
Il browser aggiorna il form: valori, opzioni, visibilità e stato dei campi cambiano senza generare automaticamente una nuova chiamata field_change.
7
Quando l'utente preme un PAC Action Button o il submit finale, PAC Form Bridge invia una richiesta button con tutti i dati correnti e gli eventuali file; FileMaker esegue lo script finale e restituisce l'esito.
8
In caso di errore, l'utente vede il messaggio della richiesta e l'amministratore usa il request_id nei PAC Form Bridge Logs per la diagnosi.
4. Requirements
Per usare PAC Form Bridge versione 1.0.0 servono:
◉
WordPress con Formidable Forms gratuito attivo.
◉
PAC Form Bridge 1.0.0 installato e attivo.
◉
FileMaker Server raggiungibile dal server WordPress tramite HTTPS, con la Data API disponibile.
◉
Un database FileMaker, un layout e un Main Script eseguibile dall'account configurato.
◉
Un account FileMaker autorizzato alla connessione Data API e all'esecuzione dello script. Username e password vengono salvati server-side nella configurazione del form.
◉
Un form Formidable con i campi necessari e con field_key stabili. Il form va salvato prima di poter selezionare i campi aggiuntivi nelle opzioni PAC.
◉
Per usare form_open, l'opzione di inizializzazione deve essere attivata nelle impostazioni PAC del form.
◉
Per usare gli aggiornamenti restituiti da FileMaker, i campi interessati devono avere attiva l'autorizzazione Allow FileMaker responses to update this field and its options.
◉
Per gli upload verso FileMaker, un campo del form deve contenere il record ID esistente e il campo File deve avere un Container FileMaker di destinazione.
Non è necessario Formidable Forms Pro per queste funzioni. La soluzione FileMaker deve invece restituire una risposta JSON valida con il protocollo PAC previsto.
5. Installation
Procedura consigliata per installare e preparare il primo form:
1
Formidable Forms
Installa e attiva Formidable Forms gratuito. Crea il form e aggiungi i campi che devono essere compilati dall'utente.
2
PAC Form Bridge
Installa e attiva PAC Form Bridge 1.0.1.1. Verifica che il plugin sia attivo prima di configurare il form.
3
Connessione del form
Apri il form e vai a Impostazioni → PAC Form Bridge. Inserisci, per quel form, URL del FileMaker Server, versione Data API, database, layout, Main Script, username, password e timeout.
4
Salvataggio
Salva le impostazioni del form. La connessione e le credenziali appartengono a questo form; non vengono inviate al browser.
5
Campi dinamici
Configura i campi che devono interagire con FileMaker. Nelle opzioni PAC del campo attiva Call FileMaker when this field changes, scegli il parametro opzionale, seleziona gli eventuali campi aggiuntivi e configura le tre autorizzazioni: aggiornamento valori/opzioni, show/hide e enable/disable.
6
Apertura del form
Il plugin esegue automaticamente form_open all'apertura. FileMaker deve creare o selezionare il record, restituire record_id e predisporre il contesto per le richieste successive.
7
File e pulsanti
Configura PAC File Upload con il Container FileMaker e usa un PAC Action Button o il submit finale. I file vengono trasferiti solo dopo una risposta form_open valida; i byte non sono inseriti nel JSON.
8
Main Script FileMaker
Prepara il Main Script FileMaker. Lo script legge Get ( ScriptParameter ), analizza event e fields, esegue la logica necessaria e restituisce JSON valido, ad esempio {"success":true,"actions":[]}.
9
Test e diagnostica
Esegui il test. Prova prima una chiamata semplice, poi verifica i valori del form e la risposta applicata. In caso di errore usa il request_id e la pagina Tools → PAC Form Bridge Logs; l'opzione di dettaglio del JSON va disattivata dopo il troubleshooting.
Procedi per incrementi
Durante la configurazione conviene procedere da un solo campo e da una sola action, verificare il risultato e poi aggiungere le altre interazioni.
6. Configurazione
PAC Form Bridge usa un'unica configurazione FileMaker per ogni singolo form. Le impostazioni appartengono al form e non a una configurazione globale condivisa; il bootstrap viene eseguito per ogni istanza aperta del form.
Per ogni form configurare: FileMaker Server URL, Data API version, Database, Default layout, Default Main Script, Username, Password, Timeout e, solo come compatibilità per form legacy, l'eventuale campo contenente un FileMaker record ID.
La chiamata form_open è obbligatoria e viene eseguita automaticamente all'apertura del form. FileMaker deve creare o selezionare il record e restituire record_id; PAC usa la stessa apertura per inizializzare il token server-side. Include the outgoing script JSON in the PAC log va usata solo temporaneamente durante il debug.
Le credenziali restano server-side e non vengono mai inviate al browser. Salvare le impostazioni del form prima di testare le chiamate.
PAC Form Bridge FileMaker connection
FileMaker Server URL
https://fmserver.example.it
Data API version
vLatest
Database / Default layout
Offerte / Tools
Default Main Script
new_PAC
Username / Password
restapi / •••••••• (salvata)
Form initialization
☑ Automatica e obbligatoria
FileMaker restituisce record_id.
Timeout / Diagnostics detail
30 secondi ☐ Include outgoing script JSON
Campo Email (ID 3) — PAC Form Bridge
Campo
Email — ID 3
Etichetta campo
area
Opzioni native
☐ Obbligatorio ☐ Univoco
Classi di layout CSS
frm_full
PAC Form Bridge — evento
☑ Call FileMaker when this field changes
Parameter / campi aggiuntivi
area / base, altezza
Risposte FileMaker
☑ Allow FileMaker responses to update this field and its options
☑ Allow FileMaker to show/hide this field
☑ Allow FileMaker to enable/disable this field
PAC File Upload — FileMaker Container
Campo
PAC File Upload
Field key
documento
Container FileMaker
Documenti
Tipi di file accettati
PDF, JPG, PNG
Più file
☐ Allow multiple files
Record / bootstrap
☑ form_open completato — record_id disponibile
Invio
☑ PAC Action Button o submit finale
6.1 JSON inviato: regole comuni
Il protocollo è pac-form-bridge/1. Ogni richiesta include protocol, request_id, instance_id, form, event e fields. Dopo una risposta form_open valida include anche record_id. Le sezioni files, button ed eventuali metadati aggiuntivi compaiono quando pertinenti.
Significato dei campi comuni: protocol identifica la versione del protocollo; request_id è l'UUID per correlare log, richiesta e risposta; instance_id identifica quella specifica istanza del form; record_id identifica il record FileMaker restituito da form_open; form.id e form.key identificano il form; event descrive cosa è successo; fields contiene i campi inviati; files e button compaiono solo quando la chiamata li richiede.
instance_id identifica una singola istanza DOM del form e resta invariato finché quella pagina resta aperta; una nuova scheda o un reload generano una nuova istanza. record_id identifica il record FileMaker creato o selezionato durante form_open. Il browser non espone il token Data API: il token viene conservato server-side e riutilizzato dal plugin.
Le richieste field_change non contengono un oggetto values ridondante: il campo che ha generato l'evento è dentro event e fields contiene soltanto gli eventuali campi aggiuntivi selezionati.
6.2 Chiamata FileMaker all'apertura del form: form_open
La chiamata form_open è obbligatoria per ogni form Professional configurato. PAC la esegue automaticamente una volta all'apertura del form: FileMaker deve creare o selezionare il record e restituire un record_id. Finché la risposta non è valida, il plugin non accetta cambi di campo, pulsanti, submit o upload.
{ "protocol": "pac-form-bridge/1", "request_id": "open-request-id", "instance_id": "550e8400-e29b-41d4-a716-446655440000", "form": { "id": 1, "key": "contact-form" }, "event": { "name": "form_open" }, "fields": [ { "id": 1, "key": "base", "value": "5" }, { "id": 2, "key": "altezza", "value": "5" }, { "id": 3, "key": "modello", "value": "" } ] }
La risposta di apertura deve contenere il record FileMaker: {"success":true,"record_id":"123","actions":[]}. Il plugin salva il token della sessione Data API lato server e lo riutilizza per le chiamate successive della stessa istanza. Le action di apertura possono caricare opzioni, impostare valori, mostrare/nascondere o abilitare/disabilitare campi; non generano una nuova chiamata form_open.
6.3 Chiamata FileMaker al cambio di un campo: field_change
Il campo che ha prodotto l'evento compare dentro event. La richiesta ripete sempre protocol, request_id, instance_id e record_id; gli eventuali campi aggiuntivi selezionati compaiono dentro fields.
Come leggere i campi dell'evento: field_id è l'ID numerico del campo nel form; field_key è il nome/chiave tecnica del campo, ad esempio altezza; name è il nome dell'evento che ha generato la richiesta, ad esempio field_change; value è il valore corrente del campo, qui 5. Se presente, parameter è il parametro personalizzato configurato per quel campo.
{ "protocol": "pac-form-bridge/1", "request_id": "f7cb96de-20b5-4135-a13c-5296f7d32157", "instance_id": "550e8400-e29b-41d4-a716-446655440000", "record_id": "123", "form": { "id": 1, "key": "contact-form" }, "event": { "field_id": 2, "field_key": "altezza", "name": "field_change", "parameter": "altezza", "value": "5" }, "fields": [ { "id": 1, "key": "base", "value": "5" } ] }
Qui altezza, ID 2, ha prodotto l'evento; base, ID 1, è stato selezionato come campo aggiuntivo. Il campo ID 2 non è ripetuto in fields.
Se il parametro personalizzato del campo è vuoto, parameter viene omesso:
{ "protocol": "pac-form-bridge/1", "request_id": "example-request-id", "instance_id": "550e8400-e29b-41d4-a716-446655440000", "record_id": "123", "event": { "field_id": 2, "field_key": "altezza", "name": "field_change", "value": "5" }, "fields": [ { "id": 1, "key": "base", "value": "5" } ] }
Se non sono selezionati campi aggiuntivi:
{ "protocol": "pac-form-bridge/1", "request_id": "example-request-id", "instance_id": "550e8400-e29b-41d4-a716-446655440000", "record_id": "123", "form": { "id": 1, "key": "contact-form" }, "event": { "field_id": 2, "field_key": "altezza", "name": "field_change", "value": "5" }, "fields": [] }
6.4 Pulsanti PAC Form Bridge e pulsante finale: button
Un PAC Action Button esegue una chiamata esplicita al Main Script. Il pulsante finale usa event.name uguale a button e event.role uguale a final; entrambe le chiamate includono instance_id e, dopo il bootstrap, record_id.
Nel caso del pulsante finale fields contiene tutti i campi correnti del form; files contiene i metadati dei file selezionati. I byte dei file vengono trasferiti separatamente al Container FileMaker, non dentro il JSON.
{ "protocol": "pac-form-bridge/1", "request_id": "final-request-id", "instance_id": "550e8400-e29b-41d4-a716-446655440000", "record_id": "123", "form": { "id": 1, "key": "contact-form" }, "event": { "name": "button", "role": "final", "source": "submit" }, "fields": [ { "id": 1, "key": "base", "value": "5" }, { "id": 2, "key": "altezza", "value": "5" }, { "id": 3, "key": "area", "value": "25" }, { "id": 4, "key": "modello", "value": "A" } ], "files": [], "button": { "after_success": { "mode": "none" } } }
6.5 Differenza tra field_change, form_open e button
field_change: evento del campo configurato + eventuali campi aggiuntivi; include sempre instance_id e, dopo l'apertura, record_id.
form_open: chiamata automatica e obbligatoria, con tutti i campi correnti o iniziali; la risposta deve restituire record_id.
button finale: tutti i campi correnti, metadati dei file e informazioni del pulsante; il record è quello inizializzato da form_open.
6.6 JSON restituito da FileMaker
Per tutte le chiamate la risposta dello script deve essere una stringa JSON valida. Per form_open il campo record_id è obbligatorio:
{ "success": true, "record_id": "123", "actions": [] }
È possibile aggiungere un messaggio:
Per le chiamate successive record_id viene mantenuto dal plugin e può essere restituito nuovamente se utile:
Le action vengono applicate nell'ordine in cui compaiono. Le action non autorizzate, i target inesistenti e le azioni non coerenti con il tipo di campo vengono ignorati; la risposta non genera ricorsivamente nuovi eventi field_change.
6.7 Aggiornamento dei valori dei campi
Per impostare un valore:
{ "success": true, "actions": [ { "op": "set_value", "target": "area", "value": "25" } ] }
target può essere la field_key, ad esempio area, oppure l'ID numerico del campo come stringa, ad esempio "3". Per set_value, clear_value e replace_options deve essere attiva l'opzione Allow FileMaker responses to update this field and its options.
Per svuotare un valore:
{ "success": true, "actions": [ { "op": "clear_value", "target": "sconto" } ] }
6.8 Popolamento dinamico di select, radio e checkbox
La action replace_options popola una select:
{ "success": true, "actions": [ { "op": "replace_options", "target": "modello", "options": [ { "value": "A", "label": "Modello A" }, { "value": "B", "label": "Modello B" }, { "value": "C", "label": "Modello C" } ] } ] }
value è il valore tecnico inviato dal form; label è il testo visualizzato all'utente. La stessa action si usa per radio e checkbox:
{ "success": true, "actions": [ { "op": "replace_options", "target": "finiture", "options": [ { "value": "legno", "label": "Legno" }, { "value": "metallo", "label": "Metallo" }, { "value": "vetro", "label": "Vetro" } ] } ] }
Un'opzione può essere disabilitata:
{ "success": true, "actions": [ { "op": "replace_options", "target": "modello", "options": [ { "value": "A", "label": "Modello A" }, { "value": "B", "label": "Modello B", "disabled": true } ] } ] }
6.9 Azioni show/hide/enable/disable
{ "success": true, "actions": [ { "op": "show", "target": "sovrapprezzo" }, { "op": "hide", "target": "sconto" } ] }
{ "success": true, "actions": [ { "op": "enable", "target": "modello" }, { "op": "disable", "target": "sconto" }, { "op": "move_after", "target": "sovrapprezzo", "reference": "modello" } ] }
Autorizzazioni dei campi. show/hide richiedono Allow FileMaker to show/hide this field; enable/disable richiedono Allow FileMaker to enable/disable this field. move_before/move_after usano Allow FileMaker responses to update this field and its options e richiedono reference, cioè la field_key o l'ID del campo di riferimento.
6.10 Esempio completo
Questo esempio aggiorna il menu modello, imposta il prezzo, mostra un campo, nasconde un altro, modifica lo stato dei campi e dimostra l'ordine delle action. Ogni action viene applicata solo se il campo di destinazione ha la relativa autorizzazione.
{ "success": true, "message": "Configurazione aggiornata", "actions": [ { "op": "replace_options", "target": "modello", "options": [ { "value": "base", "label": "Configurazione base" }, { "value": "premium", "label": "Configurazione premium" }, { "value": "speciale", "label": "Configurazione speciale", "disabled": true } ] }, { "op": "set_value", "target": "prezzo", "value": "1250.00" }, { "op": "show", "target": "sovrapprezzo" }, { "op": "hide", "target": "sconto" }, { "op": "enable", "target": "modello" }, { "op": "disable", "target": "sconto" } ] }
6.11 Esempi FileMaker
Lo script riceve il parametro JSON, legge protocol, request_id, instance_id, record_id, form, event e fields, esegue calcoli o ricerche e restituisce una stringa JSON valida. Per form_open crea o seleziona il record e restituisce il suo record_id; per le chiamate successive usa quel valore per aggiornare il record corretto.
JSONSetElement ( "{}" ; [ "success" ; True ; JSONBoolean ; "message" ; "Prezzo aggiornato" ; JSONString ; "actions[0].op" ; "set_value" ; JSONString ; "actions[0].target" ; "prezzo" ; JSONString ; "actions[0].value" ; "1250.00" ; JSONString ] )
JSONSetElement ( "{}" ; [ "success" ; True ; JSONBoolean ; "actions[0].op" ; "replace_options" ; JSONString ; "actions[0].target" ; "modello" ; JSONString ; "actions[0].options[0].value" ; "A" ; JSONString ; "actions[0].options[0].label" ; "Modello A" ; JSONString ; "actions[0].options[1].value" ; "B" ; JSONString ; "actions[0].options[1].label" ; "Modello B" ; JSONString ] )
6.12 Errori comuni, log e diagnostica
I log PAC si trovano in Tools → PAC Form Bridge Logs. Ogni chiamata ha un request_id utile per correlare richiesta, risposta ed errore.
Per il debug attivare temporaneamente Include the outgoing script JSON in the PAC log per controllare l'esatto JSON inviato in script.param. Password e token FileMaker non vengono inclusi; disattivare l'opzione dopo il troubleshooting.
Risposta non valida: controllare che il risultato dello script sia JSON valido e contenga almeno success e actions.
Target inesistente o non autorizzato: l'action viene ignorata; controllare ID, field_key e autorizzazione del campo.
Errore di collegamento: controllare URL, Data API version, database, layout, Main Script, username, password, timeout e HTTPS.
Le risposte verso campi non autorizzati e i target inesistenti vengono ignorati. Le action vengono normalizzate server-side. Il browser le applica senza generare nuove chiamate field_change.
I valori inviati devono essere coerenti con gli ID e le field_key del form.
6.13 Vincoli e sicurezza
Le credenziali e il token Data API sono server-side e non vengono mai inviati al browser. Tutte le richieste successive sono associate alla coppia instance_id/record_id inizializzata da form_open.
Per ogni campo Professional le autorizzazioni sono indipendenti: Allow FileMaker responses to update this field and its options abilita set/clear/options e le action di spostamento; Allow FileMaker to show/hide this field abilita show/hide; Allow FileMaker to enable/disable this field abilita enable/disable.
Le action vengono applicate nell'ordine ricevuto. Una risposta non genera ricorsivamente un nuovo evento field_change o form_open. I target inesistenti o non autorizzati vengono ignorati e il plugin mantiene il collegamento tra istanza del form, record FileMaker e sessione server.
7. Free vs Professional
Confronto delle funzioni
La versione Free copre il flusso essenziale di invio: il submit finale nativo di Formidable invia i dati correnti del form al Main Script FileMaker. La versione Pro aggiunge le interazioni avanzate tra campi, risposte dinamiche, pulsanti e file.
Legenda: ogni riga termina con i due indicatori nello stesso ordine: Free, poi Pro. Il simbolo ✓ indica che la funzione è disponibile; — indica che non è inclusa.
Feature
Free
Professional
Configurazione FileMaker separata per ogni form — URL Server, Data API version, database, layout, Main Script, username, password e timeout.
✓
✓
Credenziali conservate server-side e chiamate HTTPS verso FileMaker.
✓
✓
Invio superbasico tramite il submit finale nativo di Formidable, con i valori correnti del form.
✓
✓
Invio del parametro JSON al Main Script FileMaker con il contesto minimo della richiesta.
✓
✓
Log base degli errori e request_id per correlare una chiamata.
✓
✓
Chiamata form_open all'apertura del form.
—
✓
Chiamata field_change al cambio di un campo.
—
✓
Parametro personalizzato del campo e selezione di campi aggiuntivi nel field_change.
—
✓
Autorizzazione per campo “Allow FileMaker responses to update this field and its options”.
—
✓
Risposta JSON con action ordinate per modificare il form dopo la chiamata FileMaker.
—
✓
set_value e clear_value per impostare o svuotare valori dei campi.
—
✓
replace_options per popolare dinamicamente select, radio e checkbox.
—
✓
show e hide per modificare la visibilità dei campi dalla risposta FileMaker.
—
✓
enable e disable per modificare lo stato interattivo dei campi.
—
✓
PAC Action Button per eseguire chiamate esplicite diverse dal submit finale.
—
✓
Parametro aggiuntivo nome/valore sul PAC Action Button.
—
✓
Azioni dopo una risposta FileMaker riuscita, come mantenere aperto il form, mostrare un messaggio o reindirizzare.
—
✓
PAC File Upload verso un Container FileMaker dopo l'inizializzazione del record.
—
✓
Tipi di file accettati e caricamento di più file per i campi PAC File Upload.
—
✓
Inizializzazione del form con valori, opzioni e stati restituiti da FileMaker.
—
✓
Diagnostica dettagliata con JSON dello script in uscita, attivabile temporaneamente dal form.
—
✓
8. Professional features
PAC Form Bridge Professional estende il submit finale di Formidable con un modello completo di interazione tra form e FileMaker. È progettato per Formidable Forms gratuito: Professional indica l'edizione di PAC Form Bridge, non un requisito di Formidable Forms Pro. L'inizializzazione form_open è automatica e obbligatoria.
form_open
Chiamata automatica e obbligatoria all'apertura del form. FileMaker crea o seleziona il record, restituisce record_id e inizializza il contesto per le chiamate successive; senza risposta valida restano bloccati cambi, pulsanti, submit e upload.
field_change
Chiamate quando cambia un campo configurato.
Campi aggiuntivi
Selezione dei valori supplementari da includere nella richiesta.
Action JSON ordinate
Risposte JSON ordinate per impostare, svuotare, mostrare, nascondere, abilitare, disabilitare o spostare campi. Le action sono soggette alle autorizzazioni configurate nel campo e non generano chiamate ricorsive.
Opzioni dinamiche
Popolamento di select, radio e checkbox.
PAC Action Button
Chiamate esplicite e submit finale con tutti i valori correnti.
PAC File Upload
Configura un campo PAC File Upload, indica il Container FileMaker di destinazione e inserisci il campo nel form. All'apertura, form_open crea o seleziona il record e restituisce record_id; quando l'utente seleziona un file, PAC lo invia al Container configurato per quel record e comunica allo script i metadati del file. Il caricamento resta bloccato finché l'apertura non è completata.
Diagnostica
Log dettagliati e JSON dello script in uscita, attivabili temporaneamente.
Versione Free. Invia i dati del form tramite il submit finale nativo di Formidable. Le funzioni avanzate non vengono attivate automaticamente nel Free.
9. FileMaker side implementation
FileMaker riceve il JSON come parametro dello script configurato per il form. Il modello consigliato è un unico Main Script per ogni form: lo script legge Get ( ScriptParameter ), verifica il protocollo e il request_id, interpreta form, event e fields, quindi esegue calcoli, ricerche o operazioni sulla soluzione FileMaker.
Responsabilità del Main Script
Il Main Script resta responsabile della logica aziendale: PAC Form Bridge non decide come calcolare un prezzo, cercare un record o salvare i dati. Per questi compiti lo script può usare le funzioni JSON native di FileMaker, come JSONGetElement e JSONSetElement, e restituire la risposta al server WordPress. Lo script FileMaker deve ricevere il parametro, validare la richiesta, interpretare event e fields, eseguire la logica necessaria e restituire una stringa JSON valida.
Esempio 1 — pulsante finale
# Ricevi il parametro inviato da PAC Form Bridge Set Variable [ $param ; Value: Get ( ScriptParameter ) ] Set Variable [ $protocol ; Value: JSONGetElement ( $param ; "protocol" ) ] Set Variable [ $instance_id ; Value: JSONGetElement ( $param ; "instance_id" ) ] Set Variable [ $record_id ; Value: JSONGetElement ( $param ; "record_id" ) ] Set Variable [ $event_name ; Value: JSONGetElement ( $param ; "event.name" ) ] # Verifica protocollo e richiesta; valida instance_id e record_id quando presenti # Leggi form, event e fields; esegui calcoli, ricerche e controlli # Crea o aggiorna il record necessario Set Variable [ $response ; Value: JSONSetElement ( "{}" ; [ "success" ; True ; JSONBoolean ] ; [ "actions" ; "[]" ; JSONArray ] ) ] Exit Script [ Text Result: $response ]
Nel caso del pulsante finale, fields contiene tutti i campi correnti del form e files contiene solo i metadati dei file selezionati. Il record è già stato creato o selezionato durante form_open; lo script può quindi validare l'invio e aggiornare il record indicato da record_id.
Esempio 2 — risposta a field_change
# Ricevi e interpreta il cambio campo Set Variable [ $param ; Value: Get ( ScriptParameter ) ] Set Variable [ $instance_id ; Value: JSONGetElement ( $param ; "instance_id" ) ] Set Variable [ $record_id ; Value: JSONGetElement ( $param ; "record_id" ) ] Set Variable [ $field_key ; Value: JSONGetElement ( $param ; "event.field_key" ) ] Set Variable [ $changed_value ; Value: JSONGetElement ( $param ; "event.value" ) ] Set Variable [ $additional_fields ; Value: JSONGetElement ( $param ; "fields" ) ] # Calcola area e prezzo in base al campo modificato # Restituisci le action da applicare al form Exit Script [ Text Result: $response ]
Nel caso field_change, il campo che ha generato l'evento è descritto in event. instance_id e record_id identificano l'istanza e il record già inizializzato. Dentro fields si trovano soltanto gli eventuali campi aggiuntivi selezionati: il campo trigger non viene ripetuto e non esiste un oggetto values duplicato.
Esempio 3 — inizializzazione form_open
# Ricevi la richiesta obbligatoria di apertura Set Variable [ $param ; Value: Get ( ScriptParameter ) ] Set Variable [ $instance_id ; Value: JSONGetElement ( $param ; "instance_id" ) ] Set Variable [ $event_name ; Value: JSONGetElement ( $param ; "event.name" ) ] If [ $event_name = "form_open" ] # Crea o seleziona il record FileMaker per questa istanza # Recupera da FileMaker opzioni e valori iniziali Set Variable [ $record_id ; Value: Get ( RecordID ) ] Set Variable [ $response ; Value: JSONSetElement ( "{}" ; [ "success" ; True ; JSONBoolean ] ; [ "record_id" ; $record_id ; JSONString ] ; [ "actions" ; "[]" ; JSONArray ] ) ] Exit Script [ Text Result: $response ] End If
La risposta form_open deve sempre restituire il record ID effettivamente creato o selezionato. Il plugin usa questa prima chiamata anche per inizializzare il token della Data API lato server; non inviare il token nel JSON e non generare una nuova chiamata form_open dalle action.
Questi sono flussi di esempio. Lo script FileMaker determina come validare, interpretare e processare il parametro ricevuto, quali record coinvolgere e quale JSON restituire. La risposta minima valida è {"success":true,"actions":[]}; le action vengono applicate nell’ordine in cui sono restituite.
Risposta JSON valida
Il risultato dello script deve essere JSON valido. La risposta minima contiene success e actions; la risposta positiva di form_open deve contenere anche record_id. Un target può essere una field_key oppure l'ID numerico del campo. PAC Form Bridge applica solo gli aggiornamenti consentiti dalle tre autorizzazioni del campo e ignora target inesistenti o non autorizzati.
Credenziali e dati
La connessione FileMaker appartiene al singolo form e viene configurata nella PAC Form Action. URL del server, versione Data API, database, layout, Main Script, username, password e timeout vengono salvati lato server. Le credenziali e il token non vengono inviati al browser; il token viene creato e riutilizzato server-side a partire da form_open.
10. Real-world example
Esempio: configuratore di un prodotto. Un form contiene i campi base, altezza, area, modello, finiture e prezzo. All'apertura FileMaker crea o seleziona il record e restituisce il record_id; non è necessario usare un campo nascosto per mantenere l'ID nel browser.
Apertura del form
form_open carica modelli e finiture disponibili e imposta i valori iniziali.
Modifica di un campo
L'utente cambia base o altezza. PAC Form Bridge invia un field_change con il campo modificato e gli eventuali campi aggiuntivi selezionati.
Calcolo in FileMaker
FileMaker calcola area e prezzo, verifica i modelli compatibili e restituisce action set_value e replace_options.
Aggiornamento dell'interfaccia
La risposta può mostrare il sovrapprezzo, nascondere uno sconto non applicabile e disabilitare un modello non disponibile.
Azione esplicita o submit
L'utente può premere un PAC Action Button per un ricalcolo esplicito oppure il submit finale per inviare tutti i dati correnti.
Esito e file
FileMaker calcola area e prezzo, aggiorna il record associato e restituisce l'esito. Se il form contiene file, PAC Form Bridge li invia al Container configurato solo dopo il bootstrap: il JSON contiene i metadati, mentre il trasferimento binario avviene tramite la Data API usando record_id e nome del Container.
In questo esempio Formidable gestisce l'interfaccia, PAC Form Bridge trasporta evento e valori e FileMaker mantiene la logica applicativa e la responsabilità dei dati.
11. Security and reliability
Il protocollo è progettato per mantenere separati il browser, il trasporto server-to-server e la logica FileMaker.
Credenziali e trasporto
L'URL del server, utente e password restano nella configurazione del form lato server e non vengono esposti al browser. La connessione usa HTTPS e un timeout configurabile.
Autorizzazione della risposta
PAC Form Bridge applica gli aggiornamenti solo ai campi consentiti dalla configurazione. Target inesistenti, non autorizzati o non validi vengono ignorati.
Ordine e normalizzazione
Le action vengono applicate nell'ordine ricevuto. Gli aggiornamenti provenienti dalla risposta non generano ricorsivamente un nuovo field_change nel browser.
Diagnostica controllata
Il request_id collega richiesta, log e risposta. I log sono disponibili in Tools → PAC Form Bridge Logs; il JSON in uscita può essere attivato temporaneamente senza includere password o token e va disattivato dopo il test.
12. Troubleshooting
Problemi ricorrenti e verifiche iniziali per individuare rapidamente il punto del flusso che richiede attenzione.
Il form non chiama FileMaker
Verifica che il form sia attivo, che la configurazione sia corretta e che il campo trigger o il Main Script siano impostati nel layout previsto.
Errore di connessione o autenticazione
Controlla URL HTTPS, certificato, Data API, database, layout, utente, account e timeout. Esegui anche un test server-to-server.
Un campo non viene aggiornato
Controlla field_key o ID numerico e verifica che il campo sia autorizzato a ricevere quell'aggiornamento.
Le opzioni non vengono sostituite
Verifica il tipo di campo — select, radio o checkbox — e la struttura value/label restituita da replace_options.
La risposta viene rifiutata
Controlla che Get ( ScriptParameter ) restituisca JSON valido con success e actions; consulta quindi i log.
Il file non viene inviato
Verifica record ID, Container configurato, tipo di file e limiti previsti per gli invii multipli.
13. FAQ
Risposte essenziali sul comportamento della versione 1.0.0 e sui confini del suo protocollo.
Formidable Forms Pro è obbligatorio?
No. La versione 1.0.0 è progettata per Formidable Forms gratuito. Un eventuale add-on futuro potrà aggiungere integrazioni specifiche, senza cambiare il requisito del core.
La configurazione è condivisa fra i form?
No. La configurazione FileMaker è separata per ogni form.
FileMaker riceve sempre tutti i campi?
Per field_change riceve l'evento che l'ha generato e gli eventuali campi aggiuntivi selezionati. form_open e submit finale usano i valori correnti previsti dal rispettivo evento.
La risposta può modificare qualsiasi campo?
No. Gli aggiornamenti vengono applicati solo ai campi autorizzati dalla configurazione.
Un valore restituito genera un nuovo field_change?
No. Gli aggiornamenti dalla risposta non generano ricorsivamente una nuova chiamata dal browser.
PAC Form Bridge crea i record in FileMaker?
No. Il Main Script FileMaker decide se creare, aggiornare o semplicemente calcolare dati.
Come identifico un errore?
Usa il request_id per collegare richiesta, risposta e log, quindi consulta Tools → PAC Form Bridge Logs.
14. Changelog
Versione 1.0.1.1 — bootstrap, istanza e Container
Questa versione documenta il protocollo pac-form-bridge/1 e il flusso Professional con inizializzazione obbligatoria, instance_id, record_id, token server-side, response actions autorizzate e upload binario verso Container FileMaker.
- Bootstrap form_open automatico e obbligatorio.
- Record FileMaker restituito con record_id e correlazione stabile tramite instance_id.
- Token Data API riutilizzato server-side per le chiamate successive.
- Permessi separati per aggiornare valori/opzioni, mostrare/nascondere e abilitare/disabilitare i campi.
- Response actions ordinate, inclusi spostamenti prima/dopo un campo di riferimento.
- PAC File Upload verso il Container FileMaker configurato, dopo il bootstrap del record.
- Log PAC, request_id e diagnostica dettagliata.
Altri sistemi o add-on non fanno parte della versione 1.0.0: potranno essere documentati separatamente quando saranno disponibili.
PAC Form Bridge for Formidable Forms
Documentation version 1.0.0
Connect Formidable Forms to FileMaker through structured JSON requests, FileMaker responses and browser-side actions.
Documentation scope
This guide covers the current 1.0.0 behavior: per-form FileMaker configuration, form_open, field_change, the final button, JSON responses and browser actions. Use request_id and Tools → PAC Form Bridge Logs to correlate calls and diagnose delivery issues.