Esegui FileMaker Data API
Esegue una richiesta FileMaker Data API.
Vedere anche
Opzioni
-
Seleziona interi contenuti sostituisce i contenuti di un campo o di una variabile. Se non si seleziona questa opzione:
-
Per un campo, sostituisce solo la parte selezionata del campo attivo oppure inserisce dati nel punto di inserimento. La posizione predefinita del cursore è alla fine dei dati nel campo.
-
Per una variabile che non ha dati Contenitore, inserisce i dati alla fine del valore corrente della variabile. Per una variabile che ha dati Contenitore, sostituisce i contenuti della variabile.
-
-
Destinazione specifica il campo in cui inserire il risultato o la variabile da impostare. Se la variabile non esiste, questa istruzione di script ne crea una (vedere Utilizzo di variabili).
-
Richiesta è un calcolo che specifica la richiesta come testo. Il testo è un oggetto JSON nel formato descritto di seguito.
Compatibilità
Prodotto | Supportata |
---|---|
FileMaker Pro |
Sì |
FileMaker Go |
Sì |
FileMaker WebDirect |
Sì |
FileMaker Server |
Sì |
FileMaker Cloud |
Sì |
FileMaker Data API |
Sì |
Pubblicazione Web personalizzata |
Sì |
Creata nella versione
19.0
Descrizione
FileMaker Data API è un'API REST disponibile come un servizio Web per FileMaker Server e FileMaker Cloud. Le applicazioni Web possono utilizzare questa API per inviare richieste e ricevere dati in formato JSON dai file FileMaker Pro ospitati.
Utilizzando la stessa funzionalità che usa FileMaker Data API per gli host FileMaker, questa istruzione di script consente che uno script eseguito da qualsiasi prodotto FileMaker possa richiedere i dati nel file corrente, ospitato o no, e ricevere i dati in formato JSON. Questa istruzione di script non esegue una chiamata servizio Web a un host utilizzando FileMaker Data API, né dipende dal fatto che l'API sia abilitata su un host. La somiglianza tra questa istruzione di script e FileMaker Data API è solamente che il formato JSON dei dati restituiti è lo stesso. La richiesta è un semplice oggetto JSON, anziché la combinazione di URL, intestazione e il corpo della richiesta, che vengono richiesti da FileMaker Data API per utilizzare un servizio Web di un host FileMaker. Il risultato restituito in Destinazione è nello stesso formato JSON che si avrebbe con la richiesta da un host attraverso FileMaker Data API.
Formato richiesta
Questa istruzione di script supporta le seguenti coppie chiave-valore nell'oggetto JSON specificato dall'opzione Richiesta. Se nella richiesta non è specificata una di queste chiavi, viene utilizzato il valore predefinito.
Chiave | Valore predefinito | Descrizione |
---|---|---|
|
|
|
|
|
|
|
|
Un nome del formato. |
|
|
Un nome di ricorrenza di tabella. Necessario per azioni su |
|
tutti i record |
Una matrice di oggetti JSON, ognuno dei quali specifica un campo e i criteri di ricerca. |
|
|
L'ID univoco di un record. Non è possibile specificare una |
|
|
Un oggetto JSON che specifica il criterio di ordinamento dei record nella tabella del formato corrente. |
|
|
Il numero del primo record in una serie di record nella tabella del formato corrente. |
|
|
Il numero massimo di record da restituire dalla tabella del formato corrente. |
|
valore da |
Per recuperare i dati nel contesto di un formato diverso, specificare un nome del formato. |
|
tutti i portali |
Un oggetto JSON che specifica un portale. |
|
|
Il numero del primo record del portale in una serie di record correlati. Per |
|
50 |
Il numero massimo di record correlati da restituire. Per |
|
|
Un oggetto JSON che specifica i dati del record da creare o aggiornare. |
|
|
Un oggetto JSON che specifica i dati dei record correlati da creare o aggiornare. |
|
|
(Facoltativo) Per un'azione di aggiornamento, l'ID di modifica del record da aggiornare. Se non corrisponde al modId corrente del record, il record non verrà modificato. |
|
|
(Facoltativo) Quando si scrivono i dati, questa istruzione di script ignora se l'opzione Consenti all'utente di ignorare durante l'immissione dei dati di un campo è selezionata e utilizza invece il valore
|
|
|
(Facoltativo) Quando si scrivono i dati, questa istruzione di script ignora se l'opzione Impedisci modifica valore durante immissione dati di un campo è selezionata e utilizza invece il valore
|
Per ulteriori informazioni sulle chiavi sopra elencate, vedere gli argomenti sotto "Lavorare con i record", "Ricavare i metadati" e "Eseguire una richiesta di ricerca" nella Guida di FileMaker Data API.
Le seguenti chiavi vengono ignorate:
-
database
viene ignorato perché il database è sempre quello nella finestra in cui viene eseguito lo script. -
Authorization
viene ignorato perché i privilegi dello script sono quelli dell'utente attuale o di accesso completo, se allo script corrente sono stati dati privilegi di accesso completo. -
Content-Type
viene ignorato perché la richiesta deve essere in formato JSON. -
script
e qualsiasi chiave che inizia conscript.
vengono ignorati. Per eseguire un altro script, usare invece l’istruzione di script Esegui script.
Gestione degli errori
Il risultato JSON in Destinazione contiene almeno una chiave messages
con un oggetto contenente le chiavi message
e code
. I valori per codice
sono quelli definiti nei Codici di errore di FileMaker. La maggior parte dei valori per messaggio
e codice
sono identici a quelli restituiti da FileMaker Data API disponibile come servizio Web sugli host FileMaker. Alcuni errori aggiuntivi sono unici per questa istruzione di script e aiutano a identificare i problemi nell'analisi dell'opzione Richiesta. Questi errori aggiuntivi utilizzano valori di 3, 1708 e 1710 per codice
ma utilizzano molti valori diversi per messaggio
per fornire maggiori informazioni sull'errore.
Le funzioni Get ( UltimoErrore ) e Get ( DettagliUltimoErrore ) restituiscono rispettivamente gli stessi valori delle chiavi codice
e messaggio
. Get ( PosizioneUltimoErrore ) restituisce il punto in cui si è verificato l'errore nello script.
Note
-
Questa istruzione di script viene eseguita in una propria sessione scollegata dal contesto di qualsiasi finestra o script in esecuzione, incluso lo script che esegue l'istruzione. Pertanto, utilizzare questa istruzione di script come se si stesse effettuando una chiamata FileMaker Data API a un host attraverso la rete. Per questo i trigger di script e tutte le finestre di dialogo per la segnalazione di errori sono disabilitati durante l'esecuzione di questa istruzione di script.
-
Se il file è ospitato da FileMaker Server o FileMaker Cloud, i valori restituiti dei campi Contenitore sono URL che possono essere utilizzati per ricavare i contenuti dei campi. Se il file viene aperto localmente, viene restituito solo il nome del file nel campo Contenitore.
Esempio 1
Restituisce i metadati per tutte le ricorrenze di tabella se non viene specificato alcun valore per la chiave tabelle
. In questo caso, vi sono una tabella origine (o base) (Prodotti) e due ricorrenze di tabella (Prodotti e Prodotti_InMagazzino). Questo esempio utilizza la funzione JSONSetElement per creare un oggetto JSON nell’opzione Richiesta
.
Esegui FileMaker Data API [ Seleziona ; Destinazione: $$risultato ;
JSONSetElement ( "{}" ;
[ "azione" ; "metaData" ; JSONString ] ;
[ "tabelle" ; "" ; JSONString ]
) ]
Imposta variabile [ $$risultato ; JSONFormatElements ( $$risultato ) ]
I dati JSON restituiti nella variabile globale $$risultato hanno questo formato.
{
"messaggi" :
[
{
"codice" : "0",
"messaggio" : "OK"
}
],
"risposta" :
{
"tabelle" :
[
{
"tabellaBase" : "Prodotti",
"nome" : "Prodotti"
},
{
"tabellaBase" : "Prodotti",
"nome" : "Prodotti_InMagazzino"
}
]
}
}
Esempio 2
In base al formato Prodotti, restituisce il primo record nella tabella associato al formato Prodotti.
Esegui FileMaker Data API [ Seleziona ; Destinazione: $$risultato ;
JSONSetElement ( "{}" ;
[ "formati" ; "Prodotti" ; JSONString ] ;
[ "limite" ; 1 ; JSONNumber ]
) ]
Imposta variabile [ $$risultato ; JSONFormatElements ( $$risultato ) ]
I dati JSON restituiti nella variabile globale $$risultato hanno questo formato.
{
"messaggi" :
[
{
"codice" : "0",
"messaggio" : "OK"
}
],
"risposta" :
{
"dati" :
[
{
"datiCampo" :
{
"ID" : "FB1",
"Nome" : "Donuts",
"Magazzino" : 43
},
"modId" : "6",
"datiPortale" : {},
"recordId" : "1"
}
],
"infoDati" :
{
"database" : "Panificio preferito",
"contoTrovati" : 3,
"formato" : "Prodotti",
"contoRestituiti" : 1,
"tabella" : "Prodotti",
"contoRecordTotale" : 3
}
}
}
Esempio 3
In base al formato Prodotti, esegue una ricerca per trovare record in cui il campo Magazzino è inferiore a 40 e restituisce il gruppo trovato ordinato in base al campo Magazzino in ordine decrescente.
Esegui FileMaker Data API [ Seleziona ; Destinazione: $$risultato ;
JSONSetElement ( "{}" ;
[ "formati" ; "Prodotti" ; JSONString ] ;
[ "query" ; "[ { \"Magazzino\":\"<40\" } ]" ; JSONArray ] ;
[ "ordina" ; "[ { \"nomeCampo\":\"Magazzino\" ,
\"sortOrder\":\"descendente\" } ]" ; JSONArray ]
) ]
Imposta variabile [ $$risultato ; JSONFormatElements ( $$risultato ) ]
I dati JSON restituiti nella variabile globale $$risultato hanno questo formato.
{
"messaggi" :
[
{
"codice" : "0",
"messaggio" : "OK"
}
],
"risposta" :
{
"dati" :
[
{
"datiCampo" :
{
"ID" : "FB3",
"Nome" : "Baguette",
"Magazzino" : 34
},
"modId" : "1",
"datiPortale" : {},
"recordId" : "7"
},
{
"datiCampo" :
{
"ID" : "FB2",
"Nome" : "Torta al cioccolato",
"Magazzino" : 23
},
"modId" : "1",
"datiPortale" : {},
"recordId" : "6"
}
],
"infoDati" :
{
"database" : "Panificio preferito",
"contoTrovati" : 2,
"formato" : "Prodotti",
"contoRestituiti" : 2,
"tabella" : "Prodotti",
"contoRecordTotale" : 3
}
}
}
Esempio 4
In base al formato Prodotti, restituisce il primo record nella tabella associato al formato Prodotti e, se vi sono righe nel portale, restituisce i primi 2 record dopo aver saltato i primi 2.
Esegui FileMaker Data API [Seleziona; Destinazione: $$risultato;
JSONSetElement ( "{}" ;
[ "formati" ; "Prodotti" ; JSONString ] ;
[ "limite" ; 1 ; JSONNumber ] ;
[ "limite.ProdottiCorrelati" ; 2; JSONNumber ] ;
[ "offset.ProdottiCorrelati" ; 2 ; JSONNumber ]
) ]
Imposta variabile [$$risultato; JSONFormatElements ($$risultato)]
I dati JSON restituiti nella variabile globale $$risultato hanno questo formato.
{
"messaggi" :
[
{
"codice" : "0",
"messaggio" : "OK"
}
],
"risposta" :
{
"dati" :
[
{
"datiCampo" :
{
"ID" : "FB1",
"Nome" : "Donuts",
"Magazzino" : 43
},
"modId" : "6",
"datiPortale" : {
"ProdottiCorrelati" :
[
{
"ID" : "FB4",
"Nome" : "Palline fritte",
"Magazzino" : 53
},
{
"ID" : "FB5",
"Nome" : "Short Cake",
"Magazzino" : 15
}
]
},
"recordId" : "1"
}
],
"infoDati" :
{
"database" : "Panificio preferito",
"contoTrovati" : 3,
"formato" : "Prodotti",
"contoRestituiti" : 1,
"tabella" : "Prodotti",
"contoRecordTotale" : 6
}
}
}
Esempio 5
In base al formato Prodotti, modifica il record specificato da recordId
, aggiornando i valori dei campi Magazzino e Nome.
Esegui FileMaker Data API [ Seleziona ; Destinazione: $$risultato ;
JSONSetElement ( "{}" ;
[ "azione" ; "update" ; JSONString ] ;
[ "formati" ; "Prodotti" ; JSONString ] ;
[ "recordId" ; "4" ; JSONString ] ;
[ "datiCampo" ; "{ \"Magazzino\" : 14 ,
\"Nome\" : \"Torta alla vaniglia, Grande\" }" ; JSONObject ]
) ]
Imposta variabile [ $$risultato ; JSONFormatElements ( $$risultato ) ]
I dati JSON restituiti nella variabile globale $$risultato hanno questo formato.
{
"messaggi" :
[
{
"codice" : "0",
"messaggi" : "OK"
}
],
"risposta" :
{
"modId" : "6"
}
}
Se il record specificato da recordId
non esistesse, Get ( UltimoErrore ) restituirebbe 101 e Get ( DettagliUltimoErrore ) restituirebbe "Manca un record", che sarebbe lo stesso di code
e message
in $$risultato.
Esempio 6
In base al formato Prodotti, crea un record e imposta i valori dei campi Magazzino, ID e Nome. Poiché il campo ID è impostato per inserire automaticamente un numero di serie e l'opzione Impedisci modifica valore durante immissione dati è abilitata, l'impostazione della chiave prohibitmode
su script
nell'oggetto options
sovrascrive il requisito di immissione automatica e imposta il campo ID come specificato.
Esegui FileMaker Data API [ Seleziona ; Destinazione: $$risultato ;
JSONSetElement ( "{}" ;
[ "azione" ; "crea" ; JSONString ] ;
[ "formati" ; "Prodotti" ; JSONString ] ;
[ "opzioni" ; "{ \"prohibitmode\" : \"script\" }" ; JSONObject ] ;
[ "datiCampo" ; "{ \"Magazzino\" : 14 ,
\"ID\" : \"FB42\" ,
\"Nome\" : \"Croissant\" }" ; JSONObject ]
) ]
Imposta variabile [ $$risultato ; JSONFormatElements ( $$risultato ) ]
I dati JSON restituiti nella variabile globale $$risultato hanno questo formato.
{
"messaggi" :
[
{
"codice" : "0",
"messaggio" : "OK"
}
],
"risposta" :
{
"modId" : "0",
"recordId" : "7"
}
}
Se il campo ID avesse anche la verifica impostata per richiedere un valore univoco ed esistesse già un record con il valore ID "FB42", allora Get ( UltimoErrore ) restituirebbe 504 e Get ( DettagliUltimoErrore ) restituirebbe "Il valore del campo non è univoco come richiesto dalle opzioni di verifica", che sarebbe lo stesso di codice
e messaggio
in $$risultato.