Table of Contents

Processus Métier

Objectifs

Ce TD vient en complément du cours qui introduit plus généralement la notion de BP. Ce TD basé sur l'outil “Bonitasoft” s'inspire librement du tutoriel qu'ils proposent. Notre objectif est de définir le BP (Business Process) correspondant au scénario suivant :

  1. Initialisation : Un internaute déclenche le processus : il note son nom et son adresse, et sélectionne une musique
  2. Analyse : Un des employés étudie la commande et l'accepte ou la rejette
  3. Si la commande a été accepté,
    1. Le système réserve le produit Reserver
    2. En même temps, l'internaute est invité à payer en donnant les informations sur sa carte de crédit(Payer)
    3. Ensuite La musique est “packagée” (Préparer) et la transaction est enregistrée (Enregistrer)
  4. Si la commande a été rejetée, un email est envoyé à l'internaute (Envoyer Mail), et la transaction est enregistrée.

Voici la forme du BP correspondant

Exercice Entrainement

[Visualisation du processus, à la fin de l'étape 8]

  1. création des tâches
  2. création des données globales et locales
    • Associer les données (nom et email) à l'ensemble du processus [ Association des données]
    • Associer une donnée valide de type boolean à la tâche “Valider”
  3. création des transitions par défaut et conditionnelles
    • par défaut et conditionnelles (Nous préférerons par la suite l'utilisation des gateways plus explicites).
  4. création des connecteurs d'envoi de mails
  5. exécution du BP
  6. Retour sur l'exécution
    • Cas Archivés
  7. Modifier pour gérer
    • La création d'un fichier par script groovy (attention, pensez à définir la variable), par exemple :
        import java.io.File;
        import java.io.PrintWriter;
        import java.io.FileOutputStream;
        nom = nom + ".txt" ; 
        fichier = new File(nom);
        PrintWriter ecrivain;
        ecrivain = new PrintWriter(new FileOutputStream(nom));
        ecrivain.println("voici ce qui a été demande : " + nom);
        ecrivain.close();	

    • Un attachment de fichier lors de la validation [Attachement d'un fichier créé lors de l'étape précédente]
    • Penser à ajouter la variable fichier de type java…
  8. Exécuter Ecran de saisie initial
  9. Modifier les formulaires en particulier pour que le formulaire de validation n'autorise plus la modification des informations (text au lieu de champs de texte).
  10. Affectation des acteurs : Seul un employé sera à présent autorisé à valider une demande.
    • Création des acteurs : userXP, administration, Organisation, Utilisateurs
    • Association des acteurs aux tâches [L'acteur "victor" est à présent seul autorisé à valider.]
    • Exécuter [A présent à la fin de la saisie, il faut se reconnecter pour jouer le rôle d'un employé du système (deconnexion).] [ En se connectant en tant qu'un employé, le nouveau formulaire apparaît.]
  11. Utilisation de tâches envoi et réception de messages pour la gestion des fraudes.
    • Définir un sous-processus (nouvelle pool) commençant par une tâche réception de message
    • Analyser le nom reçu (tâche Analyser) puis terminer (Il s'agit d'un simple exercice pédagogique).
    • Ajouter une tâche d'envoi de message pour la détection de fraude au cas où la demande n'a pas été validée. Pensez à passer le nom en paramètre du message.
  12. Vous pouvez faire le même exercice en utilisant en réception un évènement
  13. Ajouter une boucle dans la tâche Analyser qui se termine uniquement si le nom est validé (ajouter une variable validé) …
Ce qui précède, vous a donné les bases pour construire un processus plus important. Vous pouvez faire l'exercice suivant qui continue à vous guider, ou passer directement à l'étude du projet fil rouge.

Modélisation du processus

Initialisation

  1. Nouveau (en haut à gauche)
  2. Modifier le nom du BP (Attention à ne pas avoir sélectionner “la pool”

Modélisation des tâches

  1. Le processus commence par la soumission d'une commande. Renommer la tâche initiale de début en “Soumettre commande”.
  2. Renommer la tâche créée pour qu'elle corresponde à l'étude de la commande par un employé (Analyse).
  3. Ajouter la tâche correspondant à Payer qui est encore une tâche “humaine”
  4. Les tâches Reserver, Préparer, Enregistrer, et Envoyer Mail sont des tâches correspondant à un “Service”

Définir les transitions et terminaison

  1. Une fois, le paiement effectué (Payer), la commande est préparée (Préparer) puis enregistrée (Enregistrer) : dessiner les transactions correspondantes.
  2. Le passage de Analyser à Envoyer un mail est conditionnée. Pour cela, nous allons ajouter un “gateway” de type ou exclusif.
  3. Valider et Payer se font en “même” temps, nous ajoutons un “gateway” AND.
  4. La préparation ne se fera que lorsque les deux tâches précentes seront terminées, nous ajoutons un nouveau gateway mais en sortie.
  5. Terminer le processus principal par un évènement d'arrêt.

Sous-processus

La préparation de la commande consiste à :

  1. sélectionner le fichier correspondant à la musique
  2. Ajouter un fichier Readme
  3. Assembler le tout et en faire une archive

Pour cela nous allons définir un sous-processus.

  1. Créer une nouvelle pool
  2. La renommer
  3. Puis ajouter les tâches de début, Sélectionner, Ajouter Readme et Archiver et fin.
  4. Modifier à présent le type de l'activité Préparer en une activité “call” ou “appelante”
  5. Préciser le sous-processus appelé en le sélectionnant sous “nom”

Acteurs et affectation des tâches

Nous avons deux types d'acteurs : les internautes et les employés. Pour leur affecter des tâches, nous allons définir des lanes.

L'une correspond à “un” internaute, l'autre aux employés.

Vous pouvez choisir de n'affecter qu'un individu à une tâche.

Définition du processus

Affectation des acteurs

  1. L'acteur correspondant à l'internaute est celui qui déclenche le processus. Il est l'initiateur du processus.
  2. Les acteurs qui peuvent traiter la commande forme un groupe. Pour cela, nous les définissons à présent manuellement

Définition des données

Voici les données attendues par l'internaute : - son adresse email - la référence de la musique sélectionnée - le numéro de carte de credit et la date d'expiration

L'acceptation ou non d'une commande sera également enregistrée sous la forme d'une variable.

Ces variables sont utiles dans l'ensemble du processus.

- Définir ces variables en sélectionnant le pool principal puis données.

Définition des conditions

Définition du comportement : ajout de connecteurs

Vous pouvez utiliser des variables dans le message.

Vers l'application

Tester l'exécution

Puisque nous n'avons pas défini tous les éléments, des formulaires par défaut s'appliquent.

Nous allons à présent particulariser les formulaires.

Définition des formulaires

  1. Formulaire de saisie de la commande
    • Sélectionner le pool principal
    • Puis Application, puis page de saisie, pageflow, ajouter,
    • Mettre à jour le formulaire
  2. Formulaire de validation
    • Sélectionner la tâche : Analyser la commande
    • Seule la validation n'est pas en read-only
  3. Formulaire de paiement : deux pages
    • Creer une page avec nom et email
    • Créer une nouvelle page pour saisir identifiant et date d'expiration
    • Modifier le type du bouton du premier formulaire pour référencer la page suivante

Définition des acteurs

  1. Sélectionner “User XP” en haut
  2. Administration (en haut à droite)
  3. Utilisateurs
  4. Ajouter les utilisateurs employés que vous aviez prévu.

Exécuter

  1. Sélectionner le bouton en haut Lancer
  2. Vous êtes alors connecté automatiquement comme un admin (mdp : bpm)
  3. Déconnexion
  4. Connectez-vous comme un des employés, le formulaire de validation apparaît :
  5. Déconnexion, puis reconnection comme adminn et paiement.

Exécuter comme User XP

Travail sur le projet Tutoré

  1. Identification du BP à étudier
  2. Sélection de l'étude à mener par groupe de 3

Evaluation

A rendre pour

sur la forge :
  1. Le BP que vous avez choisi de modéliser