Camunda Consulting Examples
This repository contains examples, code snippets and demo applications build by the Camunda Consulting Team or contributors. Note: All examples are only tested manually and there is no guarantee that they are actively maintained. If you search for officially maintained examples go to https://github.com/camunda/camunda-bpm-examples.
Type of Example | Description |
---|---|
Show Cases | Complete demo applications showing more complex scenarios |
Snippets | Code snippets for particular technical issues |
One-time Examples | Examples created once for a specific event (like a conference or a magazine article). The code is not maintained and might be out-of-date. |
Showcases
Review Process for new Tweets |
Key Features showcased:
|
Camel Use Cases |
Key Features showcased:
|
Insurance Underwriting |
Key Features showcased:
|
Incident Handling |
Key Features showcased:
|
Skill-based-Routing |
Key Features showcased:
|
Snippets
Human Task Management
Preview | Name | Description |
---|---|---|
Subtask Checklist | BPMN process with sub tasks configured on a User Task using BPMN Extension Elements. The Subtasks are shown in the HTML task form using the Camunda Forms SDK (JavaScript). A User Task can only be completed if all subtasks are completed beforehand. | |
Simple tasklist build with JSF | A tasklist to show how to use the engine api inside a JSF application. It calls forms, completes tasks and shows the detail process diagram with bpmn.io | |
Watch Task Due Date and Automatically Take Action | A Process engine Plugin which registers Jobs for all User Tasks having a due date. It allows to define an own JobHandler to take action whenever a due date is hit, e.g sending an email. | |
Dynamic single task process | A highly configurable process to get toDo items into your task list |
BPMN
Preview | Name | Description |
---|---|---|
BPMN Signal Events between Parallel Branches | This example shows how to interrupt a Task in a parallel flow within the same process instance by using a BPMN Signal Event. | |
Translate your process model on the fly | Translate the BPMN XML on the fly using XPath and render the result (in the correct language) via bpmn.io | |
Call Activity sets local variable | Shows how to set a local variable in a parent process based on the variable of a child process invoked by a Call Activity. | |
Split Order Item Handling via OR Gateway | Assume only a few items of an order are decided in one go - but the approved ones need to get processed right away. This is modeled using an OR Gateway and local variables. | |
Workaround to realize BPMN AdHoc Subpocess | The BPMN AdHoc Subprocess is not specified to be executable, hence camunda BPM cannot execute it out-of-the-box. This snippet shows a possile workaround. | |
Non-interrupting Message Event Sub-Process inside a Sub-Process | An example showing that a Sub-Process is not finished until a contained Event Sub-Process has reached its end. |
Camunda Webapp (Tasklist & Cockpit)
Preview | Name | Description |
---|---|---|
Webapp Customizing | Shows how to build a customized webapp (own logo, colors, language, plugins, ...) by using Maven Overlay. | |
Various Cockpit Plugins | The Plugin Store lists various available cockpit plugins, including the consulting snippets. | |
Tasklist Plugin: Easy Search | Plugin that provides a "Google-like" search bar for tasks. | |
Tasklist Plugin: Extended External Forms | Plugin that provides a customized and better looking external forms hook. |
bpmn.io
Preview | Name | Description |
---|---|---|
Plain HTML page showing Process Instance status | Shows how to build a self-contained HTML page with bpmn.io showing the process model and add overlays and markers to show historical information. |
DMN
Preview | Name | Description |
---|---|---|
DMN dependant decisions | How to evaluate dependant DMN decisions on the Camunda BPM platform. |
Process Engine Plugins
Preview | Name | Description |
---|---|---|
Making parallel joins asynchronous | To avoid optimistic lock exceptions on heavy load processes, this plugin makes each joining gateway asynchronous without further configuration in the process diagram. | |
authenticatedUserId after Asynchronous Continuation | To use the userId after asynchronous continuation, this plugin puts it from the history on the current thread. | |
Authorized User Tasks | Only authorized users are able to complete a task. Obsolete since 7.3. Use Authorization-Service instead. | |
History Variable Filter | How to store only one of many variables in the history. | |
Change Number of Job Retries | This snippet shows how to change the number of retries for all jobs without touching the process diagrams. | |
Extend serialization of process variables | This snippets exends the serialization of process variables for special classes, builds a jboss module with a maven plugin and shows how to use complex objects in a process application. | |
Engine Plugin: Add Save Points | A plugin that automatically adds save points, i.e. asyncronous continuation or transaction boundaries, to certain BPMN elements. |
Runtime Environments
Preview | Name | Description |
---|---|---|
Java-based Spring container configuration | Run the process application in a Spring container with java-based configuration on a shared process engine. | |
Embedded Process Engine without Spring | A Process Application containing an embedded process engine that is configured in the processes.xml file and therefore does not require the Spring Framework as a dependency. |
Testing
Preview | Name | Description |
---|---|---|
BPMN Validation with the Parser of the Process Engine | A minimal environment for validating BPMN processes using an in-memory process engine in a JUnit test. |
Administration
Preview | Name | Description |
---|---|---|
How to clean up the history tables | Solutions to clean up the history from old completed process instances. |