Exécuter le code
L’action Exécuter le code exécute JavaScript. Vous pouvez transmettre à l’action Exécuter le code des données provenant d’étapes précédentes du flux de travail comme entrée et les valeurs de retour à utiliser dans les étapes suivantes.
Sur cette page
Champs
L’action Exécuter le code contient les champs suivants.
Champ | Description |
---|---|
Entrée | Obligatoire. Une requête GraphQL pour utiliser les données des étapes précédentes comme entrée de l’action Exécuter le code. |
Sortie | Obligatoire. Une représentation des données à retourner par l’action, définie dans le Schema Definition Language (SDL) GraphQL. |
Code | Obligatoire. JavaScript que l’action Exécuter le code exécutera. |
Données d’entrée
Les données d’entrée peuvent être transmises à partir d’étapes précédant l’action Exécuter le code. Pour inclure ces données, vous pouvez rédiger une requête GraphQL dans le champ Entrée. Les données retournées par la requête seront disponibles comme argument input
de la fonction marquée par export default
, appelée main
par convention.
La requête d’entrée est une requête pour les données d’environnement Flow et non une requête à l’API Shopify Admin. Par conséquent, vous ne pouvez pas insérer de requête Shopify dans les données d’entrée. En outre, Flow gère les edges
et les nodes
dans la requête, vous n’avez donc pas besoin d’ajouter ces informations ou d’autres syntaxes de pagination à votre requête.
Voici un exemple d’entrée qui permet d’obtenir une note de commande et le titre d’une rubrique :
Ces données sont converties en une variable input
, qui peut être utilisée dans le code :
Les entrées peuvent également être déstructurées dans la signature de la fonction :
Données de sortie
L’action Exécuter le code peut retourner des données personnalisées. Pour définir le type de données que le code retournera, utilisez le champ Sortie et le Schema Definition Language (SDL) GraphQL. Par exemple, pour retourner une chaîne appelée giftMessage
et un nombre appelé totalGifts
:
Les commentaires sont facultatifs, mais ils seront utilisés pour décrire les données dans l’interface utilisateur Flow. Pour produire ces données dans le code JavaScript, retournez un objet correspondant au type :
Vous pouvez également définir un type personnalisé pour retourner des données plus complexes. Par exemple, pour renvoyer un type appelé Gift
qui contient une chaîne appelée message
et un numéro appelé amount
:
Pour accéder à ces données dans les étapes qui suivent cette action, utilisez la variable nommée Exécuter le code, qui sera typée selon le schéma Output
que vous définissez dans la configuration de l’action Exécuter le code. Vous pouvez utiliser cette variable à la fois dans les conditions et les actions.
Console.log
Vous pouvez utiliser console.log
pour envoyer des données dans le journal d’exécution du flux de travail de Flow à des fins de résolution de problèmes. La sortie sera visible dans le journal d’exécution du flux de travail. Par exemple, les exemples suivants sont valides :
Vous ne pouvez pas utiliser console.info
, console.error
, ou d’autres fonctions dans l’action Exécuter le code.
Exemple
Des exemples de l’action Exécuter le code se trouvent dans le référentiel d’exemples Flow.
Limitations
L’action Exécuter le code présente les limites suivantes :
- L’action de code d’exécution prend en charge ECMA2020 JavaScript. Elle ne prend pas en charge les API NodeJS ou CommonJS ni les modules d’importation.
- Votre code ne peut pas effectuer d’appels http (
fetch
). - Les fonctions aléatoires et basées sur l’horloge ne peuvent pas être utilisées. Les données de date, telles que
scheduledAt
oucreatedAt
peuvent être transmises en tant qu’entrées. - Console.log ne se connecte pas à la console du navigateur.
En outre, les limites suivantes sont appliquées :
- La requête de données d’entrée est limitée à 5 000 caractères.
- Le schéma de données de sortie est limité à 5 000 caractères.
- La charge utile des données de sortie et la sortie Console.log sont limitées à un total de 50 000 ko.
- Le code ne peut pas comporter plus de 5 0000 caractères.
- La durée totale d’exécution est limitée à 5 secondes.
- L’utilisation de la mémoire est limitée à 10 Mo.
Feuille de route
L’équipe Flow prévoit d’ajouter des capacités à l’action Exécuter le code au fil du temps. Le tableau suivant présente les améliorations prévues et leurs dates de livraison estimées.
Amélioration | Description | Date de livraison estimée |
---|---|---|
Connexion | Utilisez « console.log » pour envoyer des données dans le journal d’exécution à des fins de résolution de problèmes. | Terminé. |
Appels d’API externes | Utilisez la récupération de JavaScript pour appeler des API. | 3ᵉ trimestre 2024 |
Retour d’expérience
L’action Exécuter le code est un nouveau type d’étape dans Shopify Flow. Si vous avez des retours d’expérience et des questions, veuillez commenter cet article de la communauté Flow.