jBPM Workflow Tutorial: 📢 Signals in Business Processes

 🚀 Introduction

In jBPM, 📢 Signals are used to communicate across processes.
They allow one process instance to broadcast an event that other processes (or nodes within the same process) can listen to and react upon.

Signals are useful for:

  • 🔔 Triggering one process from another

  • ⏸️ Interrupting a process flow when an event happens

  • 🔄 Synchronizing multiple running processes

Unlike messages, which are point-to-point, signals are broadcast — meaning all listeners waiting for that signal will react.


🛠️ Prerequisites

  • 💻 jBPM/Business Central & KIE Server installed

  • ☕ JDK 11+ (or JDK 17)

  • 🌐 Access to: http://localhost:8080/business-central


📝 Step 1: Create a Signal in Business Central

  1. 🔑 Open your project in Business Central

  2. ➕ Add a new process or open an existing one

  3. Go to Process Properties → Global Definitions

  4. Add a Signal definition (e.g., paymentSignal)


🎨 Step 2: Using Signal Events in a Process

There are three main ways to use signals:

  1. 📥 Intermediate Catch Event (waits for a signal)

    • Process pauses until it receives the specified signal

  2. 📤 Intermediate Throw Event (sends a signal)

    • Process broadcasts a signal to others

  3. 🛑 Boundary Signal Event (attached to a task)

    • Interrupts a task or subprocess when a signal is received


⚙️ Example: Payment Confirmation

Process 1: Payment Processor

  • 🔵 Start → 💳 Human Task (“Process Payment”) → 📤 Throw Signal (paymentSignal) → ✅ End

Process 2: Order Handler

  • 🔵 Start → 📥 Catch Signal (paymentSignal) → 🚚 Service Task (“Ship Order”) → ✅ End

👉 When Process 1 sends the signal, Process 2 automatically moves forward.


🔨 Step 3: Build and Deploy

  1. 💾 Save both processes

  2. 🛠️ Build & Install

  3. 📦 Deploy to KIE Server


▶️ Step 4: Run the Processes

  1. Start Payment Processor process

  2. Complete payment task → 📤 Signal is sent

  3. Order Handler process (already waiting) catches the signal → proceeds to shipping


📌 Use Cases for Signals

  • 🛒 E-commerce: Payment triggers shipment

  • 📧 Notifications: Send alerts to multiple processes

  • 🏭 Manufacturing: One machine’s completion signal starts another process

  • ⏸️ Interruptions: Cancel tasks or subprocesses when a signal is received


👉 Watch jBPM Workflow Tutorial: 📢 Signals in Action better:

Here's a quick video to help you understand jBPM Workflow Tutorial: 📢 Signals in Action better: YouTube: Learn IT with Shikha

🛠️ Troubleshooting

  • Signal not caught? → Check if signal name matches in throw and catch events

  • ⚠️ Multiple listeners not responding? → Ensure processes are active and deployed

  • 🔄 Process not interrupted? → Verify boundary signal event is attached properly


🎯 Conclusion

📢 Signals in jBPM provide a powerful way to create event-driven workflows.

They allow you to:

  • 🔗 Connect multiple processes together

  • ⏸️ Interrupt running processes when needed

  • 🔄 Synchronize business events across systems

By mastering Signals, you can design loosely coupled, reactive processes that adapt dynamically to real-world events.


💼 Professional Support Available

If you are facing issues in real projects related to enterprise backend development or workflow automation, I provide paid consulting, production debugging, project support, and focused trainings.

Technologies covered include Java, Spring Boot, PL/SQL, Azure, and workflow automation (jBPM, Camunda BPM, RHPAM).

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