Mémo Workflow
🔗

Mémo Workflow

Préambule

Ce document présente le fonctionnement des workflows Camunda® de validation dans Project MonitorProject Monitor et Perf MonitorPerf Monitor, du point de vue utilisateur et du point de vue conception. Il s’adresse aux consultants qui doivent mettre en place des workflows de validation dans l’application. Camunda® est disponible depuis la V6.5.2.

Convention de rédaction

Terme
Description
PM
PeM
Perf Monitor
WF
Workflow – Process
Fichier JPDL
Fichier “text” contenant le code d’un workflow de validation chargé dans Project MonitorProject Monitor afin de pouvoir être utilisé par l’application. Ce fichier a pour extension *.jpdl.xml
Fichier BPMN
Fichier créé à partir du modeler Camunda® contenant le code d’un workflow de validation, chargé dans Project MonitorProject Monitor afin de pouvoir être utilisé par l’application. Ce fichier a pour extension *.bpmn
API
Application Programming Interface
REST
Representation State Transfer
HTTP
HyperText Transfer Protocol

Définition de

Principe d’architecture

Le nouveau moteur de workflow Camunda® propose de définir les workflows selon le standard BPMN (Business Process Model and Notation).

Il s’appuie sur l’utilisation des webservices.

Les API que l’on peut appeler dans le modeler Camunda® sont répertoriées dans la page Mémo WebservicesMémo Webservices selon les standards suivants :

  • le principe d’architecture REST (Representational State Transfer),
  • le protocole HTTP (Hyper Text Transfer Protocol),
  • le format de données JSON (JavaScript Object Notation).

Outils de test

Afin de s’assurer que chaque webservice utilisé dans le modeler Camunda® est juste, il est nécessaire de tester les requêtes au préalable.

Pour se faire plusieurs outils de type API REST :

  • Rest Client (Mozilla Firefox ®)
  • Postman

Informations générales

Architecture technique

Pour envisager de migrer un environnement client sur le nouveau moteur de Workflow Camunda®, il est nécessaire de déployer Camunda® sur le serveur applicatif.

⏲ La procédure de déploiement est en cours de rédaction !

Modeler Camunda®

Il est nécessaire de disposer du modeler de Camunda® pour générer les fichiers bpmn 👇

https://camunda.com/download/modeler/

Workflow Camunda®

Camunda® vs JPDL

Camunda® permet de reprendre la quasi totalité des actions de workflow existantes dans Project MonitorProject Monitor à ce jour.

Ce qui va conditionner la possibilité d’activer ou non l’add-on chez un client existant est :

  • Le mode d’hébergement SaaS / On premise
  • Le périmètre fonctionnel du workflow JPDL
Action
Description
JPDL
Camunda®
Déclencher
Automatique sur modif statut
Manuel sur action user
Mettre à jour 
Le statut objet planning
Les valeurs d'attribut
Le statut Projet
Le statut document
Notifier
Envoyer les tâches par email
Conditionner
Vérifier la planification budget
Validation multiple 
Condition de plusieurs facteurs "si phase en statut ET tâche refusée, alors..."
Visualiser
Le workflow
Les avancements des instances

PM avec Camunda®

Principes du workflow dans Project MonitorProject Monitor

Les principes du workflow Project MonitorProject Monitor ne changent pas fondamentalement, la migration vers Camunda® a été pensée de manière ISO à JPDL.

  • Aussi, le workflow se déclenche sur le statut de projet, le statut de document ou manuellement.
  • Il est hérité du gabarit de création du projet.
  • Il avance par validation de tâche.

Selon les webservices publics, il sera même possible d’ajouter des actions à ce jour inexistantes dans JPDL, comme la création de nouveaux objets dans le projet par exemple.

Paramétrage préalable

Activation Add-on

L’activation de l’add-on se fait au niveau MM > Plateformes.

Dans la liste des add-ons, activer l’add-on Workflow.

⚠️
Il faut avoir modélisé l’ensemble des WF Camunda® avant d’activer l’add-on car l’activation de l’add-on désactive le WF JPDL.

Utilisateur technique

Pour que Camunda® et Project MonitorProject Monitor puissent fonctionner, il faut créer un utilisateur technique avec les droits suffisants sur les actions de WF à mener.

Il est par conséquent nécessaire d’attribuer à l’utilisateur un rôle général avec des droits étendus.

Concordance des codes

