15. Embeddable Engine
@Inject
private ProcessEngine engine;
[…]
Deployment deployment = engine.getRepositoryService()
.createDeployment()
.addClasspathResource("invoice.bpmn")
.deploy();
engine.getRuntimeService().startProcessInstanceByKey("invoice");
List<Task> list = engine.getTaskService().createTaskQuery().list();
HashMap<String, Object> variables = new HashMap<String, Object>();
variables.put("approver", "bernd");
engine.getTaskService().complete(list.get(0).getId(), variables);
CDI / Spring
(if you want)
Services to talk
to the engine
Use TX / JTA /
EJB
(if you want)
16. Some code
<process ...>
<serviceTask camunda:delegateExpression="#{svnService}"
name="PDF in SVN ablegen">
Process XML refers
CDI/Spring bean
or Java Class
Code is executed when
process instances runs
through
@Named("svnService")
public class StorePDFDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
String someData = (String) execution.getVariable("someData");
17. Process Engine = Infrastruktur
Process Engine
Container
My process
application2
Java
Classes
BPMN 2.0
Processes
JPA, EJB, JTA …
My process
application1
Java
Classes
BPMN 2.0
Processes
…
My process application1
process
engine (jar)
Java
Classes
BPMN 2.0
Processes
…
My process application2
process
engine (jar)
Java
Classes
BPMN 2.0
Processes
…
Websphere,
WebLogic,
…