Skip to content

Latest commit

 

History

History
105 lines (77 loc) · 8.81 KB

define-who-can-do-what.md

File metadata and controls

105 lines (77 loc) · 8.81 KB

Définir qui peut faire quoi

Jusqu'ici, lorsque vous exécutiez le processus, vous agissiez en tant qu'utilisateur unique (nom d'utilisateur : walter.bates, mot de passe : bpm) pouvant exécuter toutes les tâches utilisateur. Dans un scénario plus proche d'un cas d'utilisation réel, il existe différents types d'utilisateurs : des clients (pouvant soumettre des réclamations), des employés (qui répondent aux réclamations) et le responsable de l'utilisateur qui fournit la réponse (qui est nécessaire pour interagir avec des clients mécontents).

La première étape de la configuration de « qui peut faire quoi » consiste à créer des lanes dans notre pool. Nous avons déjà une lane par défaut pour les employés. Ajoutons-en une autre pour le client et une pour le responsable :

  1. Dans Bonita Studio, depuis la palette à gauche du diagramme, sélectionnez l'icône lane

  2. Cliquez à l'intérieur du pool de processus pour ajouter la lane. Faites-le deux fois pour avoir un total de trois lanes

  3. Sélectionnez la lane Employé (lane) et cliquez sur l'icône de la flèche en bas pour la déplacer afin qu'elle soit positionnée au centre

    Ajouter et organiser des lanes

  4. Sélectionnez Lane1, allez dans l'onglet Général > Lane et renommez-la Customer lane

  5. Sélectionnez Lane2, allez dans l'onglet Général > Lane et renommez-la Manager lane

  6. Sélectionnez l'événement de début Submit claim et déplacez-le (par glisser-déplacer) vers la Customer lane. Effectuez la même opération pour la tâche Read the answer and rate it

  7. Sélectionnez la tâche Deal with unsatisfied customer et déplacez-la vers la Manager lane. Effectuez la même opération pour l'événement de fin End client unsatisfied

    Diagramme comportant des lanes

ℹ info :
Une lane est utilisée pour regrouper les tâches utilisateur qui doivent être effectuées par le même ensemble d'utilisateurs.

À présent, nous devons définir des « acteurs », un pour chaque lane, et les associer à la lane à laquelle ils appartiennent :

  1. Sélectionnez le pool

  2. Allez dans Général > Acteurs

  3. Cliquez sur le bouton Ajouter

  4. Cliquez sur le nom par défaut de l'acteur (Actor1) et modifiez-le en : Customer actor

  5. Répétez pour créer Manager actor

  6. Sélectionnez le Customer actor et cliquez sur le bouton "Marquer" initiateur. Un flag sera ajouté pour cet acteur afin de l'identifier comme celui qui démarre le processus

    Ajout et modification des acteurs, définition de l'initiateur

  7. Sélectionnez Customer lane (cliquez sur le nom de la lane)

  8. Allez dans Général > Acteurs et dans la liste déroulante, sélectionnez Customer actor

  9. Effectuez la même opération pour la Manager lane avec Manager actor

    Association d'un acteur à une lane

Les acteurs sont simplement des identifiants. Afin de définir l'utilisateur réel, nous devons configurer les acteurs et les associer aux groupes, rôles, utilisateurs, etc. de l'organisation. Nous utiliserons l'organisation test Bonita Acme pour cet exemple :

  1. Dans le menu Bonita Studio, cliquez sur Serveur > Configurer Icône du bouton configuration

  2. Sélectionnez Employee actor

  3. Cliquez sur le bouton Groupes...

  4. Décochez /acme

  5. Cochez /acme/production/services. Nous utiliserons ce groupe d'utilisateurs pour jouer le rôle de l'équipe de support chargée de répondre aux réclamations. Dans l'organisation test, deux utilisateurs appartiennent à ce groupe : mauro.zetticci et thomas.wallis. Le responsable des deux utilisateurs est : michael.morrison

  6. Cliquez sur le bouton Terminer

    Configuration de l'association acteurs <-> utilisateurs

  7. Sélectionnez Customer actor

  8. Cliquez sur le bouton Groupes...

  9. Cochez /acme/hr. Nous utiliserons ce groupe d'utilisateurs pour jouer le rôle des clients qui peuvent soumettre des réclamations. Dans l'organisation test, trois utilisateurs appartiennent à ce groupe : walter.bates, helen.kelly et april.sanchez

  10. Cliquez sur le bouton Terminer

  11. Sélectionnez Manager actor

  12. Cliquez sur le bouton Rôles...

  13. Sélectionnez le rôle member. Tous les utilisateurs de l'organisation test ont ce rôle. Mais, cela n'a pas vraiment d'importance, car cette association d'acteur sera annulée plus tard dans notre configuration

  14. Cliquez sur le bouton Terminer

  15. Cliquez sur le bouton Terminer pour fermer la fenêtre de configuration

À ce stade, si vous essayez d'exécuter le processus, vous verrez que walter.bates ne peut plus exécuter la tâche Review and answer claim. Vous devrez vous déconnecter du Portail Bonita (cliquez sur Walter Bates dans l'angle supérieur droit et sélectionnez Déconnexion) et vous connecter avec mauro.zetticci ou thomas.wallis (mot de passe : bpm) pour pouvoir afficher la tâche. Et vous devez vous reconnecter avec le compte walter.bates pour pouvoir afficher la tâche qui vous permet de lire la réponse fournie.

