Camunda Blog
Featured Posts
17 mars 2015
New Camunda Workbench Release – Adds Stepping in Debugger
After a one day hack session, Nico and myself are proud to release a new version of Camunda Workbench. The Highlights of this Release are: Upgrade bpmn.io to v0.9.0 Create a new process Debugger now has stepping support Breakpoints after activities Display the type of variables Enhanced Script Editing What is Camunda Workbench? Camunda Workbench is the next big thing in browser-based tooling for BPMN based process automation 🙂 But most and foremost: Workbench is AWESOME! It brings use cases around modeling and execution of processes close together. In workbench you can model a process, deploy it to Camunda BPM Process Engine and then debug it in an interactive way. See for yourself: Camunda Workbench – Create and debug a…
By Daniel Meyer
11 mars 2015
Camunda meets Cassandra @Zalando: Community Meeting Write-up
Jorn Horstman, André Hartmann and Lukas Niemeier from Zalando Tech visited us yesterday evening to present their prototype for running Camunda engine on Apache Cassandra. They published their slides. Zalando is a “multinational e-commerce company that specializes in selling shoes, clothing and other fashion and lifestyle products online“. 2014 they had a revenue of €2.3 billion and currently have 8,500 employees (Source: Wikipedia). AND: they are Camunda enterprise edition subscribers and use Camunda process engine for processing their orders. Whenever you buy something in their online shop, a process instance is kicked off in Camunda process engine. Zalando’s current Architecture Zalando’s system needs to scale horizontally. Currently Zalando’s order processing runs on PostgreSQL database. They partition their order and process engine…
By Daniel Meyer
9 mars 2015
camunda-bpm-platform-osgi 1.1.0 released as a community extension
camunda-bpm-platform-osgi is a community extension that provides support for camunda Bpm platform inside OSGi containers. Ronny Bräunlich has just released a new version 1.1.0 of the library. Read the official release blog post and make sure to fork the project on GitHub.
5 mars 2015
Camunda BPM 7.3.0-alpha2 released
A new alpha release of our open source BPM and Workflow platform is available for download. The highlights of this release are: Process Engine and Rest API Native JSON and XML Variable Value Types Improved Sorting: specify multiple sort parameters in Rest API, sort task by variable value Historic Job Log Support for databases: Oracle 12c Partially Order Historic Activity Instances by occurrence Cockpit UI improvements Advanced Process Instance Search (enterprise feature) Tasklist Sort by multiple parameters Sort by variable value Admin Browse Users by Group JavaScript SDK Add group resource Support local variables The full release notes can retrieved from Jira. The known issues as well. You can download Camunda, run it with Docker or add it to your…
By Daniel Meyer
17 févr. 2015
Feedback wanted: Camunda BPM and Business Rules
Have you ever used the business rules task in BPMN? Are your company’s business rules closely related to your processes? Many of our users will answer these questions with a ‘yes’. With the new DMN standard for decision management and business rules being close to the final release at OMG, the whole topic has recently been getting increased attention. The DMN (Decision Model and Notation) standard has been built in a way so that it can easily interact and integrate with BPMN. Camunda BPM is widely considered a great BPMN engine. We have recently added the CMMN standard for case management to this engine, which was a great success for our users. Now we are thinking about adding a solution…
9 févr. 2015
{ json : everywhere } – How to use JSON in a process
Since Camunda BPM platform 7.2 it is very easy to read, write and manipulate JSON objects by using Camunda Spin. Among other things, this feature is used to serialize Java objects inside a process instance in the process engine. But what if you want to use JSON Variables without mapping to Java objects? With the next alpha release we will introduce a new ValueType “json” (and “xml” but that is an other story). In this post I demonstrate how you can use the JSON value type to implement HTML Forms which work with a JSON Variable, implement BPMN Sequence Flow conditions based on the properties of the JSON Variable. Example Process In this post I use the following example process:…
5 févr. 2015
Data mapping and transformation with Camunda Spin and Java 8
Working with text based data formats such as Xml and JSON is a common requirement when implementing BPMN processes. Since version 7.2 Camunda provides an optional library which is called Camunda Spin. Spin is a lightweight wrapper library which provides a easy to use API when working with text based data formats such as XML and JSON. In this post I show how the Camunda Spin can be used for implementing data transformations and mapping in combination with the Java 8 Stream processing API and contrast this to the classical Java 6 / 7 way of doing it. Example The example we use is how to transform a list of The Big Bang Theory episodes (provided as…
By Daniel Meyer
3 févr. 2015
The symbiosis of test and documentation
We want to build a library of reusable widgets, which are tested and documented. The components of the Tasklist search are examples for such widgets: This blog entry describes how we document and test widgets and make sure that tests and documentation stay in sync. Tests With E2E tests we specify and test the desired behavior of the widgets. For our angular widgets, we use Protractor. E2E tests interact with a webpage, e.g. by clicking on links and buttons or typing text. This simulates the user behavior. To run these tests, we have to create the webpages the tests use. These webpages display the widget in the environment we want to test. Documentation For the documentation, we describe the interface…
2 févr. 2015
Gracefully Cancelling a Process Instance
Cancelling a running process instance in Camunda is easy: DELETE /process-instance/{id} or, using Java API: RuntimeService.deleteProcessInstance(String, String) this will simply delete the process instance and remove it from the database. Sometimes this is exactly what you need. However: what if you want to cancel the process instance gracefully? Gracefully in the sense that the effects it has had on the outside world are undone? The answer to this is compensation. In this post I discuss two ways to implement compensation. Internal Compensation Modeling compensation inside the process itself: The compensation undoes the effects of the process so far. This is usually modeled in a way where you attach a compensation handler to those service tasks which have effects on…
By Daniel Meyer


