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 desde los pasos que tienen lugar antes de la acción Ejecutar código. Para incluir estos datos, puedes escribir una consulta de GraphQL en el campo Entrada. Los datos que se muestran de la consulta estarán disponibles como el argumento input
para la función marcada con export default
. No necesitas gestionar la paginación ni usar edges
y nodes
en la consulta, ya que Flow los gestiona por ti.
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:
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. 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.
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:
- El código no puede importar módulos.
- El código no puede hacer llamadas http (
fetch
). - Tu código no puede usar
console.log
- No pueden utilizarse las funciones aleatorias o basadas en el tiempo. Los datos de fecha, como
scheduledAt
ocreatedAt
pueden pasarse como una entrada.
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 datos de salida está limitada a 50 KB.
- 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 |
---|---|---|
Reparación de errores | Reparaciones de errores y limpieza | Febrero de 2024 |
Registro | Usa `console.log` con el objetivo de generar datos en el registro de ejecución para fines de resolución de problemas. | Principios de abril de 2024 |
Llamadas a la API externas | Usa la función de búsqueda de JavaScript para llamar a las API. | Tercer trimestre de 2024 |
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.