Processus métiers en interaction avec le métier (bp)
Sommaire |
Introduction
L’intérêt des processus métiers est de pouvoir interagir avec les applications métiers. Cela entend :
Etre déclenché par un évènement issu d’un objet métier,
Pouvoir manipuler des informations d’un objet métier,
Pourvoir modifier l’état d’un objet métier.
Pour réaliser un processus interagissant avec un objet métier vous devez utiliser la démarche suivante.
Ajouter une règle d’état au modèle métier qui détectera le changement d’état de l’objet.
| |
Utilisez l’évènement initial « Evènement métier » pour déclencher votre processus.
| |
Utilisez l’activité «Exécuter une expression » pour conditionner votre processus suivant l’état de l’objet.
| |
Utilisez l’activité « Exécutez du code métier » pour modifier l’état de l’objet métier.
|
Lorsque vous déclenchez un processus par un évènement métier, l’instance du processus est automatiquement liée à l’instance de l’objet métier ayant déclenché l’évènement. Vous pouvez alors manipuler cette instance dans les activités du processus à travers l’attribut « Instance ».
Il n’y a qu’une seule classe d’évènement métier par type de modification pour un même objet métier, mais elle peut servir à déclencher plusieurs évènements de processus métier.
Quand la classe est déclenchée par le métier tous les évènements métiers qui y sont reliés sont déclenchés.
Un évènement métier peut déclencher plusieurs instances.
Exemple d’utilisation
La classe WFClasseA possède un Code (attribut unCode) et un état (attribut unEtat). Deux règles d’état sont définies :
- La règle RegleEtat_unCode détecte le changement de l’attribut code.
- La règle RegleEtat_unEtat détecte le changement de l’attribut unEtat :
Le processus va réaliser les opérations suivantes :
- Lorsque l’utilisateur modifie le code d’un objet de WFClasseA, une instance du processus est déclenchée.
- Cette instance modifie l’attribut Etat de l’objet correspondant à la valeur « Initial ».
- Le processus attend ensuite que l’attribut Etat passe à la valeur « Etat3 », changement réalisé par l’utilisateur.
- L’instance du processus change alors la valeur de l’attribut Etat à « Final » et se termine.
Le processus métier correspondant est défini.
L’évènement initial est l’évènement métier généré par la règle d’état de changement de code.
Le changement du code d’un objet de cette classe va donc créer une instance du processus.
L’activité suivante est une activité script qui modifie la valeur de l’attribut « Etat » de l’objet.
La classe de l’objet métier est connue par le processus. Ainsi les outils d’aide à l’édition de code fonctionnent.
Le corps du code modifie l’attribut de l’instance dans une transaction.
https://frp.sage.fr/wiki1000/medias/images/guide_-_processus_metiers/image47.pngLe processus attend ensuite la modification de l’état de l’objet. Pour cela il utilise un évènement « Attente » d’Evènement métier.
Lorsque la case « Evènement de l’instance principale » est cochée, l’évènement doit provenir de la même instance d’objet métier que celle qui a déclenchée le processus.
Sur l’onglet « Post-Condition », la condition est la suivante : l’objet métier doit être dans l’état 3.Cette condition sera testée par l’activité. Si elle n’est pas remplie, l’activité sera toujours en attente.
Lorsque l’objet a été changé, ici par l’utilisateur, le processus enchaine l’activité suivante qui modifie de nouveau l’état de l’objet, puis se termine.
Procédure
Une interface utilisateur simple est utilisée pour modifier les objets. Le processus est en cours d’exécution dans une machine locale.
La modification du code entraine la création d’une instance. Les différentes activités du processus sont exécutées jusqu'à l’attente d’un nouvel évènement métier:
Si on rafraichit l’interface utilisateur, on constate que l’état de l‘objet a été changé.
Passez l’objet dans l’état Etat3.
L’instance du processus enchaîne les dernières activités puis se termine. En rafraichissant l’interface utilisateur, on constate que l’objet est dans l’état final.
Vous remarquez dans cet exemple que :
- La création d’un nouvel objet de la classe ne déclenche pas d’instance de processus, cela parce que les règles d’état ne sont évaluées qu’en mode modification.
- La modification de l’objet dans un autre état que l’état 3 n’a pas d’influence sur le processus.
Base de données d’une instance de Processus Métier
Par défaut un Processus Métier n’est pas rattaché à une base de données particulière, toutefois dans certain cas il est souhaitable qu’un Processus s’exécute dans un contexte de base de données particulier.
Pour cela il est possible de définir la base de données privilégié par un Processus à deux niveaux :
Au niveau de la machine qui contient le processus.
Une autre conséquence de définir une base de données au niveau de la machine est que cette base devient un filtre pour les évènements métiers pris en compte par la machine.
Au niveau du Processus lui même.
Cette base de données privilégiée sera utilisée :
Par les activités de type Tâche métier qui possède un paramétrage de base de données : si vous ne renseignez pas la base de données au niveau de l’activité Tâche la base de données privilégiée du Processus sera utilisé.
Lors de la création de l’instance associé au Processus Métier si vous avez utilisez l’option permettant de créée automatiquement une instance lors du démarrage d’une instance de Processus Métier.
La priorité de prise en compte des différentes possibilités de paramètrage est la suivante :
La base de données définie au niveau de l‘activité si elle existe.
La base de données définie au niveau de la machine
La base de données définie au niveau du Processus.