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. |
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:
|
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. |
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. |
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. |
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. |
Preview | Name | Description |
---|---|---|
![]() |
DMN dependant decisions | How to evaluate dependant DMN decisions on the Camunda BPM platform. |
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. |
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. |
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. |
Preview | Name | Description |
---|---|---|
![]() |
How to clean up the history tables | Solutions to clean up the history from old completed process instances. |