r-io suiter-io suitesupervision docs
← Supervision
Supervision / Strategy 05 · unchecked by default

Conformance checking

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.

implemented byConformanceCheckingStrategy · ProcessGraph · gind-npm-strategy-supervision-conformance-checking
01 · Deviations

Five kinds, five weights

DeviationDetected whenDefault weight
SkippedA 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
DisorderA task was started before a task it follows was done, which ended later.0.5
RejectedAn actor refused the task (Acceptance = REJECT).1
ErrorThe task ended in error and no exception flow of the process handles it.1
UnexpectedA 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

ParameterDefault
Skipped task1
Disordered tasks0.5
Rejected task1
Task in error1
Unexpected task0.5
Failing threshold1

A weight of 0 ignores the deviation.

Parameters of the conformance checking strategy
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.

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.
Supervision / Stratégie 05 · décochée par défaut

Conformance checking

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.

implémentée parConformanceCheckingStrategy · ProcessGraph · gind-npm-strategy-supervision-conformance-checking
01 · Écarts

Cinq types, cinq poids

ÉcartDétecté quandPoids par défaut
SautéeUne 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ésordreUne tâche a été commencée avant qu’une tâche qu’elle suit soit faite, celle-ci finissant plus tard.0,5
RejetéeUn acteur a refusé la tâche (Acceptance = REJECT).1
En erreurLa tâche s’est terminée en erreur et aucun flux d’exception du processus ne la prend en charge.1
ImprévueUne 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ètreDéfaut
Tâche sautée1
Tâches désordonnées0,5
Tâche rejetée1
Tâche en erreur1
Tâche imprévue0,5
Seuil de Failing1

Un poids de 0 ignore l’écart.

Paramètres de la stratégie de vérification de conformité
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.

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.