Ejecutar código
La acción Ejecutar código ejecuta JavaScript. Puedes pasar datos de pasos anteriores en el flujo de trabajo como entrada para la acción Ejecutar código y mostrar valores que se usarán en los pasos siguientes.
En esta página
Campos
La acción Ejecutar código contiene los siguientes campos.
Campo | Descripción |
---|---|
Entrada | Obligatorio. Una consulta de GraphQL para usar datos de pasos anteriores como entrada para la acción Ejecutar código. |
Salida | Obligatorio. Una representación de los datos que la acción mostrará, definida en el lenguaje de definición de esquemas (SDL) de GraphQL. |
Código | Obligatorio. El JavaScript que la acción Ejecutar código ejecutará. |
Datos de entrada
Los datos de entrada se pueden pasar a partir de los pasos anteriores a la acción Ejecutar código. Para incluir estos datos, puedes escribir una consulta de GraphQL en el campo Entrada. Los datos que se obtienen de la consulta estarán disponibles como el argumento input
para la función marcada con export default
, que convencionalmente recibe el nombre demain
.
La consulta de entrada se ejecuta para los datos de entorno de Flow, no se realiza a la API Shopify Admin. Por lo tanto, no puedes insertar una consulta de Shopify en los datos de entrada. Además, Flow controla edges
y nodes
en la consulta, por lo que no necesitas agregar esta ni otra sintaxis de paginación a la consulta.
Una entrada de ejemplo que recibe una nota de pedido y el título de una línea de artículo:
Estos datos se convierten en una variable input
que se puede usar en el código:
Las entradas también se pueden desestructurar en la firma de la función:
Metacampos
Para acceder a valores de metacampos únicos en Ejecutar código, primero debes agregar el metacampo a los datos del entorno de Flow. Esto se realiza en cualquier acción o condición que no sea Ejecutar código. Por ejemplo, puedes agregar una acción Log output y luego seguir las instrucciones para agregar el metacampo.
Después de agregar un metacampo al entorno del flujo de trabajo, puedes acceder a él en Ejecutar código. Por ejemplo, supongamos que agregaste un metacampo Pedido con el nombre de alias giftMessage
. Luego, puedes acceder a él en tu consulta de entrada:
Datos de salida
La acción Ejecutar código puede mostrar datos personalizados. Para definir el tipo de datos que mostrará el código, usa el campo Salida y el lenguaje de definición de esquemas (SDL) de GraphQL. Los tipos de salida admitidos son String
, Int
, Float
, Boolean
y ID
, que siguen la especificación SDL para especificar campos, listas y datos personalizados obligatorios.
Por ejemplo, para mostrar una cadena llamada giftMessage
y un número llamado totalGifts
:
Los comentarios son opcionales, pero se usarán para describir los datos en la interfaz de usuario de Flow. Para generar estos datos en el código de JavaScript, muestra un objeto que coincida con el tipo:
También puedes definir un tipo personalizado para mostrar datos más complejos. Por ejemplo, para mostrar un tipo llamado Gift
que contiene una cadena llamada message
y un número llamado amount
:
Para acceder a estos datos en los pasos que siguen a esta acción, usa la variable con el nombre Ejecutar código, que se escribirá según el esquema Output
que definas en la configuración de la acción Ejecutar código. Puedes usar esta variable en ambas condiciones y acciones.
Console.log
Puedes usar console.log
para agregar datos de salida al registro de ejecución de flujo de trabajo de Flow con fines de resolución de problemas. Los datos de salida agregados estarán visibles en el registro de ejecución correspondiente al flujo de trabajo. Por ejemplo, los siguientes son válidos:
No puedes usar console.info
, console.error
ni otras funciones en la acción Ejecutar código.
Ejemplo
Puedes encontrar ejemplos de la acción Ejecutar código en el repositorio de ejemplos de Flow.
Limitaciones
La acción Ejecutar código tiene las siguientes limitaciones:
- La acción Ejecutar código es compatible con ECMA2020 JavaScript. Sin embargo, no es compatible con las API NodeJS o CommonJS, ni con la importación de módulos.
- El código no puede hacer llamadas http (
fetch
). - No pueden utilizarse las funciones aleatorias o basadas en el tiempo. Los datos de fecha, como
scheduledAt
ocreatedAt
pueden pasarse como una entrada. - Console.log no registra datos en la consola del navegador.
- No puedes agregar alias de metacampo directamente en la acción Ejecutar código. Consulta la sección de metacampos para saber cómo hacerlo.
Además, se aplican los siguientes límites:
- La consulta de los datos de entrada tiene un límite de 5.000 caracteres.
- El esquema de los datos de salida tiene un límite de 5.000 caracteres.
- La carga de los datos de salida y los datos de salida de Console.log están limitados a 50 kb en total.
- El código no puede tener más de 50.000 caracteres.
- La duración total de la ejecución está limitada a cinco segundos.
- El uso de memoria está limitado a 10 MB.
Hoja de ruta
El equipo de Flow planea agregar capacidades a la acción Ejecutar código a lo largo del tiempo. La siguiente tabla describe las mejoras planificadas y sus fechas de entrega estimadas.
Mejora | Descripción | Entrega estimada |
---|---|---|
Registro | Usa `console.log` con el objetivo de generar datos en el registro de ejecución para fines de resolución de problemas. | Listo. |
Llamadas a la API externas | Usa la función de búsqueda de JavaScript para llamar a las API. | Primer trimestre de 2025 |
Comentarios
La acción Ejecutar código es un nuevo tipo de paso en Shopify Flow. Si tienes comentarios y preguntas, envíalos en esta publicación de la comunidad de Flow.