Bonjour à tous.
Je réfléchi actuellement à comment assigner un tâche à plusieurs utilisateurs.
Voilà ce que je souhaite faire :
- J’ai un premier processus qui récupère une liste d’utilisateur.
- Ce premier processus doit ensuite attribuer un même tache à chacun des utilisateurs (si j’ai n utilisateurs, j’aurais donc n taches à attribuer).
- Ce nouvelle tache entraine un nouveau processus (qui sera donc lancé autant de fois qu’il y a d’utilisateurs).
Est ce que quelqu’un connait une méthode propre pour faire cela ?
Actuellement j’ai trouvé une méthode pour le faire, mais qui me ressemble plus à un bidouillage qu’à une vraie solution :
- Mon premier processus parcours la liste des utilisateurs et envoie un message contenant le nom de l’utilisateur au second processus.
- Le second processus récupère ce message et filtre les acteurs en ne gardant que celui correspondant au nom dans le message.
En faisant cela j’arrive donc à obtenir autant de processus qu’il y a d’utilisateurs dans ma liste, et chacun d’eux est assigné à une tâche.
Mais comme je l’ai dit juste avant, je suppose qu’il y a surement une meilleure manière de faire cela.
Si quelqu’un sait faire cela, je le remerci d’avance pour son explication.
PS : Je suis sur Bonita BPM 6.3
Tu dois créer une variable de tache de type user (et l’utiliser comme input data de ton iteration), et créer une variable de processus de même type (user) dans le processus appelé par le call activity.
Encore merci, je sens que j’approche du but.
J’ai encore un dernier soucis. J’ai bien crée ma variable user dans ma tache de Call Activity, je l’ai attribué comme Input Data.
J’ai ensuite crée une autre variable dans le processus appelé (dans la pool), mais je n’ai pas la possibilité de la séléctionner en temps que output data.
Du coup je ne vois pas comment récupérer le user dans mon processus appelé.
la variable que tu crée dans le pool appelé contiendra une des entrées de ta liste d’utilisateurs, cette variable ne sert absolument pas d’output pour ton iteration. Au passage n’oublie pas de déclarer dans ta section mapping de ta call activity que ta variable de tache est mappée sur ta variable du processus appelé.
Salut Yannick,
En effet il y a une meilleure manière de faire cela. Pour cela il suffit de créer une première tache qui récupère ta liste d’utilisateurs (avec un connecteur par exemple), puis qui appelle une tache de type call activity et multi-instanciée (en utilisant ta liste d’utilisateurs comme collection d’entrée). Tu as juste à configurer ta call activity pour appeler n’importe quel processus que tu veux, et la tache instanciera autant de fois ton processus que tu as d’éléments dans ta liste d’utilisateurs.
J’espère que j’ai été clair, sinon n’hésite pas à demander plus d’explications.
Cordialement,
Mehdi
Merci pour cette réponse.
Je viens de tester cela. Il y a juste un point qui me pose problème : comment récupérer l’utilisateur lors de l’instatiation de la tache afin de définir un filtre d’acteur ?
Pour l’instant j’ai bien créé ma tache Call Activity multi-instanciée, je lui ai passé ma liste dans son champs “Use a collection”.
Je ne vois pas comment récupéré la valeur de ma liste pour chaque instance afin de l’assigner à un utilisateur.
Tu dois créer un user en variable de tache (et le mettre dans l’input data de ton iteration), ainsi qu’une variable de même type dans ton processus appelé par la call activity.
Merci beaucoup, ça fonctionne parfaitement maintenant, c’était le mapping qu’il me manquait.