Camunda Team Blog

Camunda BPM 7.12.0-alpha2 Released

Written by Camunda BPM Team on , under Execution category.

Camunda BPM 7.12.0-alpha2 is here and the highlights are:

  • Query Tasks by a list of assignees with the assigneeIn filter
  • DMN 1.2 Schema Support
  • OR in More Query Types
  • Clarified OpenJDK Support
  • Engine Logging Configuration
  • Case Insensitive Queries
  • Operation Log Annotations
  • 23 Bug Fixes

You can Download Camunda for free (click on Preview Release) or Run it with Docker.

If you are interested, you can see the complete release notes.

If you want to dig in deeper, you can find the source code on GitHub.

Query Tasks by a list of assignees with the assigneeIn filter

With version 7.12.0-alpha2, it is possible to query for Tasks that are assigned to any assignee in a given list of assignee IDs. The feature is available through the Java API, by calling:

taskService.createTaskQuery()
    .taskAssigneeIn("john", "mary", "demo")
    .list();

Filtering by assignees can also be done through the Rest API by sending a HTTP Get or HTTP Post Request to the /task endpoint.

DMN 1.2 Schema Support

As of this version, DMN models that use the DMN 1.2 namespace can be deployed into the process engine and parsed with the DMN Model API. Note that this is currently limited to the scope of implemented DMN 1.1 features. See our DMN Implementation Reference for details.

OR in More Query Types

A special thanks go to Fabian Bahle who contributed this feature to our codebase.

In Camunda BPM 7.8, we introduced OR in Task Queries. In this release, we added the feature to more query types:

  • Process Instances
  • Historic Process Instances
  • Historic Task Instances

The criteria of “normal” queries are implicitly linked together with the logical AND operator. With the help of OR queries, the criteria are tied together with the logical OR operator.

Here you can see an example query which uses the newly introduced Java API:

List<ProcessInstance> processInstances =
  runtimeService.createProcessInstanceQuery()
    .or()
      .processDefinitionKey("invoice")
      .variableValueEquals("foo", "bar")
    .endOr()
    .list();

And this is how the REST API call would look like:

POST /process-instance

{
  "orQueries": [
    {
      "processDefinitionKey": "invoice",
      "variables": [{
        "name": "foo",
        "operator": "eq",
        "value": "bar"
      }]
    }
  ]
}

The queries shown above would retrieve all process instances which either belong to the key “invoice” or that have a variable with the name “foo” and the value “bar”.

For more details, please see the documentation about the Java API and the REST API.

Clarified OpenJDK Support

With the changes in Oracle’s licensing model for OracleJDK, alternative JDKs and JDK builds have moved into the focus of our users. Camunda supports OpenJDK and IBM JDK already since version 7.0. Now, we have clarified that our OpenJDK support includes variants such as Oracle OpenJDK, Adopt OpenJDK, Amazon Corretto, and Azul Zulu. This applies to this alpha release, as well as previous releases until 7.9.0. See our Supported Environments documentation for a complete list.

Engine Logging Configuration

We introduced two new configuration flags in the Process Engine Configuration that allows users to configure logging behavior.

Enable/Disable Logging Of Command Exceptions: Exceptions that occur during the execution of a command get caught and re-thrown to be handled by the calling user code. Whether or not these exceptions are logged can be configured by the new configuration flag enableCmdExceptionLogging. Bear in mind, that catching but not logging these exceptions can result in a loss of debugging/troubleshooting information. Also, when logging the exceptions, some exceptions might still be logged by the engine and thus can appear twice in the log (e.g., exceptions during job execution). By default, command exception logging is switched on.

Enable/Disable Reduced Job Exception Logging: The engine logs exceptions that occur during the execution of a job. Since a failed job can be retried and fail again, those exceptions might appear several times in the log. It is now possible to reduce the output by setting the enableReducedJobExceptionLogging configuration flag to true. This way, exceptions that occur while executing a job that has retries left are not logged. Only the last failure (that uses the last retry) are logged. A known limitation of this is when setting the job retries to 0 or 1 the job would execute once but an exception would not be logged since we currently have no way of checking left retries at the first execution.

Case Insensitive Queries

With the Camunda 7.11.0 release, we introduced case insensitive semantics for task variable queries. It is now possible to create case insensitive Process-, Case-, Execution-, and VariableInstances queries as well. It is also possible to query historical Process-, Task-, and Case instances this way.

The Java and REST-API behave as we described in the 7.11.0-alpha3 Blog Post. For more information on how to use it, check how to use the REST API or JAVA API in our documentation.

It is also possible to use case insensitive Queries from Cockpit. Whenever a search supports case insensitive searches, the options to ignore the case of the name and value will appear. Please note that this option will only be displayed if the search contains a variable, even if the query itself supports this option. It is also possible to use case insensitive searches in Batch and Migration operations, making filtering for specific Process Instances easier.

A Case Insensitive Process Instance Search

Operation Log Annotations

Some actions require an explanation. With this release, we added the possibility to annotate user actions in the Operation Log. This helps with auditing and can give a better understanding of why a specific operation or modification was performed.

This functionality can be found in the Operation Log in Cockpit and Admin. The column is enabled by default. If you used the operation log in a previous version of Camunda, you have to add it manually using the Add column button.

A Annotated Operation Log Entry

Please bear in mind that this feature is only available in the Enterprise Edition of the Camunda BPM platform. To try it out anyway, please request a Free Trial or Quote

Stay Tuned!

This is the second alpha release on the road to Camunda BPM 7.12 (due November 30, 2019). The next developer preview (alpha 3) is scheduled at the end of August and will be packed with new features.

Your Feedback Matters!

With every release, we strive to improve Camunda BPM. To make this possible, we are reliant on your feedback. Feel free to share your ideas and suggestions with us.

You can contact us by writing a post in the forum.