Configuration d'une activité pour des boucles multi-instance

Les boucles multi-instance permettent d'exécuter dynamiquement plusieurs instances uniques de la même activité de manière séquentielle ou en parallèle. Lorsque vous exécutez une activité configurée pour des boucles multi-instance, un jeton unique est créé pour chaque instance de l'activité.

Avant de commencer

Pour plus d'informations sur les types de boucle et leurs restrictions, voir Création de boucles pour une activité.

Procédure

Pour configurer une activité pour une boucle multi-instance, procédez comme suit :

  1. Ouvrez un processus et sélectionnez l'activité à configurer.
  2. Dans les propriétés, sélectionnez Général.
  3. Développez Boucle et sélectionnez Boucle multi-instance dans la liste Type de boucle .
  4. Définissez une valeur pour Quantité de départ.
    Cette valeur définit le nombre d'instances créées lors de la phase d'exécution. Pour spécifier une variable à utiliser pour ce paramètre, cliquez sur l'icône de la variable pour la sélectionner ou entrez le nom de la variable dans la zone Quantité de départ.
    Remarque: Pour plus d'informations sur l'association de chaque instance d'activité de boucle à un élément spécifique dans une liste, voir Association d'instances d'activité de boucle à des éléments différents
    .
  5. Dans la liste Commande , sélectionnez l'une des options suivantes:
    Option Description
    Exécution séquentielle Les instances résultantes sont exécutées de manière séquentielle jusqu'à ce que la dernière instance ait été exécutée.
    Exécution parallèle Les instances résultantes sont exécutées en même temps jusqu'à ce que toutes les instances soient terminées ou qu'une condition que vous définissez soit remplie.
  6. Pour l'ordre parallèle, sélectionnez l'une des options suivantes dans la liste Condition de flux :
    Option Description
    Attendre que toutes les instances se terminent (Toutes) Le bouclage se poursuit jusqu'à ce que toutes les instances résultantes de l'activité soient terminées.
    Attente conditionnelle (Complexe) Le bouclage se poursuit jusqu'à ce que la condition que vous spécifiez dans l'étape suivante soit remplie.
  7. Pour les conditions de flux complexes, entrez le code JavaScript pour implémenter cette condition dans la zone Condition de flux complexe .

    Lors de l'exécution, si une boucle multi-instance avec des conditions complexes est évaluée à false, elle ferme l'instance active et ne passe pas à l'activité suivante. Il s'agit du comportement par défaut puisque les spécifications BPMN 2.0 (section 13.2.7 activité d'instances multiples) n'apportent aucune indication pour une fausse évaluation. Pour faire avancer le jeton à l'activité suivante, utilisez une expression booléenne OR.

  8. Si vous souhaitez que les instances actives de l'activité soient annulées lorsque la condition précédente est remplie, sélectionnez Annuler les instances restantes.
    Le comportement d'exécution d'une boucle multi-instance dépend des modalités d'implémentation de la tâche. Le comportement est différent selon que le contenu de la tâche comprend des scripts de serveur uniquement ou qu'il comprend aussi des services. Par exemple, une boucle avec Tri sélectionné sur Exécuter en parallèle, avec une condition de flux complexe valide et Annuler les instances restantes défini sur true, s'exécutera comme suit :
    • Le contenu de la boucle inclut des scripts de serveur uniquement : Vous spécifiez des scripts de serveur uniquement dans le contenu de tâche de la boucle multi-instance et les différentes instances s'exécutent de manière séquentielle. Par conséquent, toutes les instances s'exécutent en séquence jusqu'à la fin, et une fois toutes les instances de tâches terminées, les conditions de sortie sont vérifiées de manière séquentielle.
    • Le contenu de la boucle inclut des services Utilisateur, Décision ou Système : Si le contenu de tâche de la boucle contient un service Utilisateur, Décision ou Système, les tâches sont instanciées en parallèle au sein de leur propre unité d'exécution. Dans l'exemple du service Système, si une condition de sortie existe, le résultat est renvoyé à la boucle multi-instance, une fois la tâche du service Système terminée. Ensuite, la condition est évaluée et la tâche de boucle multi-instance se termine, ce qui met un terme à toutes les autres instances de boucle en cours d'exécution.
  9. Cliquez sur Enregistrer ou sur Terminer l'édition.
    Pour plus d'informations sur la déclaration de variables pour les services humains côté client, voir Déclarer des variables