Envoi de mail Personnalisé

1
0
-1

Bonjour à tous,

Comment envoyer un email personalisé aux acteurs d'une tâche, par exemple j'ai cet scénario:

on a une tâche (preparer du café) , les acteurs de cette tâche sont Jean, Pierre et Marc,

ce que je veux maintenant, c'est d'envoyer un email à chaque acteur, genre:

- Bonjour Jean, vous avez une tâche disponible (le mail pour Jean)

- Bonjour Pierre, vous avez une tâche disponible (le mail pour Pierre)

- Bonjour Marc, vous avez une tâche disponible (le mail pour Marc)

NB: l'envoi de mail pour chacun marche déjà, mais pour le contenu dynamique, je ne sais pas comment faire.

Merci pour votre aide

1 answer

1
0
-1

Bonjour,

Pour le contenue dynamique, il suffit de faire un script groovy du type:

return "Bonjour " +utilisateur+", vous avez une tâche disponible."

utilisateur étant le nom de la variable contenant le nom d'utilisateur lors de ton itération d'envois de mail.

Cordialment,

Comments

Submitted by merikawasselin_... on Tue, 01/07/2020 - 06:11

Bonjour Bastien, merci pour ta reponse,

Est ce que tu peux m'envoyer un ptit exemple de script pour ca, merci

Ceci ma script pour l'envoi d'email:

// Get the users attached to the actor member of the human task
final List users = apiAccessor.processAPI.getPossibleUsersOfPendingHumanTask(activityInstanceId, 0, Integer.MAX_VALUE);

// Get the professional email of the users
final List professionalEmails = new ArrayList(users.size());
StringBuilder sb=new StringBuilder()
for(final User user : users){

//get professional contact data
ContactData contactData = apiAccessor.getIdentityAPI().getUserContactData(user.getId(), false)
if (contactData!=null && contactData.getEmail()!=null && !contactData.getEmail().isEmpty()){
sb.append(contactData.getEmail()).append(",")
}
}
return sb.toString();

Submitted by bastien.laurent... on Tue, 01/07/2020 - 10:48

Ahhh, tu à fait comme ça.
Le mieux, c'est que tu modifie ta tache qui à ton connecteur mail, pour la rendre itérative sur ta liste 'users'.
Ta tache itérative sera du type 'Instances multiples exécutées en parallèle'
Comme ça, sur chaque itération tu auras qu'un seul utilisateur que tu va stocker dans une variable 'user'.
Ensuite tu modifies ton connecteur mail afin d'utiliser ta variable 'user' dans ton 'to' comme suis:

ContactData contactData = apiAccessor.getIdentityAPI().getUserContactData(user.getId(), false)
if (contactData!=null && contactData.getEmail()!=null && !contactData.getEmail().isEmpty()){
return contactData.getEmail();
}

Et ton 'body' sera :

return "Bonjour " +user.firstname + " "+ user.lastname+", vous avez une tâche disponible."

En espérant que ce soit assez clair.
Sinon je te ferais un petit exemple quand j'aurais le temps.

Submitted by merikawasselin_... on Tue, 01/07/2020 - 12:05

Merci encore pour ta reponse, je comprends pas encore.

c'est comment une tâche itérative sera du type 'Instances multiples exécutées en parallèle'?