Il est nécessaire pour assurer que le WF soit compatible avec Project MonitorProject Monitor que les codes utilisés dans les webservices correspondent à ceux de Project MonitorProject Monitor :

  • Code Rôle
  • Code valeur de liste statut tâche
  • Code valeur de liste type de tâche
  • Code valeur de liste statut projet/jalon/phase
  • ...

Les actions workflow Camunda®

Le fichier de workflow de Camunda® doit être créé dans le modeler Camunda®.

Chaque WF doit contenir au minimum :

  • un event start,
  • une task,
  • un event end.

Chaque étape du WF est liée à l’étape suivante par un “flow”.

Structure du modeler

Le modeler de Camunda® est constitué de :

  1. Action de WF
  2. Schéma
  3. Panneau de propriétés

Seuls les boutons d’action suivant sont utilisables en v6.5.2 :

  • Event start
  • Flow
  • Task
  • Gateway
image

Créer un fichier BPMN

🚦
Cette action nécessite un paramétrage.

Pour créer un nouveau fichier de workflow, deux solutions :

  • Créer un nouveau fichier et cliquer sur le bouton BPMN diagram (Camunda Platform):
  • Utiliser un fichier BPMN existant ci-dessous 👇 en l’ouvrant depuis Fichier > Ouvrir fichier
  • demo1.bpmn13.0KB

    Lors de la création du fichier BPMN, le panel de properties est accessible sur la droite.

    Il faut renseigner les éléments structurants suivants qui seront ensuite repris dans Project MonitorProject Monitor :

    Camunda®
    id
    code
    Name
    Libellé

Le nom du fichier BPMN à la sauvegarde n’est pas une entrée essentielle car non reprise dans Project MonitorProject Monitor.

En revanche, elle permet de gérer les versions dans votre environnement en développement.

Lors de l’import d’un WF, c’est l’id qui permet d’identifier s’il s’agit d’un nouveau WF ou d’une nouvelle version de WF.

image

Créer une action

Les actions sont créées par Drag&Drop.

Il suffit de saisir une action dans le menu et de cliquer glisser dans la zone “schéma”.

Idéalement on procédera en deux étapes :

  • Modélisation du WF dans son intégralité
  • Paramétrage de chaque action

Une fois glissée dans le schéma, chaque action disposera de son propre menu de paramétrage 👉

Au clic sur la clé, le menu s’affiche et permet de déterminer la nature de l’action.

Le panel “properties” s’ouvre pour réaliser le paramétrage.

Chaque paramétrage d’action est détaillé ci-dessous.

image
image

Créer un “event start”

Cette action ne nécessite aucun paramétrage.

Chaque WF doit commencer par un évènement. Il est donc nécessaire de créer un Event start 👉

image

Créer une “task”

🚦
Cette action nécessite un paramétrage.

Le principe du WF de Project MonitorProject Monitor est de travailler avec des tâches de WF, aussi il est nécessaire de matérialiser chaque étape à valider par une Task 👉

Il existe plusieurs types de tâche :

  • Les tâches de WS Service task
  • Les tâches user User task
image

Service task

🚦
Le paramétrage est essentiel et DOIT respecter les paramètres et leur casse.

Le service task crée la tâche de WF Project MonitorProject Monitor.

Elle se matérialise par l’icône roue crantée.

Elle utilise dans le panel properties les webservices et les variables de WF.

General

Id
Id de la tâche
Name
Nom de la tâche
Implementation
Connector

Connector

