Tous les produits
Search
Centre de documentation

DataWorks:Configurer un nœud for-each

Dernière mise à jour :Aug 25, 2026

DataWorks met à disposition le nœud for-each pour itérer sur un jeu de résultats provenant d'un nœud d'affectation. Vous pouvez également personnaliser le flux de travail au sein du nœud for-each. Cette rubrique présente un exemple dans lequel un nœud for-each effectue deux itérations sur la sortie d'un nœud d'affectation et affiche le compteur de boucle actuel à chaque itération. Cela illustre sa logique et sa configuration.

Prérequis

Avant de configurer le nœud, assurez-vous de bien comprendre sa logique afin d'éviter toute erreur. Pour plus d'informations, consultez la rubrique Fonctionnement des nœuds for-each.

Procédure

Le nœud for-each est généralement utilisé conjointement avec un nœud d'affectation. La procédure générale est la suivante.

遍历节点

  1. Définir les dépendances entre les nœuds

    Un nœud for-each doit dépendre d'un nœud d'affectation. Pour les détails de configuration, consultez la section Créer et configurer un flux de travail.

  2. Transmettre le jeu de résultats

    Utilisez le paramètre de sortie intégré outputs du nœud d'affectation, disponible sous Parameters, comme paramètre d'entrée du nœud for-each, également sous Parameters. Pour les détails de configuration, consultez la section Configurer un nœud d'affectation.

  3. Récupérer les paramètres dans les nœuds internes

    Personnalisez le flux de travail interne du nœud for-each en fonction de vos besoins métier. Dans les nœuds internes, utilisez les variables intégrées pour récupérer les valeurs des paramètres et exécuter la tâche de boucle. Pour plus d'informations sur les variables intégrées, consultez la rubrique Variables intégrées. Pour les détails de configuration, consultez la section Configurer un nœud for-each.

Créer et configurer un flux de travail

Créez un flux de travail dans lequel un nœud d'affectation constitue le nœud en amont et un nœud for-each le nœud en aval.

  1. Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur Data Development and O&M > Data Development dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.

  2. Créer un flux de travail planifié.

  3. Créez un nœud for-each.

    1. Placez le curseur sur l'icône 新建 et cliquez sur Create Node > General > for-each.

      Vous pouvez également rechercher le flux de travail cible, cliquer avec le bouton droit sur General et sélectionner Create Node > for-each.

    2. Dans la boîte de dialogue Create Node , spécifiez le nom et le chemin d'accès du nœud.

    3. Cliquez sur OK.

  4. Créez un nœud d'affectation.

    1. Double-cliquez sur le flux de travail pour ouvrir sa page de configuration. Cliquez sur New Node et faites glisser General > Assignment Node vers le canevas à droite.

      Pour plus d'informations sur les nœuds d'affectation, consultez la rubrique Nœud d'affectation.

    2. Dans la boîte de dialogue Create Node , spécifiez le nom et le chemin d'accès du nœud. Par défaut, le nœud est créé dans le répertoire du flux de travail actuel.

    3. Cliquez sur OK.

  5. Tracez une ligne reliant le nœud d'affectation au nœud for-each pour définir leur dépendance.

Configurer un nœud d'affectation

  1. Double-cliquez sur le nœud d'affectation pour ouvrir sa page de configuration.

  2. Dans la liste déroulante Language , sélectionnez Shell.

  3. Sur la page de configuration du nœud, saisissez l'instruction suivante :

    echo 'this is name,ok';
  4. Dans le volet de droite, cliquez sur Scheduling. Dans la section Input and Output Parameters > Output Parameters.

  5. Cliquez sur l'icône Enregistrer 保存 dans la barre d'outils.

  6. Cliquez sur l'icône Valider 提交 dans la barre d'outils.

    Dans la boîte de dialogue Submission , saisissez une Change Description et indiquez si vous souhaitez demander une revue de code.

    Important
    • Vous devez définir les propriétés Rerun attribute et Parent Nodes pour le nœud avant de pouvoir le valider.

    • Une revue de code permet de contrôler la qualité du code et d'éviter les erreurs liées au déploiement de code incorrect dans l'environnement de production sans validation. Si vous activez la revue de code, le nœud ne peut être déployé qu'après approbation par les relecteurs. Pour plus d'informations, consultez la rubrique Revue de code.

    Si votre espace de travail est en mode standard, vous devez cliquer sur Deploy dans le coin supérieur droit de la page de configuration du nœud pour déployer la tâche dans l'environnement de production après l'avoir validée. Pour plus d'informations, consultez la rubrique Déployer des tâches.

