- Bpmn Model API
- Task Operation Log
- Edit group Identity Links in cockpit monitoring web application
- Cockpit usability improvements (Browser History, Icons)
- Consolidated Examples Repository
- Diagram View for Historic Process Instances
- Audit Log for Historic Process Instances
- Advanced Querying Features for Historic Process Instances
Bpmn Model Api integration with Process Engine
First, you can access the model for all processes deployed to the process engine using the Repository Service:
// get the BpmnModelInstance for a deployed process
BpmnModelInstance processModel = runtimeService.getBpmnModelInstance("someProcessDefinitionId");
// find all User Tasks
ModelElementType taskType = processModel.getModel().getType(UserTask.class);
Collection<ModelElementInstance> taskInstances = modelInstance.getModelElementsByType(taskType);
// Iterate the tasks ...
You can also get your hands on the current FlowElement or Usertask from a JavaDeleagte, ExecutionListener or TaskListener implementation:
public class ExampleServiceTask implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
BpmnModelInstance modelInstance = execution.getBpmnModelInstance();
ServiceTask serviceTask = (ServiceTask) execution.getBpmnModelElementInstance();
// read properties from model:
serviceTask.getIoSpecification();
//...
}
}
Sebastian Menski who is largely responsible for the BPMN model api implementation also added a fluent builder API which makes it easy to create a new BPMN process (or edit an existing process) using in only a few lines of code:
BpmnModelInstance modelInstance = Bpmn.createProcess()
.name("Example process")
.executable()
.startEvent()
.userTask()
.name("Some work to do")
.endEvent()
.done();
Task Operation Log
Thanks to Danny Gräf, the process engine now logs operations performed on tasks at history level full. This allows you to inspect which user created, delegated, completed … a Task:
// who worked on this task?
historyService.createUserOperationLogQuery()
.taskId("someTaskId")
.list();
// all operations performed by a given user
historyService.createUserOperationLogQuery()
.userId("jonny")
.list();
...
This is a feature request that many of our customers requested. We plan on adding this feature to the cockpit monitoring application as well.
New enterprise Features in cockpit
Roman Smirnov and Valentin Vago added a couple of enterprise only features to camunda cockpit: Advanced querying for Historic Process Instances:
An activity audit log:
Which can be filtered using the hierarchical activity instance tree:
What else is going on?
Join us at the Camunda BPM birthday party in Berlin on March 18th!
We announced the launch of our new open source project bpmn.io.
There has been some awesome progress in some of our community maintained extensions:
OSGi Integration
Ronny Bräunlich did some great work on the testsuite and got a contribution of apache karaf commands
AssertJ Testing Library
Great progress in fluent assertion library maintained by Martin Schimak. You definitely have to check out this project!!!
Needle Testing Library
Jan Galinski added features and documentation.