Nom de la variable
Variable assignment type
Variable assignment value
Valeur
Connector id
http-connector
String or Expression
#NA
Input parameters
headers
Map
Accept
application/json
Content-type
application/json
X-PM-API-ID (remplace X-PM-API-LOGIN
user id
X-PM-API-PASSWORD
user pw
method
String or Expression
POST
url
String or Expression
url
payload
String or Expression
BeanTacheEntree
Voir liste de variables
image
image
image

Liste des variables Payload

Les variables suivantes sont appelées dans le payload (webservice) pour exécuter les tâches de WF sur le projet et l’instance de WF du projet :

  • "projet": { "id": #{execution.getVariable('projectId')}} —> récupère l’id projet de l’instance en cours
  • "idInstance":"#{execution.getProcessInstanceId()}” —> récupère l’id de l’instance de WF
  • "id": #{execution.getVariable('documentId')} —> récupère l’id document de l’instance en cours
  • "idWorkflow":"validation_statut_tache1” —> définit la user task en attente de l’exécution de la tâche
  • #{statusCode=='CODE_STATUT_TACHE'}
  • #{execution.getVariable('projectLabel')} —>récupère le libellé du projet
  • "code" : "CODE-DONNE-POUR-LA-TACHE" —> Permet de déterminer un code pour la tâche
  • "parent" : {"code":"CODE-DONNE-POUR-LA-TACHE-PARENTE"} —>Permet de rattacher une tâche à une tâche parente
  • "listeRolesParticipants" : ["ARBITRE_DEMANDE","ROLE_CONTRIBUTEUR"] —> Permet de définir une liste de code rôle (exemple : pouvoir notifier plusieurs rôles et participants sur une tâche)
  • #{execution.getVariable('userCamundaId')} —> Récupère l’id de l’utilisateur qui exécutera le processus (à renseigner dans le header X-PM-API-ID)
  • #{execution.getVariable('codeVar1')} —> Permet de récupérer une variable via Project MonitorProject Monitor (par exemple le code d’un gabarit à appliquer)

Liste des variables URL :

  • #{execution.getVariable('projectId')}/attributes/CODEATTRIBUT —> Permet de récupérer la valeur d’un attribut dans Camunda
  • http://localhost:#{execution.getVariable('port')}/monitorupgrade/tasks —> Permet d’exécuter le workflow depuis n’importe quel port (autre que le 8080)
  • http://localhost:#{execution.getVariable('port')}/monitorupgrade/tasks/parent/#{execution.getVariable('objectId')}/status/#{execution.getVariable('codeVar1')} —> Permet de récupérer l’ID d’une tâche parente (#{execution.getVariable('objectId')}) et de lui appliquer le statut paramétré dans l’automatisation (#{execution.getVariable('codeVar1')})

Connector outputs d’une service task

Il est possible de configurer des “connector outputs” au sein d’une service task afin de recevoir des messages d’information ou d’erreur à l’exécution du web service présent dans un processus dans Project MonitorProject Monitor. Voici le paramétrage à appliquer sur chaque service task :

Process variable name
Assignment type
Format
Type
Script
errorLabel
Script
JavaScript
Inline script
var statusCode = connector.getVariable('statusCode'); if (statusCode >= 400) { var response = JSON.parse(connector.getVariable('response')); if (response.message) { response.message; } else if (response.error) { response.error; } else if (response[0] && response[0].beanWsErreur && response[0].beanWsErreur.message) { response[0].beanWsErreur.message; } }
infosLabel
Script
JavaScript
Inline script
var headers = connector.getVariable('headers'); if (headers.get('X-Context-Info')) { headers.get('X-Context-Info'); }
warningsLabel
Script
JavaScript
Inline script
var headers = connector.getVariable('headers'); if (headers.get('X-Context-Warning')) { headers.get('X-Context-Warning'); }
taskId (uniquement dans une service task de type création de tâche
Script
JavaScript
Inline script
var response = JSON.parse(connector.getVariable('response')); response[0].beanWsItem.id;
image

User task

Cette action ne nécessite pas de paramétrage

Le user task définit le paramètre d’écoute de la tâche, la plupart du temps le statut tâche et permet l’avancement du WF dans Project MonitorProject Monitor.

Elle se matérialise par l’icône User.

Une tâche user task est toujours précédée d’une service task.

image

Créer un “flow”

🚦
Cette action peut porter du paramétrage lorsque c’est nécessaire.

L’évènement flow sert à modéliser le chemin du process d’un évènement à un autre 👉

image

Lorsque le flow porte une décision de WF, il est nécessaire de paramétrer le statut écouté.

General

id
id
Name
Nom
Condition type
Expression
Expression
#{statusCode=='STATUT_TACHE_REFUSEE'}
image

Créer une “gateway”

Cette action ne nécessite pas de paramétrage.

Une gateway permet de créer plusieurs chemin de WF.

Deux types de gateway en V6.5.2 fonctionnent correctement :

  • Exclusive gateway

Une gateway exclusive permet de déterminer de plusieurs chemins indépendants qui mèneront chacun vers une fin de WF.

image
  • Parallel gateway

Une gateway parallèle permet de créer plusieurs évènements ou tâches en parallèle et qui se rejoignent vers un event end commun.

image

Créer un “event end”

Cette action ne nécessite pas de paramétrage.

Chaque flow du processus décrit doit finir par un event end.

image

Sauvegarder le fichier de WF

Le nom de fichier sert à identifier les versions de WF, mais n’est pas utilisé par ailleurs dans Project MonitorProject Monitor.

Configurer les propriétés d’un fichier de workflow ou d’automatisation

À la création d’un fichier BPMN, il faut indiquer s’il sera utilisé comme un workflow ou une automatisation dans Project MonitorProject Monitor. Il faut modifier les propriétés du fichier BPMN dans un éditeur de texte (Notepad par exemple) ou via la fonction afficher au format XML dans Camunda®.

Sur la ligne 2, rechercher la valeur targetNameSpace et indiquer les variables suivantes en fonction du fichier BPMN paramétré :

  • targetNamespace="auto" le fichier est un fichier d’automatisation
  • targetNamespace="bpmn" → le fichier est un fichier de workflow
image

Si le processus doit s’exécuter sur un type de déclencheur particulier, il est possible d’ajouter des extension properties au sein du fichier BPMN global. Il sera demandé de renseigner un nom et une valeur :

image

Voici toutes les options possibles d’éléments déclencheurs :

Name
Value
Description
forManual
true
Déclenchement manuel uniquement
forProject
true
Déclenchement sur statut projet uniquement
forDocument
true
Déclenchement sur statut document uniquement
forTask
true
Déclenchement sur statut tâche uniquement
forTask-metastatus
terminated
Déclenchement sur statut tâche au méta-statut terminé uniquement
forPhase
true
Déclenchement sur statut phase uniquement
forMilestone
true
Déclenchement sur statut jalon uniquement
forAttribute
true
Déclenchement sur valeur d’attribut uniquement
💡
Si aucune de ces extension properties n’est renseignée, alors le fichier BPMN s’exécutera sur tous les types de déclencheurs disponibles.

Pour que le code variable ne soit plus renseigné manuellement dans Project MonitorProject Monitor, il est possible d’indiquer à Camunda® quel est l’élément concerné par la variable et quelle liste de valeur afficher.

Il suffit d’ajouter de nouvelles extension properties au sein du fichier BPMN :

Name
Value
Description
codeVar1-objectDefinedType
code du thème à renseigner
Permet d’indiquer quel type d’attribut sera utilisé en tant que variable dans le paramétrage du processus (TACHE, PHASE, PROJET)
codeVar1-attributeListCode
code de l’attribut à renseigner
Permet d'indiquer quel attribut sera utilisé dans la variable de paramétrage du processus. La liste associée à l’attribut s’affichera alors dans la propriété “objet unique”
codeVar1-objectType
code de l’élément à renseigner
Permet d’indiquer quel objet sera utilisé en tant que variable dans le paramétrage du processus et permet de saisir le libellé de l’objet directement dans le paramétrage (GABARIT_PROJET pour afficher la liste des gabarits et rechercher dans la liste des gabarits projet)
codeVar1-permission
code du droit à renseigner
Permet de vérifier si l’utilisateur qui paramètre le processus dispose des droits pour consulter la liste affichée en variable (la liste des gabarits projet par exemple) tout en prenant en compte les droits de cloisonnement sur la plateforme

Exemple 1 :

L’automatisation Modifier le statut des tâches au changement du statut de phase/jalon est paramétrée comme suit :

  • targetNamespace=”auto” (propriété présente dans la version XML du fichier BPMN)
  • Extension properties :
    • forMilestone = true
    • forPhase = true
    • codeVar1-objectDefinedType = TACHE
    • codeVar1-attributeListCode = ETAT
image

Ce qui veut dire que le fichier est une automatisation (targetNamespace=”auto”), qu’il ne peut se déclencher que sur le statut phase ou jalon (forMilestone et forPhase) et que la variable utilisée dans la propriété “objet unique” se basera sur un attribut de tâche (codeVar1-objectDefinedType = TACHE), qui porte le code ETAT, affichant ainsi la liste associée étant le statut tâche (codeVar1-attributeListCode = ETAT) :

image

Exemple 2 :

L’automatisation “Appliquer un gabarit” est paramétrée comme suit :

  • targetNamespace=”auto” (propriété présente dans la version XML du fichier BPMN)
  • Extension properties :
    • codeVar1-objectType = GABARIT_PROJET
    • codeVar1-permission = ACT_UTILISER_GABARIT_PROJET
image

Ce qui veut dire que le fichier est une automatisation (targetNamespace=”auto”), qu’il peut s’exécuter sur tous les déclencheurs disponibles, que la variable utilisée dans la propriété “objet unique” se basera sur la liste des gabarits de projet (codeVar1-objectType = GABARIT_PROJET) et vérifiera que l’utilisateur qui paramètrera l’automatisation possède bien le droit Utilisation de gabarits dans les projetsUtilisation de gabarits dans les projets tout en respectant le paramétrage de cloisonnement sur la plateforme (codeVar1-permission = ACT_UTILISER_GABARIT_PROJET) :

image

Créer un workflow conditionné : le cas Appliquer un gabarit

Il est possible de conditionner l’exécution de certains web services paramétrés dans un fichier BPMN via un tableau de décision, configurable dans un fichier DMN (Decision Model and Notation). Un fichier DMN présente un tableau permettant de modéliser des prises de décision et des règles métier via le langage FEEL (Friendly Enough Expression Language), basé sur la création d’expression au lieu de code spécifique.

Pour créer un workflow conditionné, il faudra avoir a minima une business rule task, des flows conditionnés et créer un fichier DMN en plus du fichier BPMN représentant le workflow.

Dans l’exemple ci-dessous, un gabarit sera appliqué en fonction des informations récupérées sur le projet (informations des attributs budget et ressource) :

image

Créer une service task pour récupérer les informations projet

🚦
Le paramétrage est essentiel et DOIT respecter les paramètres.

Créer une service task permet de récupérer une information d’un attribut projet. Si l’instance décisionnelle doit récupérer plusieurs informations, créer autant de service task qu’il y a d’informations à récupérer. Ces service task doivent être positionnées soit successivement, soit entre deux parallel gateway.

image

General

Id
Id de la service task
Name
Nom de la service task

Implementation

Type
Connector
Connector ID
http-connector

Connector inputs

Nom de la variable
Variable assignment type
Variable assignment value
Valeur
headers
Map
Accept
application/json
Content-type
application/json
X-PM-API-ID
user id
method
String or Expression
GET
url
String or Expression
url

Connector outputs (sera utilisé dans le fichier DMN)

Process variable name
Nom de la variable (dans l’exemple budget_value et ressource_value)
Assignment type
Script
Format
JavaScript
Type
Inline script
Script
var response = JSON.parse(connector.getVariable('response')); response;

Créer une business rule task

🚦
Le paramétrage est essentiel et DOIT respecter les paramètres.

La business rule task récupère les informations de décision et règles métier présentes dans le fichier DMN pour exécuter la bonne décision dans le processus.

Elle se matérialise par l’icône tableau.

image

General

Id
Id de la business rule task
Name
Nom de la business rule task

Output (pour renvoyer une erreur s’il n’y a pas de décision trouvée)

Process variable name
errorCode
Assignment type
String or expression
Expression
#{execution.getVariable('result')==null?'ERR_WORKFLOW_NO_DECISION':null}

Implementation

Type
DMN
Decision reference
ID de la decision
Binding
Latest
Tenant ID
Result variable
result
Map decision result
Sélectionner la méthode de résultat à appliquer
image

Créer un “flow” décisionnel

🚦
Le paramétrage est essentiel et DOIT respecter les paramètres.

L’événement flow décisionnel sert à modéliser le chemin du process d’un événement à un autre en fonction du résultat trouvé dans un tableau décisionnel. Cela permet d’indiquer en cas de résultat nul ou non nul, le chemin à prendre pour continuer le workflow.

image
id
id
Name
Nom
Condition type
Expression
Expression pour résultat non nul
#{execution.getVariable('result')!=null}
Expression pour résultat nul
#{execution.getVariable('result')==null}

Dans l’exemple ci-contre, le workflow appliquera le gabarit si tous les paramètres récupérés sont réunis pour exécuter une décision. Si les paramètres récupérés ne permettent pas d’exécuter une décision, alors le workflow prend fin.

image

Créer une service task pour exécuter la décision

🚦
Le paramétrage est essentiel et DOIT respecter les paramètres.

General

Id
Id de la service task
Name
Nom de la service task

Implementation

Type
Connector
Connector ID
http-connector
image

Connector inputs

Nom de la variable
Variable assignment type
Variable assignment value
Valeur
headers
Map
Accept
application/json
Content-type
application/json
X-PM-API-ID
user id
method
String or Expression
POST
payload
String or Expression
BeanTacheEntree
{ "projet": { "id": #{execution.getVariable('projectId')}}, "template": {"code": "#{execution.getVariable('result').get('apply_template')}"}, "insert": false }
url
String or Expression
url

Connector outputs

Process variable name
Assignment type
Format
Type
Script
errorLabel
Script
JavaScript
Inline script
var statusCode = connector.getVariable('statusCode');if (statusCode >= 400) {var response = JSON.parse(connector.getVariable('response'));if (response.message) {response.message;} else if (response.error) {response.error;} else if (response[0] && response[0].beanWsErreur && response[0].beanWsErreur.message) {response[0].beanWsErreur.message;}}
var statusCode = connector.getVariable('statusCode'); if (statusCode >= 400) { var response = JSON.parse(connector.getVariable('response')); if (response.message) { response.message; } else if (response.error) { response.error; } else if (response[0] && response[0].beanWsErreur && response[0].beanWsErreur.message) { response[0].beanWsErreur.message; } }
infosLabel
Script
JavaScript
Inline script
var headers = connector.getVariable('headers');if (headers.get('X-Context-Info')) {headers.get('X-Context-Info');}
warningsLabel
Script
JavaScript
Inline script
var headers = connector.getVariable('headers');if (headers.get('X-Context-Warning')) {headers.get('X-Context-Warning');}

Créer un fichier DMN

Créer un fichier DMN permet de configurer un tableau de décisions à exécuter en fonction des règles établies.

Un fichier DMN a forcément un nom et un ID. Dans notre exemple, le fichier DMN va analyser les informations récupérées en amont des attributs budget et ressource pour vérifier s’il y a une règle qui répond à une décision à exécuter :

  • Le gabarit “Projet standard” sera appliqué sur le projet en instance de workflow si le budget est supérieur à 50000€ et les ressources supérieures à 150 j/h
  • Le gabarit “Cycle en V” sera appliqué sur le projet en instance de workflow si le budget est inférieur ou égal à 50000€ et les ressources inférieures ou égales à 150j/h
  • Le workflow se terminera si aucune décision n’est trouvée (flow conditionnés sur le fichier BPMN)
image

Dans le cas de récupération de valeur d’attribut numérique, il faut paramétrer les colonnes du tableau de la manière suivante :

Expression
Reprendre le libellé du processus variable name du connector output de la service task de récupération de la valeur d’attribut (budget_value ou ressource_value)
Expression language
feel
Input variable
N/A
Type
double

Pour la définition de la décision à exécuter, voici le paramétrage :

Output name
Reprendre le code indiqué dans le payload de la service task exécutant la décision (apply_template)
Type
string

Fonctionnement dans Project MonitorProject Monitor

Une fois réalisée la modélisation du process dans le modeler Camunda®, il est possible de le charger dans Project MonitorProject Monitor.

Toutefois, il est nécessaire de s’assurer que l’add-on a été activé.

Activation de l’Add-on

L’activation de l’Add-on se fait au niveau MM, connecté en savirage.

Dès que l’add-on est activé, plusieurs conséquences sont effectives dans Project MonitorProject Monitor :

JPDL
Camunda®
La carte est libellée “déprécié”
La carte apparaît et est libellée “Workflow”
Il n’est plus possible de charger des fichiers JPDL en admin
Il est possible de charger les fichiers BPMN en admin
Les WF en cours pourront se terminer
Il sera nécessaire d’associer les WF Camunda avec les gabarits existants
Il ne sera plus possible d’associer les WF JPDL avec les gabarits
Les WF jpdl resteront associés aux gabarits existants, il faudra les supprimer dès upload et association des fichiers BPMN existants

Proposition de check list avant activation de l’add-on :

Client en SaaS
Client sans WF ou avec WF “simple” (sans condition et contrôle)
Récupération des fichiers JPDL et Liste des gabarits auxquels ils sont associés
Modélisation des WF avec le modeler Camunda®
Activation de l’add-on
Création de l’utilisateur technique
Upload des WF Camunda®
Association des WF Camunda® aux gabarits
Suppression des anciens WF JPDL existants si besoin

Upload WF

L’administration des WF se fait de la même manière qu’avec les fichiers JPDL, depuis l’administration avancée > Workflow.

Plusieurs WF peuvent être chargés dans Project MonitorProject Monitor. Plusieurs versions de WF peuvent être chargées au fur et à mesure de l’évolution des processus.

Le versionning permet aux projets existants engagés dans un processus de terminer l’ensemble des étapes quand bien même le processus aurait changé.

Camunda® apporte la possibilité de visualiser les schéma de WF, les instances en cours à chaque étape, naviguer vers les instances de projet.

Les fichiers DMN se charge de la même manière que les fichiers BPMN dans Project MonitorProject Monitor mais ne seront pas visibles dans l’administration de Project MonitorProject Monitor. Il faut se connecter à Camunda Cockpit pour visualiser le fichier DMN chargé dans Project MonitorProject Monitor.

Associer le WF à un gabarit

Le WF a été importé dans l’administration, il faut alors l’associer à un gabarit.

C’est la seule manière à partir de laquelle un projet hérite d’un WF sous-jacent.

Si le projet n’a pas été créé depuis le gabarit il est possible a posteriori d’appliquer unitairement ou en masse le gabarit aux projets. Il deviendra ainsi possible de déclencher le WF sur les projets existants.

Définir un statut déclencheur

Lors de l’association d’un WF à un gabarit, il est possible de définir le mode de déclenchement du WF sur les projets :

  • déclenchement manuel
  • déclenchement par statut projet
  • déclenchement par statut document
  • déclenchement par statut de tâche
  • déclenchement par statut de phase
  • déclenchement par statut de jalon
  • déclenchement par valeur d’attribut

Il suffira alors de sélectionner la valeur de liste dans le sélecteur proposé :

image

Si le déclenchement se fait sur le statut tâche, phase ou jalon, alors il est possible de définir le type de tâche, phase ou jalon sur lequel le processus sera déclenché :

image

Si le déclenchement se fait sur le statut document, tâche, phase ou jalon, alors il est possible d’exécuter le processus sur le dernier élément déclencheur (par exemple, le gabarit sera appliqué lorsque tous les documents du projet seront validés) :

image

Visualisation des WF

Il existe deux modes de visualisation des workflows :

  • La visualisation dans le projet
  • La visualisation en admin

Visualisation projet

image

Visualisation admin

image

Chaque projet dispose, dans l’écran de paramétrage, du schéma avec l’avancement du processus.

Si plusieurs WF sont lancés sur un même projet, un chevron plié déplié est accessible pour consulter le schéma adéquat.

Dans l’écran admin, chaque version de processus dispose de son schéma. Sur chaque schéma plusieurs informations sont à disposition :

  • Le nombre de projets dans chaque étape dans la bulle rose
  • Au clic sur la bulle, on filtre sur l’étape, une chips s’affiche pour rappeler le critère
  • Une vue de type “Liste des projets” est appliquée sur la liste des projets

Historique des workflows

Chaque définition de workflow dispose de son propre historique. Cela permet d’identifier quelles création/modification/suppression ont été réalisées.

Exemple de fichier de Workflow

Démo Workflow.bpmn19.4KB

Exemple workflow conditionné + tableau décisionnel

Appliquer_Gabarit_conditionne.response.script.bpmn12.2KB
Appliquer_Gabarit_conditionne-modifie-en-serie.bpmn9.1KB
Appliquer_Gabarit_conditionne_DMN.dmn2.1KB

Exemple avec libellé du projet dans le libellé de la tâche

recette-libelle-tachev3.bpmn14.3KB

Exemple avec lien entre 2 tâches

recette-filiation-tachev4.bpmn14.3KB

Exemple avec Notification de plusieurs participants

recette-notification-plusieursv2.bpmn14.4KB

Automatisations

modifyTasks.v3.bpmn5.0KB
applyTemplate.v3.bpmn5.0KB
insertTemplate.v3.bpmn5.0KB
modifyChildTasks.v1.bpmn5.0KB
modifyParentTask.v1.bpmn5.0KB
modifyPhases.v2.bpmn5.0KB
modifyProjectStatus.v2.bpmn5.4KB

FAQ

Que se passe-t-il si j'ai oublié de créer un utilisateur technique pour les processus ?
Que faire lorsque j’ai une erreur ?
J’ai créé un utilisateur technique pour les processus, j’ai testé mon payload dans un RestClient pourtant mon processus tombe en erreur dans PM. Quelles peuvent-être les raisons ?