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
. Vous n’avez pas besoin de gérer la pagination ou d’utiliser edges
et nodes
dans la requête, car Flow les gère pour vous.
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.
Exemple
Des exemples de l’action Exécuter le code se trouvent dans le référentiel d’exemples Flow.
Limites
L’action Exécuter le code présente les limites suivantes :
- Votre code ne peut pas importer de modules.
- Votre code ne peut pas effectuer d’appels http (
fetch
). - Votre code ne peut pas utiliser de
console.log
. - 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.
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 est limitée à 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 |
---|---|---|
Corrections de bugs | Corrections de bugs et nettoyage | Février 2024 |
Connexion | Utilisez « console.log » pour envoyer des données dans le journal d’exécution à des fins de résolution de problèmes. | Début avril 2024 |
Appels d’API externes | Utilisez la récupération de JavaScript pour appeler des API. | 3ᵉ trimestre 2024 |
Commentaires
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.