Process mining applied live (token replay, in the spirit of van der Aalst): what the actors did in their To-Do Lists is replayed on the process the deduction found. Every deviation (a task started too early, refused, failed or unknown to the process) adds its weight to the Failing category: the process is no longer followed as deduced.
A task was started while a task it follows is not done; or, through a conditional gateway, while none of the tasks it may follow is done.
1
Disorder
A task was started before a task it follows was done, which ended later.
0.5
Rejected
An actor refused the task (Acceptance = REJECT).
1
Error
The task ended in error and no exception flow of the process handles it.
1
Unexpected
A task of the To-Do Lists of the process is not in the process of the solution (added on the way, a recovery).
0.5
Failing = Σ weights of the deviations / threshold threshold 1: one skipped, rejected or failed task fires the alert, two disorders or two unexpected tasks too
02 · The process graph
Which tasks follow which
Predecessors through the gateways — going back along the nominal flows from a task, through gateways and events, gives the tasks it follows. Behind a join of a conditional gateway (exclusive, inclusive, complex) they are only needed one of them: the task is skipped only when none of them is done.
Branches not taken — once the process reached a task in one branch of an exclusive gateway, the tasks of the other branches will never run: they are never “skipped”.
Passed by the engine — a task which never appears in a To-Do List (a move, an automatic task) was passed by the workflow engine itself: it is never a deviation, it counts as done.
Contingent tasks — the tasks reached through an exception or event flow are contingent: they run only when something goes wrong, and their absence is normal.
03 · Parameters
In the supervision box
Parameter
Default
Skipped task
1
Disordered tasks
0.5
Rejected task
1
Task in error
1
Unexpected task
0.5
Failing threshold
1
A weight of 0 ignores the deviation.
Each weight says how many such deviations make the process fail.
04 · Example
IMT Albi Crisis: an actor refuses a task
After “Confirm gas leak” (answer “Yes and repairable”), the process gives “Cut off the local gas valve” to Emily Hernandez. She rejects it: Failing = 1 / 1 = 1.00 with the contribution “"Cut off the local gas valve" was rejected by its actor”, and the alert box opens on Failing, proposing to reassign the remaining tasks.
The alert box opened by the rejection of “Cut off the local gas valve”.
05 · Watch points
Good to know
The engine keeps the order
The workflow engine only creates a human task once its predecessors are done, so a skipped task mostly comes from outside (a task reported done from the field, a task added by hand).
Recoveries are unexpected
A corrective sub-process deployed on the way creates tasks unknown to the solution: they count as unexpected, with half a weight.
gind-detection-engine-conformance-checking-strategy/…/ConformanceCheckingStrategy.javaReplay and weights of the deviations.
gind-detection-engine-abstract/…/ProcessGraph.javaPredecessors through the gateways, discarded branches, contingent tasks.
La fouille de processus appliquée en direct (rejeu de jetons, dans l’esprit de van der Aalst) : ce que les acteurs ont fait dans leurs To-Do Lists est rejoué sur le processus trouvé par la déduction. Chaque écart (une tâche commencée trop tôt, refusée, en erreur ou inconnue du processus) ajoute son poids à la catégorie Failing : le processus n’est plus suivi tel que déduit.
Une tâche a été commencée alors qu’une tâche qu’elle suit n’est pas faite ; ou, derrière une passerelle conditionnelle, alors qu’aucune des tâches qu’elle peut suivre n’est faite.
1
Désordre
Une tâche a été commencée avant qu’une tâche qu’elle suit soit faite, celle-ci finissant plus tard.
0,5
Rejetée
Un acteur a refusé la tâche (Acceptance = REJECT).
1
En erreur
La tâche s’est terminée en erreur et aucun flux d’exception du processus ne la prend en charge.
1
Imprévue
Une tâche des To-Do Lists du processus n’est pas dans le processus de la solution (ajoutée en route, un recours).
0,5
Failing = Σ poids des écarts / seuil seuil 1 : une tâche sautée, rejetée ou en erreur déclenche l’alerte, deux désordres ou deux tâches imprévues aussi
02 · Le graphe du processus
Quelles tâches suivent lesquelles
Prédécesseurs à travers les passerelles — remonter les flux nominaux depuis une tâche, à travers passerelles et événements, donne les tâches qu’elle suit. Derrière la jonction d’une passerelle conditionnelle (exclusive, inclusive, complexe), une seule d’entre elles suffit : la tâche n’est sautée que si aucune n’est faite.
Branches non prises — dès que le processus a atteint une tâche dans une branche d’une passerelle exclusive, les tâches des autres branches ne seront jamais faites : elles ne sont jamais « sautées ».
Passées par le moteur — une tâche qui n’apparaît jamais dans une To-Do List (un déplacement, une tâche automatique) a été passée par le moteur de workflow lui-même : ce n’est jamais un écart, elle compte comme faite.
Tâches contingentes — les tâches atteintes par un flux d’exception ou d’événement sont contingentes : elles ne tournent que si quelque chose se passe mal, leur absence est normale.
03 · Paramètres
Dans la boîte de supervision
Paramètre
Défaut
Tâche sautée
1
Tâches désordonnées
0,5
Tâche rejetée
1
Tâche en erreur
1
Tâche imprévue
0,5
Seuil de Failing
1
Un poids de 0 ignore l’écart.
Chaque poids dit combien d’écarts de ce type font échouer le processus.
04 · Exemple
IMT Albi Crisis : un acteur refuse une tâche
Après « Confirm gas leak » (réponse « Yes and repairable »), le processus confie « Cut off the local gas valve » à Emily Hernandez. Elle la rejette : Failing = 1 / 1 = 1,00 avec la contribution « "Cut off the local gas valve" was rejected by its actor », et la boîte d’alerte s’ouvre sur Failing en proposant de réaffecter les tâches restantes.
La boîte d’alerte ouverte par le rejet de « Cut off the local gas valve ».
05 · Points d’attention
Bon à savoir
Le moteur garde l’ordre
Le moteur de workflow ne crée une tâche humaine qu’une fois ses prédécesseurs faits : une tâche sautée vient surtout de l’extérieur (une tâche déclarée faite depuis le terrain, une tâche ajoutée à la main).
Les recours sont imprévus
Un sous-processus correctif déployé en route crée des tâches inconnues de la solution : elles comptent comme imprévues, avec un demi-poids.
gind-detection-engine-conformance-checking-strategy/…/ConformanceCheckingStrategy.javaRejeu et poids des écarts.
gind-detection-engine-abstract/…/ProcessGraph.javaPrédécesseurs à travers les passerelles, branches écartées, tâches contingentes.