Why Teams call analytics are critical to your entire business
2014 Pre-MSc-IS-5 Process Layer
1. Andreas Martin - Page 1
Master of Science in Business Information Systems FHNW
Pre-Master Information Systems
5. Process Layer
Andreas Martin
5. Process Layer
http://www.flickr.com/photos/dirk_hofmann/4200450207
2. Andreas Martin - Page 2
Process Layer
Workflow Systems
camunda BPM
Hands-on
Hands-on 5: BPM CDI WEB APPLICATION
Hands-on 6: BPM JAVA EE
5. Process Layer
4. Andreas Martin - Page 4
Workflow System Characteristics
5. Process Layer
5. Andreas Martin - Page 5
camunda BPM
Open Source BPM and Workflow based on BPMN 2.0
5. Process Layer
6. Andreas Martin - Page 6
camunda BPM – the Approach
5. Process Layer
Source: http://de.slideshare.net/camunda/open-source-bpm-mit-bpmn-20-und-java
7. Andreas Martin - Page 7
Features - Modeller: Process Modelling with BPMN 2.0
5. Process Layer
Source: http://camunda.org
8. Andreas Martin - Page 8
Features - Platform: Visual Process Monitoring
Find Process Instances
5. Process Layer
Source: http://camunda.org
9. Andreas Martin - Page 9
Features - Platform: Visual Process Monitoring
Inspect a Process Instance
5. Process Layer
Source: http://camunda.org
10. Andreas Martin - Page 10
Features - Platform: Visual Process Monitoring
Repair a Process Instance
5. Process Layer
Source: http://camunda.org
11. Andreas Martin - Page 11
Features - Platform: Implement Processes
Native Java API
5. Process Layer
Source: http://camunda.org
12. Andreas Martin - Page 12
Features - Platform: Implement Processes
Seamless Spring & Java EE Integration
5. Process Layer
Source: http://camunda.org
13. Andreas Martin - Page 13
Features - Platform: Execute BPMN 2.0
5. Process Layer
Source: http://camunda.org
14. Andreas Martin - Page 14
camunda BPM – History and Roadmap
5. Process Layer
Source: http://de.slideshare.net/camunda/open-source-bpm-mit-bpmn-20-und-java
15. Andreas Martin - Page 15
camunda BPM - Infrastructure
5. Process Layer
Source: http://de.slideshare.net/camunda/open-source-bpm-mit-bpmn-20-und-java
16. Andreas Martin - Page 16
camunda BPM - Components
5. Process Layer
Source: http://de.slideshare.net/camunda/open-source-bpm-mit-bpmn-20-und-java
17. Andreas Martin - Page 17
camunda BPM – Java EE service
5. Process Layer
@Named
@Stateless
public class CustomerService {
@Inject
@ProcessVariable
public Object customerId;
@Inject
private BusinessProcess businessProcess;
@EJB
CustomerEJB customerEJB;
public void loadCustomer() {
Customer customer = customerEJB.findCustomerById(Long
.valueOf((String) customerId));
if (customer != null) {
businessProcess.setVariable("customerFirstName", customer.getFirstName());
businessProcess.setVariable("customerLastName", customer.getLastName());
}
}
}
18. Andreas Martin - Page 18
camunda BPM – HTML forms
5. Process Layer
<form class="form-horizontal">
<div class="control-group">
<label class="control-label">Customer ID</label>
<div class="controls">
<input form-field type="string" name="customerId"></input>
</div>
</div>
<div class="control-group">
<label class="control-label">Amount</label>
<div class="controls">
<input form-field type="number" name="amount"></input>
</div>
</div>
</form>
19. Andreas Martin - Page 19
Hands-on 5
BPM CDI WEB APPLICATION
5. Process Layer
20. Andreas Martin - Page 20
Hands-on 5
2. Derive use cases from
workflow graph.
3. Extract service model from
use case model.
5. Process Layer
1. We are going to implement the “Loan Approval” process.
21. Andreas Martin - Page 21
Hands-on 5
4. Import “hands-on-5” project.
5. Model the execution graph using the workflow graph as blueprint.
6. Implement the services as modelled in service model.
7. The project already contains HTML forms – inspect them.
8. Add the service calls to the BPMN model and make sure that
process model is executable.
9. Add the form references and conditions to the BPMN model.
10. Deploy and run the workflow.
5. Process Layer
22. Andreas Martin - Page 22
Hands-on 6
BPM JAVA EE
5. Process Layer
23. Andreas Martin - Page 23
Database Connection
…will be used for the next hands-on
Modify the MySQL_premscis-xa-ds.xml file:
When using a Web Project in Eclipse, it is possible to deploy a datasource using a JBoss
datasource file (…-ds.xml)
This file must be placed under:
Project
+---srcmainwebappWEB-INF
¦ faces-config.xml
¦ jboss-web.xml
¦ MySQL_premscis-xa-ds.xml
Choose another student ‘number’ (DatabaseName) to avoid overwriting.
When using Camunda BPM in a Java EE environment you have to implement a “xa-datasource”
5. Process Layer
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<xa-datasource jndi-name="java:jboss/datasources/MySQL_premscis_xa" pool-name="MySQL_premscis" enabled="true" use-java-
context="true">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
<xa-datasource-property name="PortNumber">80</xa-datasource-property>
<xa-datasource-property name="ServerName">mature.iwi.wirtschaft.fhnw.ch</xa-datasource-property>
<xa-datasource-property name="DatabaseName">premscis</xa-datasource-property>
<driver>mysql-connector-java-5.1.32-bin.jarcom.mysql.jdbc.Driver_5_1</driver>
<security>
<user-name>premscis</user-name>
<password>premscis</password>
</security>
</xa-datasource>
</datasources>
24. Andreas Martin - Page 24
Hands-on 6
…implement the Reference Project
5. Process Layer