Comment stocker cette variable user, et comment on fait pour que quand on envoi le mail à Pierre, le user.firstname (Pièrre s'affiche)

Encore merci beaucoup pour ta reponse

Submitted by bastien.laurent... on Tue, 01/07/2020 - 15:02

Pour commencer tu créer une varriable userlist avec comme code:

// Get the users attached to the actor member of the human task
return List users = apiAccessor.processAPI.getPossibleUsersOfPendingHumanTask(activityInstanceId, 0, Integer.MAX_VALUE);

Ensuite, tu créer une tache itérative:
Sur ta tache tu va dans l'onglet Itération, tu sélectionne 'Intances multiple exécutées en parallèle'
Tu sélectionne ta liste d'utilisateurs, puis sur la ligne suivante, tu renommes la variable par 'user'

2020-01-07-14h48-48.png

Ensuite, sur ta même tache, tu va dans ton connecteur, dans les destinataire, dans le 'A*:', tu mets le code grovvy que j'ai écris plus haut.

2020-01-07-14h55-48.png

Puis dans le 'Contenu du courriel', tu clique sur 'Changer d'éditeur', et tu mets le code suivant :

return "Bonjour "+user.firstName+" "+user.lastName+", suite du mail";

2020-01-07-14h59-53.png

Tu clique sur 'Terminer', et c'est good ;)

Submitted by merikawasselin_... on Wed, 01/08/2020 - 09:20

Merci encore une fois pour ta reponse bien claire, j'ai suivi à la lettre les demarches mais ca marche toujours pas de mon coté,

je vois pas d'erreur, mais la tâche iterative est executée automatique et passe à la prochaine tâche.

Submitted by bastien.laurent... on Wed, 01/08/2020 - 09:31

Ca ne t'envois pas les mails?

Submitted by merikawasselin_... on Wed, 01/08/2020 - 09:36

non, pas d'envoi de mail; en plus, la tâche iterative (de type humaine) est executé automatique, et passe directement a la prochaine tâche

Submitted by bastien.laurent... on Wed, 01/08/2020 - 09:44

Alors, si tu as fait une tache itérative sur une tache humaine, il faut que tu es un formulaire, sinon fait une tache de type Automatique.
Tu n'a pas de tache en erreur dans ton Bonita?
Et es tu sur d'avoir bien configuré ton envoie de mail?

Submitted by merikawasselin_... on Wed, 01/08/2020 - 11:35

en faite, la l'envoi d'email se trouve sur l'entré de la tâche iterative, non il n'y a pas d'erreur dans bonita, la configuration je l'ai fait comme tu l'a dis.

Submitted by merikawasselin_... on Wed, 01/08/2020 - 11:41

l'envoi d'email c'est un connecteur en entrée de la tâche iterative (humaine)

Submitted by merikawasselin_... on Wed, 01/08/2020 - 11:46

et la tâche iterative a une formulaire

Submitted by merikawasselin_... on Wed, 01/08/2020 - 12:49

Je viens de tester avec une tâche de type service, mais ca marche toujours pas, je sais plus comment faire...

Submitted by bastien.laurent... on Wed, 01/08/2020 - 14:37

Est-ce que ton formulaire doit apparaitre pour tous les utilisateurs présent dans ta liste des utilisateurs ou un seul utilisateur doit avoir accès à ce formulaire? Si un seul utilisateur doit avoir accès au formulaire: Il faut créer une tache itérative d'envois de mail avant ton formulaire, puis ta tache de formulaire (qui ne sera plus itérative).
Sinon, ta tache d'envoie de mail devrait fonctionner.
Si elle ne fonctionne pas, tu as forcément un message d'erreur dans les log de bonita.

Tu lance ton process directement via le Studio, ou tu le déplois sur un serveur externe?

Submitted by merikawasselin_... on Wed, 01/08/2020 - 14:48

Les formulaires apparaissent pour les acteurs de la tâche, oui je lance mon process directement via le studio

Submitted by bastien.laurent... on Wed, 01/08/2020 - 14:55

Ok, donc si j'ai bien compris:
1 mail = 1 formulaire = 1 utilisateur
Du coup c'est normal que tu ais fait une tache 'Humaine' avec un connecteur mail en entré ( Aide -> Log Bonita Engine )

Si tu es dans le studio, regarde dans les logs de Bonita Engine, tu dois forcément avoir des informations sur ton envois de mail.

Submitted by merikawasselin_... on Wed, 01/08/2020 - 14:55

Je comprends pas pourquoi on parle de formulaire, en faite mon processus envoie des données depuis le contract par le formulaire. Dès que je change la tâche en iterative, elle est oublié (n'est pas affichée dans la liste des tâches) et on passe directement à la prochene tâche genre:

Workflow normal:

tâche1 puis tâche2 puis tâche3

Ce que j'obtients

tâche 1 puis tâche3

Submitted by merikawasselin_... on Wed, 01/08/2020 - 15:01

voici les derniers ligne de mon logs de bonita engine:

2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 15:25:50.122 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Une tâche "ETUDE DE FAISIBILITE" n'est pas encore finie! 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Rappel (Tâche en attente d'execution) (Agent) 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com,liantsoarakotoarizao.ext@orange.com, 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 15:26:14.168 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Une tâche "ETUDE DE FAISIBILITE" n'est pas encore finie! 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Rappel (Tâche en attente d'execution) (Agent) 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com,liantsoarakotoarizao.ext@orange.com, 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 15:26:44.063 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Une tâche "ETUDE DE FAISIBILITE" n'est pas encore finie! 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Rappel (Tâche en attente d'execution) (Agent) 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com,liantsoarakotoarizao.ext@orange.com, 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 15:27:14.146 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Une tâche "ETUDE DE FAISIBILITE" n'est pas encore finie! 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Rappel (Tâche en attente d'execution) (Agent) 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com,liantsoarakotoarizao.ext@orange.com, 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 15:27:44.105 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 15:27:44.106 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 16:58:33.224 +0300 INFOS: org.bonitasoft.engine.api.impl.transaction.process.DisableProcess THREAD_ID=92 | HOSTNAME=WX-OR1028422 | TENANT_ID=1 | The user has disabled process in version <1.0> with id <5195622241186460005> 2020-01-08 16:58:33.661 +0300 INFOS: org.bonitasoft.engine.api.impl.ProcessManagementAPIImplDelegate THREAD_ID=94 | HOSTNAME=WX-OR1028422 | TENANT_ID=1 | The user has deleted process with id = <5195622241186460005> 2020-01-08 16:58:33.857 +0300 INFOS: org.bonitasoft.engine.classloader.ClassLoaderServiceImpl THREAD_ID=402 | HOSTNAME=WX-OR1028422 | Refreshing classloader with key: PROCESS:5195622241186460005 2020-01-08 16:58:37.139 +0300 INFOS: org.bonitasoft.engine.bar.BusinessArchiveServiceImpl THREAD_ID=99 | HOSTNAME=WX-OR1028422 | TENANT_ID=1 | The user has installed process in version <1.0> with id <5582721839546736586> 2020-01-08 16:58:37.290 +0300 INFOS: org.bonitasoft.engine.classloader.ClassLoaderServiceImpl THREAD_ID=402 | HOSTNAME=WX-OR1028422 | Refreshing classloader with key: PROCESS:5582721839546736586 2020-01-08 16:58:37.396 +0300 INFOS: org.bonitasoft.engine.api.impl.transaction.process.EnableProcess THREAD_ID=99 | HOSTNAME=WX-OR1028422 | TENANT_ID=1 | The user has enabled process in version <1.0> with id <5582721839546736586> 2020-01-08 16:58:38.062 +0300 INFOS: org.bonitasoft.console.common.server.page.PageServlet Unable tor retrieve app parameter for resource theme.css. Request referer is missing an an app parameter. Forwarding to the portal theme. 2020-01-08 16:58:44.588 +0300 INFOS: org.bonitasoft.engine.api.impl.ProcessStarter THREAD_ID=92 | HOSTNAME=WX-OR1028422 | TENANT_ID=1 | The user has started the process instance <14091> of process in version <1.0> and id <5582721839546736586> 2020-01-08 16:58:44.761 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message this is a groupe mail test 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject groupe mail test 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to sdsdsd 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from hoby.rafamaranantsoa@orange.com 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 16:58:44.762 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 16:58:44.763 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 16:58:44.763 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 16:58:45.876 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Une tâche "CREATION DE PROPOSITION COMMERCIALE" est disponible! 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Tâche disponible (Création de proposition commerciale) (Agent) 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com, 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 16:58:45.877 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 16:58:56.216 +0300 GRAVE: org.bonitasoft getUser 2020-01-08 16:58:56.231 +0300 GRAVE: org.bonitasoft getUser personal email = null 2020-01-08 16:58:56.232 +0300 GRAVE: org.bonitasoft getUser professional email = johnrazafinarivo.ext@orange.com 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Le ticket se trouve dans la "CREATION PROPOSITION COMMERCIALE" 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Information sur le Ticket (initiateur) 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 16:58:56.232 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Manager of de création proposition commercial, Une tâche "Création proposition commerciale" est disponible! 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Une tâche disponible (Manager) 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 16:58:56.703 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers [] 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector charset UTF-8 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector message Une tâche "CREATION DE PROPOSITION COMMERCIALE" n'est pas encore finie! 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector html true 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector subject Rappel (Tâche en attente d'execution) (Agent) 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector bcc null 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector cc null 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector to johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com,johnrazafinarivo.ext@orange.com, 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector from workflow@orange.com 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector userName null 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector starttlsSupport false 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector sslSupport false 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpPort 25 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector smtpHost 192.168.19.102 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector replyTo null 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector password ****** 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector Headers null 2020-01-08 16:59:15.797 +0300 INFOS: org.bonitasoft.connectors.email.EmailConnector headers []

