La tâche Boucle "for each" permet d'effectuer des appels répétés à une sous-intégration à partir de votre intégration principale. La tâche effectue une itération sur la variable de tableau configurée et appelle la sous-intégration pour chaque élément du tableau. Le nombre d'appels de la sous-intégration est égal à la taille de la variable de tableau.
L'ID de déclencheur d'API et le nom de l'intégration identifient la sous-intégration que vous souhaitez exécuter.
La tâche vous permet également de collecter la réponse de chaque exécution de sous-intégration et de stocker la valeur dans votre intégration actuelle à utiliser dans les tâches en aval. Vous pouvez utiliser l'une des approches suivantes pour recueillir les réponses :
Rassemblez les réponses obtenues à chaque exécution dans une variable de tableau, où chaque élément du tableau contient la réponse obtenue pour une exécution spécifique. Pour rassembler les réponses, configurez la propriété Collect values from sub-integration output(s).
Rassemblez les réponses de toutes les exécutions dans une seule variable. Pour agréger les réponses, configurez la propriété Response parameter override mapping.
Avant de commencer
Assurez-vous d'avoir associé un compte de service géré par l'utilisateur à votre intégration. Si aucun compte de service géré par l'utilisateur n'est configuré pour l'intégration, le compte de service par défaut (service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com) est utilisé par défaut pour l'authentification.
Assurez-vous que votre compte de service dispose du rôle IAM Demandeur Application Integration. Pour en savoir plus sur l'attribution d'un rôle à un compte de service, consultez la page Gérer l'accès aux comptes de service.
Propriétés de configuration
Le tableau suivant décrit les propriétés de configuration de la tâche Pour chaque boucle.
Propriété
Type de données
Description
API Trigger ID
Chaîne
ID du déclencheur de la sous-intégration à exécuter.
Cette valeur est disponible dans le champ ID du déclencheur du déclencheur d'API dans la sous-intégration.
Integration name
Chaîne
Nom de la sous-intégration à exécuter.
List to iterate
Tableau de type "Booléen", "Chaîne", "Entier", "Double" ou JSON.
Liste des valeurs pour lesquelles les sous-intégrations doivent être exécutées. La sous-intégration s'exécute pour chaque valeur de la liste, les unes après les autres.
Vous pouvez transmettre la valeur itérée à la sous-intégration en définissant la propriété Mappage de sous-intégration d'éléments d'itération. Dans cette propriété, spécifiez la variable de la sous-intégration avec laquelle la valeur itérée doit être mappée.
Iteration element sub-integration mapping
ND
Variable dans la sous-intégration à laquelle l'élément itéré actuel doit être attribué.
Map to additional sub-integration input(s)
ND
Valeurs supplémentaires à transmettre de l'intégration actuelle à la sous-intégration.
Les valeurs de cette propriété se présentent sous la forme de paires clé/valeur, où la clé est une variable de l'intégration actuelle et la valeur est la variable d'entrée correspondante dans la sous-intégration. Par exemple, supposons que votre intégration principale possède la variable productID, que vous souhaitez mapper avec la sous-variable d'intégration subIntProductID. Vous devez sélectionner productID dans la liste déroulante Variable d'intégration à mapper et subIntProductID dans la liste déroulante Entrée de sous-intégration vers laquelle mapper.
Collect values from sub-integration output(s)
ND
Rassemblez les résultats des exécutions de la sous-intégration.
À chaque exécution de la sous-intégration, vous pouvez stocker le résultat de la sous-intégration dans une variable de tableau de l'intégration actuelle.
Sélectionnez la variable de sortie de la sous-intégration dans la liste déroulante Sortie de sous-intégration à collecter, puis sélectionnez la variable de tableau de l'intégration actuelle dans la liste déroulante Variable d'intégration dans laquelle collecter des données. Chaque élément du tableau contient la réponse d'une exécution de sous-intégration particulière. Par exemple, si la variable de tableau est resultsArray, resultsArray[0] contient la réponse de la première exécution et resultsArray[1] contient la réponse de la deuxième exécution.
Response parameter override mapping
ND
Lisez la variable de sortie d'une exécution de sous-intégration et stockez-la dans une variable de l'intégration actuelle.
Sélectionnez la variable de sortie de la sous-intégration dans la liste déroulante Sortie de la sous-intégration à mapper, puis sélectionnez la variable correspondante de l'intégration actuelle dans la liste déroulante Variable d'intégration à remplacer. Vous pouvez envoyer la variable remplacée dans l'intégration actuelle vers la prochaine exécution de sous-intégration en mappant la variable dans la propriété Mapper à d'autres entrées de sous-intégration. Par conséquent, vous pouvez agréger de manière cumulative les réponses des exécutions de sous-intégration.
Loop metadata
Tableau JSON
La variable de sortie contenant les détails de l'exécution des sous-intégrations, telles que l'ID d'exécution, les messages d'erreur et les valeurs de variable de la sous-intégration transmises lors de l'exécution. Les métadonnées de boucle contiennent des variables, y compris les variables de sortie suivantes : current_iteration_count, sub_integration_execution_ids, failure_location, current_element, iteration_element et failure_message.
Bonnes pratiques
Pour plus d'informations sur les limites d'utilisation qui s'appliquent à la tâche Boucle "For Each", consultez la section Limites d'utilisation.
Stratégie de traitement des erreurs
Une stratégie de traitement des erreurs d'une tâche spécifie l'action à effectuer si celle-ci échoue en raison d'une erreur temporaire. Pour en savoir plus sur l'utilisation et les différents types de stratégies de traitement des erreurs, consultez la page Stratégies de traitement des erreurs.
Quotas et limites
Pour plus d'informations sur les quotas et les limites, consultez la section Quotas et limites.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/03 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/03 (UTC)."],[[["\u003cp\u003eThe For Each Loop task allows repeated execution of a sub-integration for each element within an array variable, where the number of iterations equals the array's size.\u003c/p\u003e\n"],["\u003cp\u003eSub-integrations are identified by their API Trigger ID and Integration name, and the task provides mechanisms to collect and utilize responses from each sub-integration run, including collating into an array or aggregating into a single variable.\u003c/p\u003e\n"],["\u003cp\u003eThe For Each Loop task has limits, including a maximum of 8000 iterations and a cumulative data collection size limit of 50 MB across all sub-integration runs.\u003c/p\u003e\n"],["\u003cp\u003eFailure of any sub-integration run within the For Each Loop task results in the failure of the entire task, though this can be mitigated through the use of an Execution strategy in the Join configuration.\u003c/p\u003e\n"],["\u003cp\u003eProper setup requires ensuring a user-managed service account is attached to the integration, with the service account having the necessary Application Integration Invoker IAM role.\u003c/p\u003e\n"]]],[],null,["# For Each Loop task\n\nSee the [supported connectors](/integration-connectors/docs/connector-reference-overview) for Application Integration.\n\nFor Each Loop task\n==================\n\nThe **For Each Loop** task lets you make repeated calls to a sub-integration from\nyour current (main) integration. The task iterates over the configured array variable and calls\nthe sub-integration for each element in the array. The number of times\nthe sub-integration is called is equal to the size of the array variable.\n\nThe **API Trigger ID** and the **Integration name** identifies the sub-integration you\nwant to run.\n\nThe task also lets you collect the response from each sub-integration run and store the value in your\ncurrent integration for use in downstream tasks. You can use any of the following approach to collect the responses:\n\n- Collate the response of each run in an array variable, where each element of the array has the response from one particular run. To collate the responses, configure the `Collect values from sub-integration output(s)` property.\n- Aggregate the responses of all the runs in a single variable. To aggregate the responses, configure the `Response parameter override mapping` property.\n\n| **Note** :\n|\n| - A **For Each Loop** task can run a maximum of 8000 iterations.\n| - The cumulative size of the data collected from each sub-integration run cannot exceed `50 MB`. If the size exceeds `50 MB`, the integration fails, and the downstream tasks are not run.\n| - If an integration in the **For Each Loop** task fails, then the entire task fails, and the downstream tasks are not run. To prevent failure of the entire integration you can specify an **Execution strategy** for the task in its *Join configuration pane* . See [Join](/application-integration/docs/forks-joins#join) for more details.\n\nBefore you begin\n----------------\n\n- Ensure that you have [attached a user-managed service account](/application-integration/docs/access-control#add-service-account) to your integration. If your integration does not have user-managed service account configured, then by default the [default service account](/application-integration/docs/access-control#default-service-account) (`service-`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`@gcp-sa-integrations.iam.gserviceaccount.com`) is used for authentication.\n- Ensure that your service account has the **Application Integration Invoker** IAM role. For information about granting roles to a service account, see [Manage access to service accounts](/iam/docs/manage-access-service-accounts).\n\nConfiguration properties\n------------------------\n\n\nThe following table describes the configuration properties of the **For Each Loop** task.\n\nBest practices\n--------------\n\nFor information about the usage limits that apply to the **For Each Loop** task, see [Usage limits](/application-integration/docs/quotas#usage-limits).\n\nError handling strategy\n-----------------------\n\n\nAn error handling strategy for a task specifies the action to take if the task fails due to a [temporary error](/application-integration/docs/error-handling). For information about how to use an error handling strategy, and to know about the different types of error handling strategies, see [Error handling strategies](/application-integration/docs/error-handling-strategy).\n\nQuotas and limits\n-----------------\n\nFor information about quotas and limits, see [Quotas and limits](/application-integration/docs/quotas).\n\nWhat's next\n-----------\n\n- Learn about [all tasks and triggers](/application-integration/docs/all-triggers-tasks).\n- Learn how to [test and publish an integration](/application-integration/docs/test-publish-integrations).\n\n- Learn about [error handling](/application-integration/docs/error-handling-strategy).\n- Learn about [integration execution logs](/application-integration/docs/introduction-logs)."]]