Exécuter FileMaker Data API
Exécute une requête FileMaker Data API.
Voir aussi
Options
-
Sélectionner tout le contenu remplace l'intégralité du contenu d'une rubrique ou d'une variable. Si vous ne sélectionnez pas cette option :
-
Dans le cas d'une rubrique, cette action remplace uniquement la partie sélectionnée de la rubrique active ou insère des données au point d'insertion. Par défaut, le point d'insertion se situe à la fin des données de la rubrique.
-
Dans le cas d'une variable qui ne contient aucune donnée de type Conteneur, cette action insère des données à la fin de la valeur actuelle de la variable. Dans le cas d'une variable qui contient des données de type Conteneur, cette action remplace son contenu.
-
-
Cible indique la rubrique dans laquelle insérer le résultat ou la variable à définir. Si la variable n'existe pas, cette action de script en crée une (consultez la section Utilisation de variables).
-
Requête est un calcul qui indique la requête sous forme de texte. Le texte est un objet JSON au format décrit ci-dessous.
Compatibilité
Produit | Prise en charge |
---|---|
FileMaker Pro |
Oui |
FileMaker Go |
Oui |
FileMaker WebDirect |
Oui |
FileMaker Server |
Oui |
FileMaker Cloud |
Oui |
FileMaker Data API |
Oui |
Publication Web personnalisée |
Oui |
Provient de la version
19.0
Description
FileMaker Data API est une API REST disponible sous forme de service Web pour FileMaker Server et FileMaker Cloud. Les applications Web peuvent utiliser cette API pour envoyer des requêtes et recevoir des données au format JSON de fichiers FileMaker Pro hébergés.
Utilisant la même fonctionnalité sous-jacente que FileMaker Data API sur les hôtes FileMaker, cette action de script permet à tout produit FileMaker d'exécuter un script pour demander des données du fichier actif et les recevoir au format JSON. La requête est un simple objet JSON, au lieu de la combinaison d'une URL, d'un en-tête et d'un corps de requête requise par FileMaker Data API pour utiliser le service Web d'un hôte FileMaker. Le résultat renvoyé dans Cible est au même format JSON que lorsqu'il est demandé depuis un hôte via FileMaker Data API.
Format de requête
Cette action de script prend en charge les paires clé-valeur suivantes dans l'objet JSON spécifié par l'option Requête. Si l'une des ces clés n'est pas spécifiée dans la requête, la valeur par défaut est utilisée.
Clé | Valeur par défaut | Description |
---|---|---|
|
| Les valeurs |
|
| Les valeurs |
|
| Un nom de modèle. Requis pour les actions |
|
| Un nom d'occurrence de table. Requis pour les actions |
| tous les enregistrements | Un tableau d'objets JSON, chacun spécifiant une rubrique et des critères de recherche. Consultez la section « Effectuer une requête de recherche » du Guide de Claris Data API et de FileMaker Data API. |
|
| L'ID (numéro d'identification) unique d'un enregistrement. Vous ne pouvez pas spécifier à la fois une clé |
|
| Un objet JSON qui spécifie l'ordre de tri des enregistrements dans la table du modèle actif. Consultez les sections « Obtenir une plage d'enregistrements » et « Effectuer une requête de recherche » du Guide de Claris Data API et de FileMaker Data API. |
|
| Le numéro d'enregistrement du premier enregistrement dans une plage d'enregistrements de la table du modèle actif. Consultez les sections « Obtenir un seul enregistrement », « Obtenir une plage d'enregistrements » et « Effectuer une requête de recherche » du Guide de Claris Data API et de FileMaker Data API. |
|
| Le nombre maximum d'enregistrements à renvoyer de la table du modèle actif. Consultez les sections « Obtenir un seul enregistrement », « Obtenir une plage d'enregistrements » et « Effectuer une requête de recherche » du Guide de Claris Data API et de FileMaker Data API. |
| valeur de | Spécifiez un nom de modèle pour récupérer les données dans le cadre d'un autre modèle. Consultez le Guide de Claris Data API et de FileMaker Data API. |
| toutes les tables externes | Un objet JSON qui spécifie une table externe. Consultez les sections « Obtenir un seul enregistrement », « Obtenir une plage d'enregistrements » et « Effectuer une requête de recherche » du Guide de Claris Data API et de FileMaker Data API. |
|
| Le numéro d'enregistrement du premier enregistrement de la table externe dans une plage d'enregistrements liés. Pour |
| 50 | Le nombre maximum d'enregistrements liés à renvoyer. Pour |
Les clés suivantes sont ignorées :
-
La clé
databases
est ignorée car la base de données est toujours celle appartenant à la fenêtre dans laquelle est exécuté le script. -
La clé
Authorization
est ignorée car les privilèges du script sont ceux de l'utilisateur actif ou d'accès intégral, si le script actif s'est vu accordé des privilèges d'accès intégral. -
La clé
Content-Type
est ignoré car la requête doit être au format JSON. -
Les clés
fieldData
,portalData
etmodId
sont ignorés car les actions « create » et « update » ne sont pas prises en charge. -
La clé
script
et toute clé commençant parscript.
sont ignorées. Pour exécuter un autre script,utilisez l'Exécuter script action de script.
Gestion des erreurs
Après l'exécution de cette action de script, la fonction Obtenir ( DernièreErreur ) renvoie toujours 0 (« Aucune erreur »), même s'il y a une erreur, contrairement aux autres actions de script. Pour rechercher les erreurs, utilisez plutôt le résultat JSON dans Cible
.
Le résultat contient au moins une clé messages
avec un objet contenant les clés message
et code
. Les valeurs de clé code
sont celles définies dans la section Codes d'erreur FileMaker. La plupart des valeurs de clé message
et code
sont identiques à celles renvoyées par FileMaker Data API disponible sous forme de service Web sur les hôtes FileMaker. Certaines erreurs supplémentaires sont propres à cette action de script et permettent d'identifier les problèmes lors de l'analyse de l'option Requête. Ces erreurs supplémentaires utilisent les valeurs de clé code
de 3, 1708 et 1710 mais différentes valeurs de clé message
pour fournir plus d'informations sur l'erreur.
Remarques
-
Lorsque cette action de script est exécutée, une fenêtre masquée s'ouvre où elle utilise le modèle spécifié dans la requête. La fenêtre se ferme une fois les résultats renvoyés.
-
Les boîtes de dialogue Déclencheurs de script et Rapports d'erreur sont désactivées lorsque cette action de script est exécutée.
-
Si le fichier est hébergé par FileMaker Server ou FileMaker Cloud, les valeurs renvoyées des rubriques Conteneur sont des URL pouvant être utilisées pour récupérer le contenu de rubrique. Si le fichier est ouvert en local, seul le nom du fichier dans la rubrique Conteneur est renvoyé.
Exemple 1
Renvoie les métadonnées de toutes les occurrences de table en ne spécifiant aucun valeur pour la clé tables
. Dans ce cas, il y a une table source ou de base (Produits) et deux occurrences de table (Produits et Produits_EnStock). Cet exemple utilise la JSONSetElement fonction pour créer l'objet JSON dans l'option Requête
.
Exécuter FileMaker Data API [ Sélectionner ; Cible: $$result ;
JSONSetElement ( "{}" ;
[ "action" ; "metaData" ; JSONString ] ;
[ "tables" ; "" ; JSONString ]
) ]
Définir variable [ $$result ; JSONFormatElements ( $$result ) ]
Les données JSON renvoyées dans la variable globale $$result ont ce format.
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"tables" :
[
{
"baseTable" : "Produits",
"nom" : "Produits"
},
{
"baseTable" : "Produits",
"nom" : "Produits_EnStock"
}
]
}
}
Exemple 2
Renvoie le premier enregistrement de la table associée au modèle Produits, en fonction de celui-ci.
Exécuter FileMaker Data API [ Sélectionner ; Cible: $$result ;
JSONSetElement ( "{}" ;
[ "layouts" ; "Produits" ; JSONString ] ;
[ "limit" ; 1 ; JSONNumber ]
) ]
Définir variable [ $$result ; JSONFormatElements ( $$result ) ]
Les données JSON renvoyées dans la variable globale $$result ont ce format.
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"ID" : "FB1",
"Name" : "Donuts",
"Stock" : 43
},
"modId" : "6",
"portalData" : {},
"recordId" : "1"
}
],
"dataInfo" :
{
"database" : "Boulangerie préférée",
"foundCount" : 3,
"layout" : "Produits",
"returnedCount" : 1,
"table" : "Produits",
"totalRecordCount" : 3
}
}
}
Exemple 3
En fonction du modèle Produits, effectue une recherche d'enregistrements où la rubrique Stock est inférieure à 40, et renvoie le jeu d'enregistrements trouvés trié par ordre décroissant selon la rubrique Stock.
Exécuter FileMaker Data API [ Sélectionner ; Cible: $$result ;
JSONSetElement ( "{}" ;
[ "layouts" ; "Produits" ; JSONString ] ;
[ "query" ; "[ { \"Stock\":\"<40\" } ]" ; JSONArray ] ;
[ "sort" ; "[ { \"fieldName\":\"Stock\" ,
\"sortOrder\":\"descend\" } ]" ; JSONArray ]
) ]
Définir variable [ $$result ; JSONFormatElements ( $$result ) ]
Les données JSON renvoyées dans la variable globale $$result ont ce format.
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"ID" : "FB3",
"Name" : "Baguette",
"Stock" : 34
},
"modId" : "1",
"portalData" : {},
"recordId" : "7"
},
{
"fieldData" :
{
"ID" : "FB2",
"Name" : "Gâteau au chocolat",
"Stock" : 23
},
"modId" : "1",
"portalData" : {},
"recordId" : "6"
}
],
"dataInfo" :
{
"database" : "Boulangerie préférée",
"foundCount" : 2,
"layout" : "Produits",
"returnedCount" : 2,
"table" : "Produits",
"totalRecordCount" : 3
}
}
}
Exemple 4
En fonction du modèle Produits, renvoie le premier enregistrement de la table associée à celui-ci et, en cas de rangées de table externe, renvoie les deux premiers enregistrements après avoir ignoré les deux premiers.
Exécuter FileMaker Data API [ Sélectionner; Cible: $$result ;
JSONSetElement ( "{}" ;
[ "layouts" ; "Produits" ; JSONString ] ;
[ "limit" ; 1 ; JSONNumber ] ;
[ "limit.RelatedProducts" ; 2; JSONNumber ] ;
[ "offset.RelatedProducts" ; 2 ; JSONNumber ]
) ]
Définir variable [ $$result ; JSONFormatElements ( $$result ) ]
Les données JSON renvoyées dans la variable globale $$result ont ce format.
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"ID" : "FB1",
"Name" : "Donuts",
"Stock" : 43
},
"modId" : "6",
"portalData" : {
"RelatedProducts" :
[
{
"ID" : "FB4",
"Nom" : "Beignets",
"Stock" : 53
},
{
"ID" : "FB5",
"Nom" : "Short Cake",
"Stock" : 15
}
]
},
"recordId" : "1"
}
],
"dataInfo" :
{
"database" : "Boulangerie préférée",
"foundCount" : 3,
"layout" : "Produits",
"returnedCount" : 1,
"table" : "Produits",
"totalRecordCount" : 6
}
}
}