Ejecutar FileMaker Data API
Ejecuta una petición de FileMaker Data API.
Temas relacionados
Opciones
-
Seleccionar todo el contenido reemplaza todo el contenido de un campo o una variable. Si no selecciona esta opción:
-
En un campo, solo sustituye la parte seleccionada del campo activo e inserta datos en el punto de inserción. El punto de inserción predeterminado se encuentra al final de los datos del campo.
-
En una variable que no tenga datos del contenedor, inserta datos al final del valor actual de la variable. En una variable que tenga datos del contenedor, sustituye el contenido de la variable.
-
-
Destino especifica el campo en el que se insertará el resultado o la variable que se definirá. Si no existe la variable, este paso de guión creará una (consulte Usar variables).
-
Petición es un cálculo que especifica la petición como texto. El texto es un objeto JSON con el formato descrito a continuación.
Compatibilidad
Producto | Format |
---|---|
FileMaker Pro |
Sí |
FileMaker Go |
Sí |
FileMaker WebDirect |
Sí |
FileMaker Server |
Sí |
FileMaker Cloud |
Sí |
FileMaker Data API |
Sí |
Publicación en la Web personalizada |
Sí |
Se origina en
19.0
Descripción
FileMaker Data API es una API REST disponible como servicio Web para FileMaker Server y FileMaker Cloud. Las aplicaciones Web pueden utilizar esta API para enviar peticiones y recibir datos en formato JSON desde archivos de FileMaker Pro alojados.
Con la misma funcionalidad subyacente que FileMaker Data API en los anfitriones de FileMaker, este paso de guión permite que un guión ejecutado por cualquier producto de FileMaker solicite datos en el archivo actual, tanto si están alojados como si no, y reciba los datos en formato JSON. Este paso de guión no realiza una llamada de servicio web a un anfitrión mediante FileMaker Data API ni depende de si la API está activada en un anfitrión. La similitud entre este paso de guión y FileMaker Data API es principalmente que el formato JSON de los datos devueltos es el mismo. La petición es un objeto JSON sencillo en lugar de la combinación de URL, encabezado y cuerpo de la petición que requiere FileMaker Data API para utilizar el servicio Web de un anfitrión de FileMaker. El resultado devuelto en Destino tiene el mismo formato JSON que cuando se solicita a un anfitrión a través de FileMaker Data API.
Formato de la petición
Este paso de guión admite los siguientes pares de clave-valor en el objeto JSON especificado por la opción Petición. Si no se especifica una de estas claves en la solicitud, se utilizará el valor predeterminado.
Clave | Valor predeterminado | Descripción |
---|---|---|
|
|
|
|
|
|
|
|
Un nombre de presentación. |
|
|
Un nombre de ocurrencia de la tabla Necesario para las acciones |
|
Todos los registros |
Una matriz de objetos JSON; cada uno de ellos especifica un campo y criterios de búsqueda. |
|
|
El número de ID exclusivo de un registro. No se puede especificar una clave de |
|
|
Un objeto JSON que especifica el orden de los registros en la tabla de la presentación actual. |
|
|
El número de registro del primer registro en un rango de registros de la tabla de la presentación actual. |
|
|
El número máximo de registros que debe devolverse desde la tabla de la presentación actual. |
|
Valor de |
Para especificar los datos en el contexto de una presentación diferente, especifique un nombre de presentación. |
|
Todos los portales |
Un objeto JSON que especifica un portal. |
|
|
El número de registro del primer registro del portal en un rango de registros relacionados. Para |
|
50 |
El número máximo de registros relacionados que debe devolverse. Para |
|
|
Un objeto JSON que especifica los datos de registro para crear o actualizar. |
|
|
Un objeto JSON que especifica los datos de registro relacionados para crear o actualizar. |
|
|
(Opcional) Para una acción de actualización, el ID de modificación del registro a actualizar. Si no coincide con el modId actual del registro, el registro no se modificará. |
|
|
(Opcional) Al escribir datos, este paso de guion ignora si la opción Permitir al usuario anular durante la introducción de datos de un campo está seleccionada y, en su lugar, utiliza
Consulte Definir validaciones de campo. |
|
|
(Opcional) Al escribir datos, este paso de guión ignora si está seleccionada la opción Prohibir la modificación del valor durante la introducción de datos de un campo y utiliza en su lugar el valor de
Consulte Definir la entrada de datos automática. |
Para obtener más información sobre las claves enumeradas anteriormente, consulte los temas en "Trabajar con registros", así como "Obtener metadatos" y "Realizar una petición de búsqueda" en la Guía de FileMaker Data API.
Se omiten las siguientes claves:
-
databases
se omite porque la base de datos es siempre la que pertenece a la ventana en la que se ejecuta el guión. -
Authorization
se omite porque los privilegios del guión son los del usuario actual o de acceso total, si el guión actual dispone de privilegios de acceso total. -
Content-Type
se omite porque la solicitud debe estar en formato JSON. -
Se omiten
script
y las claves que empiecen porscript.
. Para ejecutar otro guión, utilice el paso de guión Ejecutar guión en su lugar.
Gestión de errores
El resultado JSON en Target contiene al menos una clave de messages
con un objeto que incluye claves de message
y code
. Los valores de code
son los que se definen en Códigos de error de FileMaker. La mayoría de los valores de message
y code
son iguales a los que ha devuelto FileMaker Data API, disponible como servicio Web en los anfitriones de FileMaker. Algunos errores adicionales son exclusivos de este paso de guión y ayudan a identificar problemas cuando se analiza la opción Request. Estos errores adicionales utilizan los valores de code
3, 1708 y 1710, pero utilizan muchos valores de message
diferentes para proporcionar más información sobre el error.
Las funciones Get ( LastError ) y Get ( LastErrorDetail ) devuelven los mismos valores que en las claves code
y message
, respectivamente. Get ( LastErrorLocation ) devuelve dónde se produjo el error en el guión.
Notas
-
Este paso de guión se ejecuta en su propia sesión sin relación con el contexto de ninguna ventana o de un guión que pueda estar ejecutándose, incluido el guión que realiza este paso de guión. Por lo tanto, utilice este paso de guión como si estuviera realizando una llamada de FileMaker Data API a un anfitrión a través de la red. De este modo, los activadores de guiones y los cuadros de diálogo de informe de errores se desactivan mientras se ejecuta este paso de guión.
-
Si el archivo está alojado en FileMaker Server o FileMaker Cloud, los valores devueltos de los campos contenedor son las direcciones URL que se pueden utilizar para recuperar el contenido del campo. Si el archivo se abre localmente, solo se devuelve el nombre del archivo en el campo contenedor.
Ejemplo 1
Devuelve metadatos para todas las ocurrencias de la tabla al no especificar ningún valor para la clave de tables.
En este caso, hay una tabla de origen (o base) (Productos) y dos ocurrencias de la tabla (Productos y Productos_EnExistencias). En este ejemplo, se utiliza la función JSONSetElement para crear el objeto JSON de la opción Request
.
Ejecutar FileMaker Data API [ Select ; Target: $$result ;
JSONSetElement ( "{}" ;
[ "action" ; "metaData" ; JSONString ] ;
[ "tables" ; "" ; JSONString ]
) ]
Establecer variable [ $$result ; JSONFormatElements ( $$result ) ]
Los datos de JSON devueltos en la variable global $$result presentan este formato.
{
"messages" :
[
{
"code" : "0",
"message" : "Correcto"
}
],
"response" :
{
"tables" :
[
{
"baseTable" : "Productos",
"nombre" : "Productos"
},
{
"baseTable" : "Productos",
"nombre" : "Productos_EnExistencias"
}
]
}
}
Ejemplo 2
En función de la presentación Productos, devuelve el primer registro en la tabla asociada a la presentación Productos.
Ejecutar FileMaker Data API [ Select ; Target: $$result ; JSONSetElement ( "{}" ; [ "layouts" ; "Productos" ; JSONString ] ; [ "limit" ; 1 ; JSONNumber ] ) ] Set Variable [ $$result ; JSONFormatElements ( $$result ) ]
Los datos de JSON devueltos en la variable global $$result presentan este formato.
{
"messages" :
[
{
"code" : "0",
"message" : "Correcto"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"ID" : "FB1",
"Nombre" : "Rosquillas",
"Existencias" : 43
},
"modId" : "6",
"portalData" : {},
"recordId" : "1"
}
],
"dataInfo" :
{
"database" : "Favorite Bakery",
"foundCount" : 3,
"layout" : "Productos",
"returnedCount" : 1,
"table" : "Productos",
"totalRecordCount" : 3
}
}
}
Ejemplo 3
En función de la presentación Productos, ejecuta una búsqueda de registros en la que el campo Existencias es inferior a 40 y devuelve el conjunto encontrado ordenado por el campo Existencias de forma descendente.
Ejecutar FileMaker Data API [ Select ; Target: $$result ;
JSONSetElement ( "{}" ;
[ "layouts" ; "Productos" ; JSONString ] ;
[ "query" ; "[ { \"Existencias\":\"<40\" } ]" ; JSONArray ] ;
[ "sort" ; "[ { \"fieldName\":\"Existencias\" ,
\"sortOrder\":\"descend\" } ]" ; JSONArray ]
) ]
Establecer variable [ $$result ; JSONFormatElements ( $$result ) ]
Los datos de JSON devueltos en la variable global $$result presentan este formato.
{
"messages" :
[
{
"code" : "0",
"message" : "Correcto"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"ID" : "FB3",
"Nombre" : "Baguette",
"Existencias" : 34
},
"modId" : "1",
"portalData" : {},
"recordId" : "7"
},
{
"fieldData" :
{
"ID" : "FB2",
"Nombre" : "Tarta de chocolate",
"Existencias" : 23
},
"modId" : "1",
"portalData" : {},
"recordId" : "6"
}
],
"dataInfo" :
{
"database" : "Favorite Bakery",
"foundCount" : 2,
"layout" : "Products",
"returnedCount" : 2,
"table" : "Products",
"totalRecordCount" : 3
}
}
}
Ejemplo 4
En función de la presentación Productos, devuelve el primer registro de la tabla asociada a la presentación Productos y, si hay filas de portal, devuelve los dos primeros registros después de omitir los dos primeros.
Ejecutar FileMaker Data API [ Select ; Target: $$result ;
JSONSetElement ( "{}" ;
[ "layouts" ; "Productos" ; JSONString ] ;
[ "limit" ; 1 ; JSONNumber ] ;
[ "limit.RelatedProducts" ; 2; JSONNumber ] ;
[ "offset.RelatedProducts" ; 2 ; JSONNumber ]
) ]
Establecer variable [ $$result ; JSONFormatElements ( $$result ) ]
Los datos de JSON devueltos en la variable global $$result presentan este formato.
{
"messages" :
[
{
"code" : "0",
"message" : "Correcto"
}
],
"response" :
{
"data" :
[
{
"fieldData" :
{
"ID" : "FB1",
"Nombre" : "Rosquillas",
"Existencias" : 43
},
"modId" : "6",
"portalData" : {
"RelatedProducts" :
[
{
"ID" : "FB4",
"Nombre" : "Buñuelos",
"Existencias" : 53
},
{
"ID" : "FB5",
"Nombre" : "Shortcake",
"Existencias" : 15
}
]
},
"recordId" : "1"
}
],
"dataInfo" :
{
"database" : "Favorite Bakery",
"foundCount" : 3,
"layout" : "Productos",
"returnedCount" : 1,
"table" : "Productos",
"totalRecordCount" : 6
}
}
}
Ejemplo 5
Basándose en la presentación Productos, modifica el registro especificado por recordId
, actualizando los valores de los campos Existencias y Nombre.
Ejecutar FileMaker Data API [ Select ; Target: $$result ;
JSONSetElement ( "{}" ;
[ "action" ; "update" ; JSONString ] ;
[ "layouts" ; "Products" ; JSONString ] ;
[ "recordId" ; "4" ; JSONString ] ;
[ "fieldData" ; "{ \"Stock\" : 14 ,
\"Name\" : \"Vanilla Cake, Large\" }" ; JSONObject ]
) ]
Establecer variable [ $$result ; JSONFormatElements ( $$result ) ]
Los datos de JSON devueltos en la variable global $$result presentan este formato.
{
"messages" :
[
{
"code" : "0",
"message" : "OK"
}
],
"response" :
{
"modId" : "6"
}
}
Si el registro especificado por recordId
no existiera, Get(LastError) devolvería 101, y Get(LastErrorDetail) devolvería "Falta un registro", que sería lo mismo que code
y message
en $$result.
Ejemplo 6
En función de la presentación Productos, crea un registro y establece los valores de los campos Existencias, ID y Nombre. Como el campo ID se ha configurado para introducir automáticamente un número de serie y la opción Prohibir la modificación del valor durante la introducción de datos está activada, al establecer la clave prohibitmode
en guión
en el objeto options
, se anula ese requisito de introducción automática y se establece el campo ID, tal y como se ha especificado.
Ejecutar FileMaker Data API [ Select ; Target: $$result ;
JSONSetElement ( "{}" ;
[ "action" ; "crear" ; JSONString ] ;
[ "layouts" ; "Productos" ; JSONString ] ;
[ "options" ; "{ \"prohibitmode\" : \"guión\" }" ; JSONObject ] ;
[ "fieldData" ; "{ \"Existencias\" : 14 ,
\"ID\" : \"FB42\" ,
\"Name\" : \"Croissants\" }" ; JSONObject ]
) ]
Establecer variable [ $$result ; JSONFormatElements ( $$result ) ]
Los datos de JSON devueltos en la variable global $$result presentan este formato.
{
"messages" :
[
{
"code" : "0",
"message" : "Correcto"
}
],
"response" :
{
"modId" : "0",
"recordId" : "7"
}
}
Si el campo ID también tuviera la validación configurada para solicitar un valor único y ya existiera un registro con el valor ID de "FB42", Get ( LastError ) devolvería 504 y Get ( LastErrorDetail ) devolvería "El valor del campo no es único, como requieren las opciones de validación de entrada", que sería igual a code
y message
en $$result.