Submitted by bastien.laurent... on Wed, 01/08/2020 - 15:23

Je viens de te faire un mini process qui fait ce que tu veux: https://we.tl/t-zNZhGp9YeC
Dis moi si tu comprends.
Chez moi ça marche, j'ai bien un mail envoyé à tous les utilisateurs, et x tache à prendre. Après tu peux faire une assignation dynamique en fonction de l'utilisateur de ton itération. Si besoin je te montrerais.

Submitted by merikawasselin_... on Thu, 01/09/2020 - 06:22

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

Message d'erreur affiché:

"Une erreur s'est produite lors du parsing du contenu de l'archive BOS."

J'utilise Bonita 7.9 de mon coté.

Submitted by merikawasselin_... on Thu, 01/09/2020 - 06:32
Submitted by bastien.laurent... on Thu, 01/09/2020 - 08:24

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

Submitted by bastien.laurent... on Thu, 01/09/2020 - 09:04

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

Submitted by merikawasselin_... on Thu, 01/09/2020 - 09:04

ah d'accord :)

Submitted by merikawasselin_... on Thu, 01/09/2020 - 14:07

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 à cause de ca:

import org.bonitasoft.engine.identity.UserCriterion
List users =apiAccessor.identityAPI.getUsers(0, 100, UserCriterion.FIRST_NAME_ASC)
return users;

