Activité appelante, Sous Processus et Acteurs

Bonjour,

J’appel une activité appelante qui fait référence à un sous processus.
Comment définir dans le sous processus qu’il faut utiliser les mêmes acteurs que dans la lane du processus principal.
(pour info cette activité appelante est appelé plusieurs fois dans diverses lanes (qui ont leur propre acrteurs de définis)

Une idée ?

Bonjour,

Je dirais que ton acteur dans le processus doit être dans un groupe qui a les accès au sous-processus.
Par exemple, si dans mon processus j’effectue des tâches comme Ingénieur informatique et que j’entre dans mon sous processus, la tâche de mon sous processus a comme acteur “employé”. Un ingénieur informatique est un employé. Je suis donc dans les 2 groupes ce qui me permet de faire les 2 choses. Je ne sais pas si j’ai été clair. Sinon, n’hésite pas à me le dire.

Bonjour,

il faut que tu utilises les API moteur pour transmettre les acteurs au sous-processus en utilisant des variables. Dans le sous-processus, il faudra utiliser des filtres d’acteurs soit tu pourras t’en sortir avec ceux fournit par défaut soit tu pourras créer ton propre filtre d’acteur.

Cordialement,

Tu es obligé de passer par le filtre d’acteur alors à mon avis. A ta place, je récupèrerai l’ID de celui qui est autorisé à faire la tâche par exemple celui qui fait la tâche juste d’avant le sous processus et dans ton sous processus tu filtres par acteur unique en mettant l’ID en filtre.

Bonjour, j’ai exactement le même problème avec plusieurs lanes tel que sur l’image suivante:

Je n’arrive pas à configurer le sous-process pour utiliser l’acteur définit dans le lane appelant.

Les liens fournis ne fonctionnant plus, quelqu’un aurait-il une solution ?
pere fils petit-fils

le bos

Bonjour,

ce serait une solution cependant dans mon cas j’appel cette “call activity” dans différentes “lanes” et je ne souhaite pas que les acteurs d’une autre lane puisse voir et gérer le processus des autres.

Je ne sais pas si c est possible/ce que tu veux mais faire un filtre sur celui qui initie le sous processus…

Mon but initial est de pouvoir factoriser une partie du processus dans un sous processus qui sera appelé soit une lane du processus principal soit dans telle ou telle autre. (et donc des acteurs différents pour chaque lane)

Mais peut être n’est ce pas possible et qu’il faut que je fasse x sous processus quasi identiques pour chacune de mes lanes…

Non c est surement possible, mais quand l’acteur de la lane A entre dans le sous processus, il en devient l’initiateur du sous processus. Si tu fais un filtre sur cet acteur, les autres acteurs des lanes B et C du processus ne devraient pas voir son travail.

Quand je dis “Si tu fais un filtre sur cet acteur” = faire un filtre sur l ID de l initiateur du processus. Comme ça l’ID change quand c est l’acteur de la lane B qui lance le sous processus.

Donc en mettant un filtre sur la lane du sous processus ca devrait pouvoir le faire.
Aurais tu un exemple de filtre ? C’est un peu abscons pour moi l’implémentation d’un filtre !

Je vais faire un exemple quand j’aurais le temps et le poster.

Télécharge le .rar, dézip le, colle le .proc dans tes diagrams et ouvre le sur le studio.

Il faut bien regarder les action des taches humaines du process, regarder les mapping du sous process et voir le filtre du sous process.

http://dl.free.fr/j7KJ2jmmz

Si tu as des questions n’hésite pas.

Le lien ne semble pas fonctionner…

Essaye ça: http://dl.free.fr/getfile.pl?file=/7KJ2jmmz

Ok je l’ai (problème avec AD Block)
Par contre je n’avais pas vu mais c’est un .proc . Me faudrait pas plutot un point .bos ? ou .bar ?

non pas besoin, va dans : C:\BonitaBPMCommunity-6.3.1\workspace\default\diagrams et colle le. Après tu peux aller dans Bonita Studio et l’ouvrir.

Ok j’ai bien étudié le diagramme. Je pense avoir saisi le concept. Ca fonctionne avec un filtre basique.

Donc il ne manquerait plus que l’implémentation du filtre. Comme je souhaite ne prendre en compte que les utilisateurs d’un certains groupe (Attribut typeGroupe dans ma définition de filtre), j’ai le code suivant pour le filtre :

Group gp = getAPIAccessor().getIdentityAPI().getGroupByPath(getTypeGroupe());
List tmp = getAPIAccessor().getIdentityAPI().getUsersInGroup(gp.getId(), 0, 20000,UserCriterion.FIRST_NAME_ASC);

et je retourne une liste des ids des users donnés.

Ca te parait cohérent ? (bon le code ne semble pas fonctionner mais je cherche)

import org.bonitasoft.engine.identity.UserCriterion; import org.bonitasoft.engine.identity.User; int nb = apiAccessor.getIdentityAPI().getNumberOfUsers(); long idRoleHy = apiAccessor.getIdentityAPI().getRoleByName("hygène").getId(); ArrayList listUsersHy = apiAccessor.identityAPI.getUsersInRole(idRoleHy, 0, nb, UserCriterion.FIRST_NAME_ASC);

Là c’est pour le rôle “hygène”, mais tu fais pareil avec les groupes. Puis après tu prends les id des users et tu les compare avec l’ID de celui qui lance le sous processus du processus. Si tu as un problème, on pourra le faire ensemble via Skype.

C’est effectivement ce que je fais au niveau des groupes.
Pourtant il passe dans la boucle d’Exception (d’ailleurs on peut les voir où les erreurs du Tomcat de Bonita Studio, aps trouvé le bon log)
Cela provient du fait que je récupère mal mon entrée de filtre typeGoupe ?