Intégrer Liferay avec Camunda

Construire un véritable portail de workflow (guide production)

Introduction

Dans la plupart des projets BPM en entreprise, une question revient toujours :

Où construire la véritable interface métier pour les workflows Camunda?

Camunda est excellent pour:

  • L’exécution BPMN

  • L’orchestration de processus

  • La gestion d’état

Mais il ne fournit pas:

  • De portails métier riches

  • De tableaux de bord par rôle

  • De formulaires entreprise

  • D’UI orientées workflow

C’est exactement là que Liferay DXP s’intègre parfaitement.

Dans ce blog, vous allez apprendre :

  • Pourquoi Liferay + Camunda est une combinaison puissante

  • L’architecture réelle en production

  • Les patterns d’intégration

  • L’approche technique pas à pas

  • Les pièges courants

  • Les bonnes pratiques


Pourquoi intégrer Liferay avec Camunda ?

Camunda et Liferay adressent des couches différentes du même problème métier.

CoucheOutilResponsabilité
UI / PortailLiferay DXPExpérience utilisateur, tableaux de bord, formulaires
ServicesSpring BootLogique métier
Moteur BPMCamundaExécution BPMN
ÉvénementsKafka (optionnel)Intégration asynchrone

Donc, dans les systèmes réels :

Portail utilisateur (Liferay) ↓ APIs Spring Boot ↓ REST Camunda ↓ Moteur BPM Camunda ↓ Kafka / Base de données / Systèmes externes

👉 Liferay devient la couche UI & expérience manquante pour Camunda.


Cas d’usage réel – Portail de workflow d’approbation

Scénario métier

Une entreprise souhaite construire :

  • Un portail d’approbation d’achats

  • Une UI par rôle (Demandeur, Manager, Finance)

  • Un flux d’approbation piloté par BPMN

  • Un système traçable et auditable


Flux métier

  1. L’utilisateur soumet une demande dans Liferay

  2. Liferay appelle une API Spring Boot

  3. Spring Boot démarre un processus Camunda

  4. Camunda route les tâches vers les approbateurs

  5. Les approbateurs traitent les tâches via Liferay

  6. Liferay appelle l’API REST Camunda

  7. Le workflow continue

  8. Le processus se termine


🔷 Architecture – Liferay + Camunda

https://www.coding-dude.com/wp/wp-content/uploads/2014/02/liferay-architecture-diagram.png
Portail Liferay ↓ Couche API Spring Boot ↓ API REST Camunda ↓ Moteur BPM Camunda ↓ Base de données / Kafka

Patterns d’intégration

Pattern 1 – Liferay → Camunda (démarrer un processus)

Liferay appelle l’API Spring Boot.

restTemplate.postForObject( "http://localhost:8080/start-process", payload, Void.class );

Spring Boot démarre le processus Camunda :

runtimeService.startProcessInstanceByKey( "approval-process", variables );

Pattern 2 – Camunda → Liferay (boîte de réception des tâches)

Liferay récupère les tâches utilisateur :

GET /engine-rest/task?assignee=john

Les affiche dans un portlet.


Pattern 3 – Liferay → Camunda (compléter une tâche)

POST /engine-rest/task/{id}/complete

Mise en place technique pas à pas


Étape 1 – Exposer l’API REST Camunda

Assurez-vous que l’API REST est activée :

/engine-rest

Testez :

http://localhost:8080/engine-rest/engine

Étape 2 – Construire une couche API Spring Boot

Cela évite un couplage fort entre Liferay et Camunda.

@PostMapping("/start-process") public void startProcess(@RequestBody Map<String, Object> payload) { runtimeService.startProcessInstanceByKey( "approval-process", payload ); }

Étape 3 – Construire un Portlet Liferay

Appeler l’API Spring Boot depuis Liferay :

public void submitRequest(ActionRequest request, ActionResponse response) { Map<String, Object> payload = new HashMap<>(); payload.put("amount", ParamUtil.getInteger(request, "amount")); restTemplate.postForObject( "http://localhost:8080/start-process", payload, Void.class ); }

Étape 4 – Afficher la boîte de réception des tâches

ResponseEntity<Task[]> tasks = restTemplate.getForEntity( "http://localhost:8080/engine-rest/task?assignee=john", Task[].class );

Comment le BPMN s’intègre

Votre processus BPMN peut ressembler à ceci :

Start Event ↓ User Task (Approbation Manager) ↓ User Task (Approbation Finance) ↓ End Event

Liferay fournit :

  • UI de saisie

  • Boîte de réception des tâches

  • UI d’approbation

Camunda fournit :

  • Routage

  • État

  • Logique workflow


Considérations de sécurité

✔ Utiliser OAuth2 entre Liferay & Spring Boot
✔ Ne jamais exposer directement l’API REST Camunda à l’UI
✔ Utiliser des comptes de service
✔ Mapper les utilisateurs Liferay vers Camunda
✔ Appliquer des contrôles d’accès par rôle


Stratégie de gestion des erreurs

✔ Retry des appels REST
✔ Boundary Events BPMN
✔ Gestion des timeouts
✔ Dead-letter queues (Kafka)
✔ UI idempotente


Considérations de performance

✔ Mettre en cache les listes de tâches
✔ Paginer les appels REST Camunda
✔ Éviter le polling trop fréquent
✔ Utiliser des continuations asynchrones
✔ Externaliser la logique longue


Erreurs courantes en production 🚨

❌ Appeler directement l’API REST Camunda depuis les portlets
❌ Pas de couche API
❌ Pas d’authentification
❌ Endpoints codés en dur
❌ Pas de logique de retry
❌ Couplage fort UI ↔ BPM


Bonnes pratiques (éprouvées sur le terrain)

✔ Toujours utiliser une couche API Spring Boot
✔ Traiter Camunda comme moteur d’orchestration uniquement
✔ Garder les portlets légers (UI seulement)
✔ Utiliser BPMN pour le routage
✔ Utiliser Kafka pour les événements
✔ Versionner les contrats REST
✔ Surveiller la santé de l’API Camunda


Question d’entretien (très fréquente)

Q : Comment intégrer Liferay avec Camunda de manière fiable ?
R : En utilisant Liferay comme couche UI, Spring Boot comme couche API et l’API REST Camunda pour l’orchestration.


Conclusion

Camunda + Liferay est une architecture BPM portail de niveau entreprise.
❗ Ils ne sont pas concurrents — ils sont complémentaires.

Si vous avez besoin de :

  • Portails de workflow

  • Systèmes d’approbation

  • UI de gestion de cas

  • Tableaux de bord BPM

Alors Liferay + Camunda est l’une des combinaisons les plus solides disponibles aujourd’hui.



💼 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, CMS, Azure, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM), DMN/Drools.

📧 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