Case Management dans jBPM 7

 💡 Introduction

Les processus BPMN traditionnels sont structurés et prévisibles, chaque étape étant définie à l’avance.
Cependant, dans la réalité, certains scénarios métiers nécessitent une flexibilité accrue — comme le traitement des plaintes clients, les réclamations d’assurance ou les dossiers juridiques — où chaque cas évolue différemment.

C’est là qu’intervient le Case Management dans jBPM 7.

Il permet de créer des processus dynamiques, pilotés par les événements et centrés sur les connaissances, où les utilisateurs peuvent prendre des décisions pendant l’exécution, et non uniquement à la conception.


🧠 1️⃣ Qu’est-ce que le Case Management ?

Le Case Management (ou gestion de cas) est un processus piloté par les connaissances où le flux n’est pas strictement défini.
Il combine la prise de décision humaine et l’automatisation, permettant une exécution flexible et contextuelle.

Différence entre BPMN et Case Management :

FonctionnalitéProcessus BPMNCase Management
Type de fluxPréétabliDynamique et adaptable
ContrôleMoteur de processusDécisions de l’utilisateur
FlexibilitéFaibleÉlevée
ExempleTraitement de commandeRéclamation client

🧩 2️⃣ Concepts clés dans jBPM Case Management

ConceptDescription
Case File (Dossier de cas)Conteneur partagé contenant les données accessibles à tous les participants
Case Definition (.bpmn)Modèle décrivant les tâches, jalons (milestones) et règles
Case Instance (Instance de cas)Exécution d’un modèle de cas
Case IDIdentifiant unique du cas
Milestone (Jalon)Étape marquant une réussite ou un objectif atteint
Ad-Hoc TaskTâche déclenchée à tout moment, sans lien de séquence

⚙️ 3️⃣ Architecture du Case Management dans jBPM

+---------------------------------------------------------+ | Moteur jBPM | |---------------------------------------------------------| | Case Definition | Case Runtime | Case Services | KIE API | +---------------------------------------------------------+ | | +--------------+ +--------------+ | Business Central | | KIE Server | | (Modélisation) | | (Exécution) | +--------------+ +--------------+

🏗️ 4️⃣ Création d’un projet de cas

🧾 1. Créer un projet de type Case

Dans Business Central → Design → Projects → New → Case Project

Choisissez :

  • Type : Case Definition

  • Nom : CustomerComplaintCase

  • Package : com.sample.case


⚙️ 2. Définition du cas (Case.bpmn)

Le modèle de processus (ex. CustomerComplaintCase.bpmn) contient :

  • Des tâches humaines ad hoc (Examiner la plainte, Demander des documents, Approuver le remboursement)

  • Des jalons (Plainte enregistrée, Remboursement approuvé)

  • Des variables de dossier (Case File Variables)

  • Des sous-processus dynamiques


📂 5️⃣ Variables du dossier de cas (Case File)

Les variables de dossier stockent les données accessibles à toutes les tâches.

VariableTypeDescription
customerNameStringNom du client
complaintTypeStringType de plainte (facturation, livraison, etc.)
refundAmountDoubleMontant du remboursement
approvalStatusStringStatut d’approbation

Exemple XML :

<case:caseFileItemDefinition id="cfid_1" name="customerName" structureRef="String"/> <case:caseFileItemDefinition id="cfid_2" name="refundAmount" structureRef="Double"/>

🧩 6️⃣ Tâches ad hoc

Les tâches ad hoc peuvent être déclenchées à tout moment de la vie du cas.

TâcheTypeDescription
Examiner la plainteHumaineAnalyse de la réclamation
Demander des documentsHumaineCollecte d’informations supplémentaires
Approuver le remboursementHumaineValidation du remboursement
Clôturer le casHumaineFermeture du dossier

🧱 7️⃣ Les jalons (Milestones)

Les jalons représentent des étapes clés atteintes pendant le déroulement du cas.

JalonCondition
Plainte enregistréecomplaintType non nul
Remboursement approuvéapprovalStatus == "APPROVED"

Exemple FEEL :

approvalStatus = "APPROVED"

🖼️ 8️⃣ Diagramme du flux “Customer Complaint Case”

Le schéma ci-dessous illustre la structure du cas de plainte client, avec ses jalons et ses tâches ad hoc.
Chaque tâche (comme Examiner la plainte, Demander des documents, Approuver le remboursement, Clôturer le cas) peut être exécutée à tout moment selon l’évolution du dossier.


















🚀 9️⃣ Démarrer une instance de cas (REST ou Java)

📡 Via l’API REST

POST /server/containers/{containerId}/cases/{caseDefId}/instances

Exemple :

POST /server/containers/sample_1.0.0/cases/com.sample.CustomerComplaintCase/instances

Réponse :

{ "case-id": "CASE-0001", "case-owner": "admin", "status": "ACTIVE" }

💻 Via l’API Java

CaseService caseService = KieServices.Factory.get().getServices().get(CaseService.class); Map<String, Object> caseData = new HashMap<>(); caseData.put("customerName", "Jean Dupont"); caseData.put("complaintType", "Problème de facturation"); String caseId = caseService.startCase("sample_1.0.0", "CustomerComplaintCase", caseData); System.out.println("✅ Cas démarré : " + caseId);

🔄 🔟 Déclencher une tâche ad hoc

Une fois le cas actif, vous pouvez exécuter une tâche ad hoc dynamiquement via :

POST /server/containers/sample_1.0.0/cases/instances/{case-id}/stages/{stage-id}/ad-hoc-fragments

Ou en Java :

caseService.triggerAdHocFragment(containerId, caseId, "Examiner la plainte", null);

🧠 11️⃣ Cycle de vie d’un cas

ÉtatDescription
ActiveCas en cours
CompletedCas terminé avec succès
AbortedCas arrêté manuellement
SuspendedCas temporairement suspendu

🧰 12️⃣ Interface Case Management dans Business Central

Dans Business Central → Manage → Cases, vous pouvez :

  • Démarrer un nouveau cas

  • Consulter son statut

  • Déclencher des tâches ad hoc

  • Ajouter des commentaires et variables

  • Clôturer ou interrompre le cas

📊 Cette interface offre une visibilité complète et en temps réel sur les cas actifs.



👉 Regardez “Case Management dans jBPM 7” en action :

Une démonstration complète montrant l’exécution de cas dynamiques, les jalons et les tâches ad hoc.
🎬 Bientôt disponible sur YouTube : Learn IT with Shikha



🏁 Conclusion

🎯 Le Case Management dans jBPM 7 comble le fossé entre les processus BPMN structurés et les workflows dynamiques gérés par l’humain.

Il permet aux entreprises de gérer des processus imprévisibles comme :

  • Les réclamations clients

  • Les processus RH

  • Les demandes d’assurance

  • Le suivi juridique

💬 “Quand chaque cas est unique, jBPM Case Management vous aide à rester flexible, organisé et conforme.”

💼 Support professionnel disponible

Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.

Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM).

📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com

🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium     


Comments

Popular posts from this blog

jBPM Installation Guide: Step by Step Setup

Scopes of Signal in jBPM

OOPs Concepts in Java | English | Object Oriented Programming Explained