Actuellement, la tâche Read the answer and rate it est disponible pour tous les utilisateurs du groupe /acme/hr, mais elle devrait être disponible uniquement pour l'utilisateur qui a lancé le processus (walter.bates). De même, la tâche Deal with unsatisfied customer sera disponible pour tous alors qu'elle devrait être disponible uniquement pour le responsable de l'utilisateur qui a exécuté la tâche Review and answer claim. Pour répondre à ce problème, nous configurerons des filtres pour les acteurs :

  1. Sélectionnez la Customer lane

  2. Allez dans Général > Acteurs

  3. Cliquez sur le bouton Définir... à côté de Filtre de l'acteur

  4. Dans la liste, sélectionnez Initiateur

  5. Cliquez sur le bouton Suivant

  6. Définissez le nom : User who submit the claim

  7. Cliquez sur le bouton Terminer

    Configuration du filtre d'acteur de type "initiateur" sur la lane "Customer"

  8. Sélectionnez la lane Manager lane

  9. Suivez les mêmes étapes, mais sélectionnez le filtre acteur Le manager de l'utilisateur

  10. Définissez le nom : Manager of the user who provided answer

  11. Cliquez sur le bouton Suivant

  12. Cliquez l'icône du crayon

  13. Sélectionnez Script et collez le script Groovy suivant (il recherchera l'identifiant de l'utilisateur qui a exécuté la tâche Review and answer claim) :

    import org.bonitasoft.engine.bpm.flownode.ArchivedHumanTaskInstance
    import org.bonitasoft.engine.bpm.flownode.ArchivedHumanTaskInstanceSearchDescriptor
    import org.bonitasoft.engine.search.SearchOptionsBuilder
    import org.bonitasoft.engine.search.SearchResult
    
    def taskName = 'Review and answer claim'
    
    final SearchOptionsBuilder searchOptionsBuilder = new SearchOptionsBuilder(0, 1)
    .filter(ArchivedHumanTaskInstanceSearchDescriptor.PARENT_PROCESS_INSTANCE_ID, processInstanceId)
    .filter(ArchivedHumanTaskInstanceSearchDescriptor.NAME, taskName).filter(ArchivedHumanTaskInstanceSearchDescriptor.TERMINAL, true)
    
    SearchResult<ArchivedHumanTaskInstance> searchResult = apiAccessor.processAPI.searchArchivedHumanTasks(searchOptionsBuilder.done())
    
    final List<ArchivedHumanTaskInstance> tasks = searchResult.result
    
    tasks.first().executedBy
  14. Cliquez sur OK

  15. Cliquez sur Terminer

    Configuration du filtre d'acteur de type "initiateur" sur la lane "manager"

Si vous exécutez à nouveau le processus, seul walter.bates doit avoir accès à Read the answer and rate it et seul michael.morrison doit avoir accès à Deal with unsatisfied customer (car il est le responsable des deux utilisateurs qui peuvent exécuter la tâche Review and answer claim).

Nous avons maintenant un processus entièrement personnalisé qui traite les données et attribue les tâches aux utilisateurs appropriés. L'étape suivante consistera à permettre à ce processus d'interagir avec le monde extérieur.