# Envoi de mail Personnalisé

**URL:** <https://community.ofelia.com/t/envoi-de-mail-personnalise/9935>\
**Category:** Q&A\
**Created:** [6 January 2020 12:51 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935 "2020-01-06T12:51:29Z")\
**Posts on this page:** 13\
**Page:** 2

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [9 January 2020 05:22 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/21 "2020-01-09T05:22:18Z")

</div>

Bonjour bastien, merci pour ta reponse, il y a une erreur&nbsp;pendant l'important de fichier .bos,

Message d'erreur affiché:

**_"Une erreur&nbsp;s'est produite lors&nbsp;du parsing du contenu&nbsp;de l'archive BOS."&nbsp;_**

J'utilise Bonita 7.9 de mon coté.

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [9 January 2020 05:32 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/22 "2020-01-09T05:32:57Z")

</div>

[![](https://www.zupimages.net/up/20/02/2v6d.png)](https://www.zupimages.net/up/20/02/2v6d.png)

---

<div class="post-metadata">

**Author:** ![bastien.laurent\_1374](https://avatars.discourse-cdn.com/v4/letter/b/fbc32d/32.png) [@bastien.laurent\_1374](https://community.ofelia.com/u/bastien.laurent_1374)\
**Post date:** [9 January 2020 07:24 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/23 "2020-01-09T07:24:57Z")

</div>

Ah mince, je l'ais fait en version 7.10.&nbsp;  
J'ai une version 7.6 sur mon poste, je te refais le process avec cette version. Normalement&nbsp;tu pourras l'importer.

---

<div class="post-metadata">

**Author:** ![bastien.laurent\_1374](https://avatars.discourse-cdn.com/v4/letter/b/fbc32d/32.png) [@bastien.laurent\_1374](https://community.ofelia.com/u/bastien.laurent_1374)\
**Post date:** [9 January 2020 08:04 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/24 "2020-01-09T08:04:13Z")

</div>

Essaie avec celui ci :&nbsp;https://we.tl/t-98808sYCWz

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [9 January 2020 08:04 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/25 "2020-01-09T08:04:56Z")

</div>

ah d'accord&nbsp;:)

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [9 January 2020 13:07 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/26 "2020-01-09T13:07:46Z")

</div>

Merci,

Ca marche super bien l'envoi du mail mais, ca envoi a tous les utilisateurs, non pas les acteurs de la tâche en attente,

C'est&nbsp;à cause de ca:

_import org.bonitasoft.engine.identity.UserCriterion  
&nbsp;List users =apiAccessor.identityAPI.getUsers(0, 100, UserCriterion.FIRST\_NAME\_ASC)  
&nbsp;return users;_

J'ai essaié de changer en ca:&nbsp;

&nbsp;import org.bonitasoft.engine.identity.User;  
&nbsp;final List users = apiAccessor.processAPI.getPossibleUsersOfPendingHumanTask(activityInstanceId, 0, Integer.MAX\_VALUE);  
&nbsp; return users;

Mais ca marche pas.

---

<div class="post-metadata">

**Author:** ![bastien.laurent\_1374](https://avatars.discourse-cdn.com/v4/letter/b/fbc32d/32.png) [@bastien.laurent\_1374](https://community.ofelia.com/u/bastien.laurent_1374)\
**Post date:** [9 January 2020 13:42 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/27 "2020-01-09T13:42:06Z")

</div>

Oui c'est un peut la loose pour récupérer&nbsp;les acteurs de la taches.  
Sachant que, lorsque&nbsp;tu fait ta recherche d'acteur, ta tache n'est pas encore créer ou n'est pas encore en attente.  
Du coup, si tu utilises le même acteur que ta line de ton process, tu peux&nbsp;initialiser ta liste d'utilisateurs&nbsp;comme suis:  
  
_ **import java.util.stream.Collectors** _

_**import org.bonitasoft.engine.bpm.actor.ActorCriterion  
import org.bonitasoft.engine.bpm.actor.ActorInstance  
import org.bonitasoft.engine.bpm.actor.ActorMember  
import org.bonitasoft.engine.identity.UserCriterion**_

_**List users = new ArrayList\<\>();  
//Récupération des 100 premiers utilisateurs  
//users =apiAccessor.identityAPI.getUsers(0, 100, UserCriterion.FIRST\_NAME\_ASC)  
//Récupération de tous les acteur du process  
List\<ActorInstance\> actorsInstances =apiAccessor.processAPI.getActors(processDefinitionId, 0, 100, ActorCriterion.NAME\_ASC);  
//Récupération des acteurs ayant pour le nom "Employé"  
List\<ActorInstance\> filteredActorsInstanceIds = actorsInstances.stream().filter{ActorInstance actor -\> actor.name == "Employé"}.collect(Collectors.toList());**_

_**//Pour chaque acteurs filtrer, récupération des users  
for(ActorInstance actor : filteredActorsInstanceIds){  
&nbsp;&nbsp; &nbsp;//Récupération des actorMembers  
&nbsp;&nbsp; &nbsp;List\<ActorMember\> actorMembers = apiAccessor.processAPI.getActorMembers(actor.getId(), 0, 9999);  
&nbsp;&nbsp; &nbsp;for(ActorMember actorMember : actorMembers){  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//Récupération de tous les utilisateurs du groupe  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(actorMember.getGroupId() \>-1){  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;users.addAll(apiAccessor.identityAPI.getUsersInGroup(actorMember.getGroupId(), 0, 9999, UserCriterion.FIRST\_NAME\_ASC));  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//Récupération de l'utilisateur  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(actorMember.getUserId()\>-1){  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;users.add(apiAccessor.identityAPI.getUser(actorMember.getUserId()));  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//Récupération des utilisateur du role  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(actorMember.getRoleId() \>-1){  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;users.addAll(apiAccessor.identityAPI.getUsersInRole(actorMember.getRoleId(), 0, 9999, UserCriterion.FIRST\_NAME\_ASC));  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}  
&nbsp;&nbsp; &nbsp;}  
}  
return users;**_

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [10 January 2020 05:32 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/28 "2020-01-10T05:32:30Z")

</div>

en faite j'utilise des acteurs differents,&nbsp; est ce qu'on peut utiliser une "operation":&nbsp; du genre

1. on crée&nbsp;la variable "userlist" mais on donne pas de valeur par défaut,
2. on crée une opeation dans la tâche&nbsp;"etape 1", on y ajoute la variable userlist avec qui prend la valeur:

_import org.bonitasoft.engine.identity.User;  
final List users = apiAccessor.processAPI.getPossibleUsersOfPendingHumanTask(activityInstanceId, 0, Integer.MAX\_VALUE);  
return users;_

&nbsp;(Normalement apres l'execution de&nbsp; la tâche&nbsp;"etape1" on peut obtenir les tâches en attente, et cela&nbsp;mettra&nbsp;à jour la variable "userlist").

&nbsp;

Je l'ai essayé mais ca ne marche pas encore, je sais si cette logique n'est pas correcte, ou une erreur&nbsp;dans mon projet

&nbsp;

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [10 January 2020 06:27 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/29 "2020-01-10T06:27:20Z")

</div>

J'ai l'impression que dans&nbsp;"&nbsp; **l'instances multiples executés en parallèles**", la variable en entrée&nbsp;liste&nbsp;(userlist)&nbsp; ne peut pas être assignée&nbsp;après,&nbsp; elle doit prendre une valeur par défaut.&nbsp;

---

<div class="post-metadata">

**Author:** ![bastien.laurent\_1374](https://avatars.discourse-cdn.com/v4/letter/b/fbc32d/32.png) [@bastien.laurent\_1374](https://community.ofelia.com/u/bastien.laurent_1374)\
**Post date:** [10 January 2020 07:23 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/30 "2020-01-10T07:23:41Z")

</div>

Tu ne peux pas faire :&nbsp;  
_on crée une opeation dans la tâche "etape 1", on y ajoute la variable userlist avec qui prend la valeur:_  
Car lors de la phase de l'opération, ta tache est terminé, elle n'est plus en attente.  
  
Si tes acteurs ne sont pas les mêmes, il faut que tu utilise le même&nbsp;filtre d'acteur pour initialiser ta variable userList.  
  
_J'ai l'impression que dans "&nbsp; **l'instances multiples executés en parallèles&nbsp;**", la variable en entrée liste (userlist) ne peut pas être assignée après, elle doit prendre une valeur par défaut._

En effet, elle&nbsp;ne peut pas, car tu l'utilises pour boucler dessus. C'est comme une boucle 'each' en JAVA, C# ou tout autre langage.

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [10 January 2020 10:56 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/31 "2020-01-10T10:56:28Z")

</div>

Je veux dire, après l'exécution de la tache "etape 1", on a la tâche "etape2" qui est en attente.

C'est&nbsp;étonnant en faite, parce que je peux recuperer la liste des acteurs de la&nbsp;tâche&nbsp;(etape2) en attente&nbsp;et j'arrive&nbsp;aussi&nbsp;a les envoyer des mails&nbsp;sauf que le mail&nbsp;n'est pas personnalisé&nbsp;(Meme mail pour tout les acteurs -\> ici on parle&nbsp;vraiment de l'acteur mais non pas tout les utilisateurs ).

Et après avec ta methode on peut envoyer des mails personnalisés, mais&nbsp;cette fois&nbsp;on les envoie a tout les utilisateurs, (même ceux qui ne sont pas acteurs)

&nbsp;

---

<div class="post-metadata">

**Author:** ![bastien.laurent\_1374](https://avatars.discourse-cdn.com/v4/letter/b/fbc32d/32.png) [@bastien.laurent\_1374](https://community.ofelia.com/u/bastien.laurent_1374)\
**Post date:** [10 January 2020 13:23 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/32 "2020-01-10T13:23:09Z")

</div>

Dans ce cas, tu initialises la variable 'userslist' avec ta méthode&nbsp;à l'étape 1 dans une opération&nbsp;ou dans une étape intermédière de type scrypt. Puis&nbsp;tu utilises ma méthode.

---

<div class="post-metadata">

**Author:** ![merikawasselin\_14101](https://avatars.discourse-cdn.com/v4/letter/m/ebca7d/32.png) [@merikawasselin\_14101](https://community.ofelia.com/u/merikawasselin_14101)\
**Post date:** [13 January 2020 05:14 UTC](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935/33 "2020-01-13T05:14:34Z")

</div>

d'accord, mercii

[Previous page](https://community.ofelia.com/t/envoi-de-mail-personnalise/9935.md?page=1)
