La notion de Graph Oriented Programming (GOP), offre l’avantage de structurer l’application autour d’un graphe présentant une modélisation du processus à automatiser. Le graphe est déclaré & séparé du code source (java dans ce qui suit, mais C# lorsqu'on exploite WF de .Net)
je présente dans ce qui suit, un exemple simple de mise en ouvre d’un processus métier avec JBPM.
Rappelons que GOP définit une notion de GVM (Graph Virtual Machine), en suivant les étapes simple :
a) définit le graphe
b) définit the modèle d’exécution du graph
c) ajoute le support aux états d’attente
Le graphe est déclaré & séparé du code java:
Présentation du processus « gestion des entretiens »
Ce processus permet de sélectionner des candidats qui ont déjà déposé leurs CVs (le dépôt des CV est hors du processus). Les candidats sont contactés pour fixer un RDV (fixer une date, un lieu et un évaluateur) pour les entretiens d’embauche.
Une fois l’entretien passé (cette étape est aussi hors de notre processus), l’évaluation du candidat est notée. Le Responsable (Directeur) décide de la suite à donner : un ou plusieurs autres entretiens ou le rejet de la candidature. En regroupant les différentes évaluations attribuées à un candidat dans les différents entretiens, le Responsable valide ou rejette le recrutement du candidat.
Analyse fonctionnelle du processus
Le diagramme suivant résume les différentes étapes du processus « gestion des entretiens » :
Les différentes tâches du processus sont :
Etape | Description |
Sélection des candidats | Sélectionner les candidats qui vont passer leurs entretiens d’embauche (saisir leurs noms, prénoms, adresses et téléphones…) |
Contacter les candidats | Fixer la date et le lieu de l’entretien. |
Inscrire les entretiens | Préciser le type de l’entretien, sa durée son thème ainsi que l’examinateur qui va l’effectuer. |
Evaluation de l’entretien | Une fois l’entretien effectué, l’évaluateur affecte une note au candidat et optionnellement des commentaires. |
Passage d’autres entretiens | Le directeur doit décider si le candidat doit passer d’autres entretiens. Dans le cas contraire, on doit passer à l’étape de validation. |
Validation de l’entretien | Dans cette dernière étape, le directeur doit valider ou rejeter le recrutement du candidat. |
Développement du processus « gestion des entretiens »
Dans cette partie nous allons lancer un projet nommé "Gestion Entretiens" dans l’environnement éclipse : le plugin Eclipse de JBPM.
Il s’agit d’un outil open source offert par Jboss : http://www.jboss.com/products/jbpm/
Il suffit de l’installer et de lancer Eclipse :
Pour cela, on suit les étapes suivantes :
· File – New project – Process Project – Nom: "Gestion Entretiens ".
· Dans le Package: click droit sur "src/main/jpdl" – New – Other – Process Definition – Nom: "Gestion des entretiens".
Rajout des rôles avec le concept de swimlane
Cette étape consiste à définir les différents groupes (rôles ou acteurs au sens UML) qui vont participer dans les différentes étapes du processus.
Il s’agit d’un concept présent aussi en BPMN et d’autres méthodes de notation de processus : la notion de couloir pour organiser les activités selon différents responsabilités fonctionnelles ou d'organisation
BPMN possède deux objets de regroupement (espace couvert (Pool), couloir (Lane)), pour représenter une organisation, une direction, un service, une personne ou autre réalisateur de l’activité et utilisé pour représenter un regroupement d’activités sous la responsabilité du participant
Les swimlanes utilisées dans notre processus sont :
- Directeur, group(Directeur)
- Evaluateur, group(Evaluateur)
- Assistante, group(Assistante)
- Candidat, group(Candidat)
Pour créer un swimlane, on procède comme suit : · Dans l’onglet Swimlanes de l’Edit area – Sélectionner « Add » – Saisir le nom du swimlane – Choisir « Expression » – Saisir « group (Nom du swimlane) ». |
Rajout des nœuds et des transitions
On trouve les différents éléments du langage jPDL qui vont constituer le diagramme du processus : |
Construction du diagramme de l’application
On commence notre diagramme par un « Start node » qui désigne le début du processus. Sélectionner « Start node » puis le placer au milieu l’espace à gauche de la fenêtre ci-dessus. Double-cliquez sur le nouveau nœud. Une fenêtre contenant les propriétés du nœud va s’ouvrir. Choisir le nom « Sélection du candidat ».
Maintenant, on doit associer une tâche pour ce nouveau nœud. Pour cela, dans le menu Outline, cliquez-droit sur « Selection du candidat » – Add Task – cliquez-double – Choisir le nom « Selection du candidat ».
Rajout propriétés : variables
Dans la même fenêtre ci-dessus, dans l’onglet « Controller » – Cliquez Add – puis rajouter les variables du processus et définir leurs propriétés (read, write, required).
Toujours dans la même fenêtre des propriétés de la tâche « Selection du candidat », dans l’onglet « Assignement », choisir comme type d’assignement « Swimlane », et comme swimlane le groupe « Directeur ».
Ainsi on a mis en place notre première tâche qui consiste à sélectionner les candidats qui vont passer l’entretien.
On passe maintenant à la deuxième tâche qui va nous informer si notre candidat est déjà contacté ou non.
Sélectionner « Task node », le placer dans l’espace utilisé pour le diagramme au dessous du nœud « Sélection du candidat ». Cliquez-double sur ce nouveau « Task node » et choisir le nom « Candidat contacte ? ».
Ensuite, on doit attribuer comme d’habitude tâche à ce nœud appelée « Candidat contacte ? » :
Puis, on choisit comme assignement le groupe « Assistante »:
Afin de relier les deux nœuds, on doit cliquer le bouton « Transition », ensuite cliquez sur le premier nœud « Sélection du candidat » et sur le deuxième nœud « Candidat contacte ? ». On obtient le diagramme suivant :
On procède de la même façon pour créer les autres nœuds du diagramme du processus.
Nom du noeud | Type du noeud | Nom de la tâche | Swimlane | Variables du processus |
Contacter candidat | Task node | Contacter candidat | Assistante | · Date – R/W – Date entretien · Lieu – R/W – Lieu entretien |
Inscrire entretien | Task node | Inscrire entretien | Assistante | · numEntr – R/W - Code entretien · ExamEntr – R/W - Examinateur entrtien · durEntr – R/W - Duree entretien · sujEntr – R/W - Theme entretien |
Evaluer entretien | Task node | Evaluer entretien | Evaluateur | · numEntre – R/W - Numero entretien · noteEntr – R/W – Notes · comEntr – R/W - Commentaires |
Passage dautres entretiens ? | Task node | Passage d'autres entretiens ? | Directeur |
|
Validation | Task node | Validation | Directeur | · ValidEntr – R/W - Entretien valide ? |
On obtient le diagramme de processus suivant :
Le reste du travail est d’installer ce diagramme dans l’application,
Mais ceci est une autre histoire …
autres sujets :
1. Un peu de monitoring Métier (BAM) avec JBPM et SeeWhy (event-driven business intelligence )
5 commentaires :
ce que je cherche c'est lautre histoire d'instaler le diagrame dnas l'application
Exactement ça !!! Je cherche le matching entre ce diagramme et mes classes Java. Pouvez-vous Si Khaled nous aider ? Merci d'avance.
meme question aussi :(
moi aussi je suis à la rechreche d'un tutoriel qui permet de faire cette liaison
Salut M. Khaled BEN DRISS.
j'ai l'impression que vous ne répondez pas aux commentaires postés sur vos articles.
nous sommes tous dans le besoin de la suite de votre mot de conclusion et je cite "Mais ceci est une autre histoire …". alors comment faire pour avoir la réponse?
Enregistrer un commentaire