AUTOMATISATION DES PROCESSUS Présentation de BONITA BPM Cas Père Noël Partie 2 : Automatisation des processus - S. Bailly, V. Couturier – IUT Annecy
INTRODUCTION
Objectifs de l’automatisation des processus Pour l’informaticien et/ou gestionnaire : Avoir une intégration avec les autres briques du SI => logique de connecteurs Suivre et gérer les processus au fur et à mesure qu’ils s’opèrent Exploiter les résultats afin d’effectuer un pilotage des processus en temps réel Simuler et optimiser les processus avant leur déploiement Permettre d'exécuter des processus comprenant des activités humaines et automatisées Obtenir des indicateurs clés de performance (KPI) relatifs à l’exécution des processus (durée moyenne de réalisation, etc.) Pour l'employé : Etre guidé dans son travail Ne pas courir après les documents/les personnes (dématérialisation) Centraliser les informations Eviter certaines erreurs de saisie et oubli d’actions à réaliser Optimiser son temps de travail
Comment automatiser ? En utilisant des logiciels dédiés appelés Business Process Management Solutions (BPMS). Disposent des fonctionnalités suivantes : Atelier de modélisation et simulation de processus Connecteurs permettant une interaction avec le SI : Exemples : Connecteurs de bases de données permettant de récupérer / mettre à jour les données de bases utilisées dans le processus Connecteurs mails permettant d’envoyer des mails automatiques aux acteurs du processus Etc. Interfaces (pages web) Générées (pas de programmation PHP, etc.) Permettent de valider le fait qu’un traitement a été fait ou de saisir des informations (formulaires web) Portail web d’utilisation et d’administration du processus Gestion des utilisateurs du processus et de leurs droits Synchronisation de l’organisation et des membres au portail
Solutions BPM : Bonitasoft Bonita BPM (licence commerciale ou libre) Bizagi (licence commerciale) Alfresco Activiti (libre) Agilium (licence commerciale) W4 BPMN+ (licence commerciale) jBPM (libre) IBM Smarter Process (licence commerciale) Oracle BPM Suite (licence commerciale) Etc.
BONITA BPM
Bonita BPM : particularités Diagrammes couverts : Diagrammes de processus : Uniquement diagrammes de processus privés (car pas de flux de message possibles entre pool) Pas de représentation des Data Object, mais gestion interne des documents Diagrammes de collaboration : Pas de flux de message => Utiliser des tâches d’envoi de message en remplacement Automatisation des processus Nombre important de connecteurs Exportation des diagrammes au format BPMN 2.0 Logiciel communautaire ou payant 2 outils : Bonita BPM Studio : outil de modélisation & automatisation du processus Bonita BPM Portal : interface utilisateur du processus (portail web)
Le plus de Bonita BPM : capacité d’intégration Nombreux connecteurs : SGBD : Oracle, PostgreSQL, mySQL, etc. Progiciels : SAP, SalesForce, etc. Mails, etc. Permettent de faire le lien avec les autres briques du Système d’Information.
BONITA BPM STUDIO
Bonita BPM Studio Pour la concepteur/développeur Concevoir/modéliser le processus d’après la norme BPMN 2.0 Automatiser le processus : Créer des formulaires (saisie de données, validation, etc.) Connecter le processus avec le SI de l’organisation (utilisation des connecteurs) Intégrer les groupes et utilisateurs de l’organisation (non présenté dans ce cours) Tester le processus avant sa mise en production
Interface graphique de modélisation Propriétés des objets sélectionnés Bonita BPM Studio Interface graphique de modélisation Symboles BPMN Propriétés des objets sélectionnés
Petit quiz Bonita BPM utilise la plupart des symboles BPMN : Gateways Events Flow Pool & lane(s) Task
DEVELOPPEMENT SOUS BONITA BPM STUDIO
Principes Concevoir le processus dans BONITA BPM STUDIO Définir les données (variables) utilisées / modifiées par le processus Variables simples / Variables structurées (objets) Variables globales / locales / de formulaire Connecter le processus aux applications de l’organisation, aux serveurs de messagerie, etc. Nécessite du code pour, par exemple, stocker les données récupérées d’une BD via un connecteur dans une variable de Bonita (définie en 2). Créer les formulaires WEB (des tâches humaines) De saisie des informations De validation des tâches (automatiquement générés) Nécessite du code…
Les données = Variables Sont typées Peuvent être déclarées à différents niveaux dans le processus (métier, globale, locale, formulaire) Une donnée déclarée dans un niveau est accessible dans les niveaux inferieurs Sont centrales dans le processus : elles sont utilisées dans les conditions de transition (gateways) les connecteurs les formulaires Correspondent à des types java (simples ou objet) : Types "simples" : Boolean, Integer, Long, Double, Date, String Types complexes : Document (pour gérer les fichiers), Objet Java (dérivé de java.lang.Object)
Objet Java Le concepteur peut/doit gérer ses propres objets métier Java (variables structurées) Exemples : objets métier / classes Commande, Produit, Acheteur, etc. Peuvent être importés depuis un fichier JAR Objets doivent être sérializables pour être utilisables dans BONITA BPM STUDIO => implémentent l’interface java.io.Serializable
Donnée globale (niveau processus) Une donnée globale est accessible partout dans le processus (pool). Source : BonitaSoft
Donnée locale (niveau tâche) Une donnée locale est accessible uniquement dans l'activité ou dans ses transitions de sortie. Source : BonitaSoft
Donnée formulaire (niveau formulaire) Accessible uniquement dans le formulaire Peut être initialisée par un connecteur N’est pas persistante => n’est pas sauvegardée dans la base de données interne à Bonita Source : BonitaSoft
Connecteurs Permettent de communiquer avec les systèmes externes du SI Possèdent une définition et une ou plusieurs implémentation(s) La définition est la structure L’implémentation est son code Les deux éléments ont une version Sont développés en java Nombreux connecteurs déjà développés et fournis par BONITA Sont représentés par une « prise » sur le modèle
Connecteurs On peut ajouter un connecteur : en début de tâche (ex. : pour récupérer des données d’une application et les stocker dans une variable) en fin de tâche (ex. : pour mettre à jour les données d’une application, envoyer un mail, etc.) dans un formulaire d’une tâche humaine : Au chargement du formulaire Sur le bouton « Soumettre » Sur une « dépendance » (ex. : alimentation d’un menu déroulant par rapport à la valeur d’un autre champ) Sur les données d’un champ On peut ajouter un connecteur de deux façons : cliquer sur l’icône : cliquer sur l’onglet « Connecteurs »
Connecteurs Types de connecteurs :
Formulaire Utilisables dans les tâches humaines. Composé de widgets.
Les widgets Les plus utiles : Checkbox (case à cocher) Calendar (date) Select (zone de liste déroulante) Foobar (boîte de suggestion) Textfield (champ texte) TextArea (zone de texte) Button (bouton) File (fichier) Group (groupe), disponible uniquement dans les versions payantes
Onglets les plus importants des champs texte (Foobar, TextField, Select) Onglet « Validateurs » pour définir des contraintes de saisie : Onglet « Données » pour définir les valeurs (entrée, sortie) : Valeur affichée Mise à jour d’une variable en fonction de la valeur saisie
Onglets les plus importants des boutons (Button)
Onglets les plus importants des boutons Mise à jour d’une variable à la soumission du formulaire (clic sur le bouton soumettre) Exécution d’un connecteur (MaJ des données d’une BD par ex.) à la soumission du formulaire (clic sur le bouton soumettre)
Expression / code Pour ajouter une expression cliquer sur le crayon ( ), permettant de lancer l’éditeur d’expression Une expression peut intégrer (type d’expression) : Une variable Une constante La valeur d’un champ de formulaire Un appel de méthode java sur une variable objet Java Un script Groovy
Méthode java Type d’expression Objet Java Méthode appelée de l’objet Java
Script Groovy Groovy est un langage de programmation orienté objet destiné à la plate-forme Java Constitue une alternative au langage Java pour cette plate-forme et est inspiré de Python, Ruby et Smalltalk Utilisé dans Bonita quand l’utilisation d’une méthode Java n’est pas suffisante : écriture de conditions/boucles, manipulation des valeurs retournées par un connecteur, etc. Manipule des objets Java internes à Bonita (variables du moteur) ou créés par le développeur (objets métier Java utilisés dans le processus)
BONITA BPM PORTAL
Bonita Portal pour les utilisateurs Partie visible par l’utilisateur Endroit unique où est effectué le travail (tâches humaines) Interface sécurisée (nécessite une connexion) Accès seulement aux processus qui concernent l’utilisateur Traçabilité des instanciations d’un processus Fonctionne aussi sur mobile
Liens entre Studio et Portal 1 ou plusieurs formulaire(s) 1 tâche humaine
Liens entre Studio et Portal Exécution du processus tâche après tâche : visibilité uniquement de la tâche à effectuer à l’instant t Processus global Nécessité de cliquer sur le nom de la tâche humaine pour l’effectuer
BIBLIOGRAPHIE
Présentation de Rodrigue Le Gall sur Bonita BPM Documentation Bonita BPM : http://documentation.bonitasoft.com/