Configurer un nœud for-each

  1. Double-cliquez sur le nœud for-each pour ouvrir sa page de configuration. Par défaut, il contient un nœud de début, un nœud Shell et un nœud de fin.

    Vous pouvez remplacer le nœud Shell par un autre type de nœud :

    • Si vous souhaitez utiliser un nœud Shell, vous pouvez le configurer directement.

    • Pour utiliser un autre type de nœud, supprimez d'abord le nœud Shell par défaut, puis créez le nœud souhaité.

    Cet exemple utilise un nœud Shell.

  2. Modifiez le nœud Shell.

    1. Double-cliquez sur le nœud Shell pour ouvrir sa page de configuration.

    2. Saisissez le code suivant :

      echo ${dag.loopTimes} # Print the current loop count.
      Remarque
      • La logique des nœuds de début et de fin est fixe et ne peut pas être modifiée.

      • Après avoir modifié le code dans le nœud Shell, vous devez enregistrer vos modifications. DataWorks ne vous invite pas à enregistrer les modifications lors de la validation du nœud. Si vous n'enregistrez pas, vos modifications ne seront pas prises en compte.

      Le nœud for-each prend en charge les quatre variables intégrées suivantes :

      • ${dag.foreach.current} : la ligne de données actuelle sur laquelle porte l'itération.

      • ${dag.loopDataArray} : le jeu de données d'entrée.

      • ${dag.offset} : le décalage.

      • ${dag.loopTimes} : le compteur de boucle actuel. La valeur correspond à ${dag.offset}+1.

      Pour plus d'informations, consultez les rubriques Variables intégrées et Exemples de valeurs de variables intégrées.

  3. Configurez le nœud for-each.

    1. Sur la page de configuration du nœud for-each, cliquez sur Scheduling dans le volet de droite.

    2. Dans la section Input and Output Parameters > Input Parameters , cliquez sur Modify à côté du nom de paramètre par défaut loopDataArray.

    3. Dans la liste déroulante Value Source , sélectionnez le paramètre outputs du nœud d'affectation en amont et cliquez sur Save.

      Remarque

      Après avoir ajouté la dépendance au nœud d'affectation en amont dans l'onglet Propriétés, vous devez spécifier manuellement sa source de valeur. Sinon, une erreur se produit lors de la validation du nœud.

  4. Cliquez sur l'icône Enregistrer 保存 dans la barre d'outils pour enregistrer le nœud for-each.

  5. Cliquez sur l'icône Valider 提交 dans la barre d'outils.

    Important

    Vous devez définir les propriétés Rerun attribute et Parent Nodes pour le nœud avant de pouvoir le valider.

    Dans la boîte de dialogue Submission , sélectionnez les nœuds que vous souhaitez valider et cliquez sur Determine.

    Si votre espace de travail est en mode standard, cliquez sur Deploy dans le coin supérieur droit après avoir validé le nœud avec succès. Pour plus d'informations, consultez la rubrique Déployer des tâches.

Tester le nœud et afficher les résultats

  1. Dans le coin supérieur droit de la page, cliquez sur O&M Personnel pour accéder à Operation Center.

  2. Dans le volet de navigation de gauche, cliquez sur Auto Triggered Task O&M > Periodic tasks.

  3. Repérez le nœud. Dans le DAG à droite, cliquez avec le bouton droit sur le nœud d'affectation et sélectionnez Retroactive Instance > Current and Descendant Nodes Retroactively.

  4. Actualisez la page Data Backfill Instance . Une fois l'instance de remplissage rétroactif des données exécutée avec succès, cliquez sur View DAG à côté de l'instance.

  5. Cliquez avec le bouton droit sur le nœud d'affectation et sélectionnez View Runtime Log pour vérifier le résultat.

    Le journal d'exécution indique que le nœud d'affectation a été exécuté avec succès. La sortie Shell est this is name,ok et le résultat est analysé en ["this is name", "ok"] (deux enregistrements de données). Le nœud for-each effectuera une itération sur ces deux enregistrements.

  6. Sur la page Data Backfill Instance , cliquez avec le bouton droit sur le nœud for-each et sélectionnez View Inner Nodes.

  7. Sur la page des nœuds internes, cliquez sur Loop 1 à gauche. Ensuite, cliquez avec le bouton droit sur le nœud Shell et sélectionnez View Runtime Log.

    Sur la page du journal d'exécution, vérifiez le journal du nœud Shell pour la première itération. La sortie Shell est 1 , ce qui correspond au compteur de boucle actuel (la valeur de ${dag.loopTimes} ).

  8. De la même manière, vérifiez le journal du nœud Shell pour la deuxième itération.

    La sortie Shell est 2 , ce qui correspond au compteur de boucle pour la deuxième itération (la valeur de ${dag.loopTimes} est 2 ). Cela confirme que le nœud for-each a bien effectué une itération sur les deux enregistrements de données du jeu de résultats d'affectation.