J'ai essaié de changer en ca:

import org.bonitasoft.engine.identity.User;
final List users = apiAccessor.processAPI.getPossibleUsersOfPendingHumanTask(activityInstanceId, 0, Integer.MAX_VALUE);
return users;

Mais ca marche pas.

Submitted by bastien.laurent... on Thu, 01/09/2020 - 14:42

Oui c'est un peut la loose pour récupérer les acteurs de la taches.
Sachant que, lorsque 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 initialiser ta liste d'utilisateurs 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 actorsInstances =apiAccessor.processAPI.getActors(processDefinitionId, 0, 100, ActorCriterion.NAME_ASC);
//Récupération des acteurs ayant pour le nom "Employé"
List 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){
//Récupération des actorMembers
List actorMembers = apiAccessor.processAPI.getActorMembers(actor.getId(), 0, 9999);
for(ActorMember actorMember : actorMembers){
//Récupération de tous les utilisateurs du groupe
if(actorMember.getGroupId() >-1){
users.addAll(apiAccessor.identityAPI.getUsersInGroup(actorMember.getGroupId(), 0, 9999, UserCriterion.FIRST_NAME_ASC));
}
//Récupération de l'utilisateur
if(actorMember.getUserId()>-1){
users.add(apiAccessor.identityAPI.getUser(actorMember.getUserId()));
}
//Récupération des utilisateur du role
if(actorMember.getRoleId() >-1){
users.addAll(apiAccessor.identityAPI.getUsersInRole(actorMember.getRoleId(), 0, 9999, UserCriterion.FIRST_NAME_ASC));
}
}
}
return users;

Submitted by merikawasselin_... on Fri, 01/10/2020 - 06:32

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

  1. on crée la variable "userlist" mais on donne pas de valeur par défaut,
  2. on crée une opeation dans la tâche "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;

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

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

Submitted by merikawasselin_... on Fri, 01/10/2020 - 07:27

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

Submitted by bastien.laurent... on Fri, 01/10/2020 - 08:23

Tu ne peux pas faire :
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 filtre d'acteur pour initialiser ta variable userList.

J'ai l'impression que dans " l'instances multiples executés en parallèles ", 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 ne peut pas, car tu l'utilises pour boucler dessus. C'est comme une boucle 'each' en JAVA, C# ou tout autre langage.

Submitted by merikawasselin_... on Fri, 01/10/2020 - 11:56

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

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

Submitted by bastien.laurent... on Fri, 01/10/2020 - 14:23

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

Submitted by merikawasselin_... on Mon, 01/13/2020 - 06:14

d'accord, mercii

Notifications