User Task Name Expression Plugin: BPMN Renderings without the expression junk!

Hello All

Wanted to share this as it is a common issue we run into when building BPMNs:

You have a BPMN that serves two purposes:

  1. Business Process Visual
  2. Technical execution instructions for the Business Process

Well the way Camunda currently works, you cannot create a distinction between the two when it comes to User Task Names.

Why are User Task Names important: well because they are the ~sole place where the task name is consistently rendered to the user (such as in task lists), and therefore we end up adding lots of Expression based data into Task Names:

Example you may have a task name with:

Review submission for action: ${startFormSubmission.prop('section1').prop('action').prop('details').prop('first').value()}

And what happens?

You get junk like this in the BPMN rendering:

This is horrible for the user experience.


This issue was raised up the Camunda devs as part of ticket https://jira.camunda.com/browse/CAM-12811 and the response was: “This is not a problem because users can: Use Annotations, Use Forms, or Create a custom Parse Listener”.

If you want to understand more about this problem, you can review the ticket or see the readme of the plugin below.

The short of it is: 1. It is really disappointing that business users need to see these BPMNs in this format/experience… and 2. The dev response is to expect each implementer of Camunda to understand enough about the engine to build a parse listener to do the magic…


So hopefully others can use this plugin as we do, and can continue to build beautiful meaningful BPMNs that are business friendly and technical execution friendly. And let’s hope that Camunda can add these functionality into the core or at least as an officially supported plugin.

Without the plugin using Camunda’s suggested solution:


And with the plugin:

(Where the Task Names in the diagram are coming from the User Task’s name field, and the expression is defined as part of a extension property)


The plugin works with Springboot and regular distributions such as the docker tomcat.

Enjoy!

5 Likes