Dynamic Signaling for Managing Communication Between Two Separate BPMN Flows

This document explains how to implement Dynamic Signaling in BPMN processes or event sub-processes to execute particular process instances or threads.

Problem Statement:

  • A signal event is generally used to communicate between two separate BPMN flows.
  • However, the signal event has a global scope. It will broadcast the event to all related sub-flows and handlers.

Whenever BPMN interacts with multiple requests, it is difficult for the process engine to identify the exact instance to process. There is also the possibility of the thrown signal getting caught by all active handlers and multiple requests at a time, which may lead to wrong execution. 

Increase the Default Process Variable Size in jBPM

Process variables in jBPM are limited to 255 characters by default. The number of characters in turn are also dependent on the character set that is being followed. So, it is always better to have an option to increase the default value.

This article is just an extension of the solution provided in the above link; simplifying things a little more for beginners.

Advanced Process Integration Tips -Configuring External Persistence

Using advanced process integration techniques becomes essential as you evolve your developer skills while integrating more and more of your business workflows. One of the more common questions is how to persist custom data and configure external persistence?

When working with processes, it is expected to work with persistent process data scenarios. Considering this situation, it is common for users to use a different database to store process data, apart from the database where the domain information is stored.

Advanced Process Integration Tips – Dealing with Unexpected Errors

Using advanced process integration techniques becomes essential as you evolve your developer skills while integrating more and more of your business workflows. One of the most common questions is how to effectively handle unexpected errors without just dropping out of a workflow?

During the development phase, it is expected that developers deal with unexpected behavior along with predictable and unpredicted errors that might happen during the execution of code. Consider the following situation:

Datasources, what, why, how?

Hope this post clarifies how a datasource works within a Java EE server and the reasons why you would need a XA Datasource when you have distributed transactions.

The origin of this post is to provide a basic understanding so that the user feels confident when to use or not to use Datasources and XA Datasources.

Unit Testing of jBPM Process Flows

Unit testing is an important step in the software development life cycle to ensure that your product works the way it is intended to work. Back in the day, it used to be just a step that developers had to perform to evaluate their work. In today’s world, it has become an essential part of the CI/CD pipeline as it is not just used to determine quality based on functionality but also to determine code promotion eligibility based on various numbers (pass/fail ratio or code coverage percentage).

jBPM, being one of the most modern, open-source bpm products, provides rich capabilities for unit testing BPM processes. This allows jBPM processes to be treated just like any other Java-based artifact. The jBPM tool kit provides an extension of JUnit test classes that allow one to easily unit test business processes defined in BPMN2.