1、activiti配置文件activiti.cfg.xml
activiti.cfg.xml文件放在項目resources目錄下,resources目錄是activiti查找配置文件的默認目錄
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="databaseSchemaUpdate" value="true" />
<property name="databaseType" value="mysql"/>
<property name="dataSource" ref="dataSource"/>
<property name="asyncExecutorActivate" value="false" />
<property name="mailServerHost" value="mail.my-corp.com" />
<property name="mailServerPort" value="5025" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/bpmn?autoReconnect=true&useUnicode=true&characterEncoding=UTF8" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="defaultAutoCommit" value="false"/>
</bean>
</beans>
2、流程圖
<userTask activiti:assignee="#{userId}" activiti:exclusive="true" completionQuantity="1" id="_3" implementation="##unspecified" isForCompensation="false" name="approval task" startQuantity="1">
</userTask>
<userTask activiti:assignee="#{checkId}" activiti:exclusive="true" completionQuantity="1" id="_4" implementation="##unspecified" isForCompensation="false" name="check outcome" startQuantity="1">
</userTask>
使用#{userId}和#{checkId}設置流程變量
3、部署流程並啟動流程實例
@Test
public void firstBpmn(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//部署流程
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.createDeployment()
.addClasspathResource("third.bpmn")
.deploy();
//啟動流程實例並設置流程變量
Map<String,Object> variables = new HashMap<String,Object>();
variables.put("userId","張三峰");
variables.put("checkId","英語");
ProcessInstance processInstance = processEngine.getRuntimeService()
.startProcessInstanceByKey("PROCESS_2",variables);
System.out.println("id:"+processInstance.getId());
}
4、查看個人任務
@Test
public void task(){
// ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
// .buildProcessEngine();
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
List<Task> zhangsan = processEngine.getTaskService().createTaskQuery().taskAssignee("張三峰").list();
for (Task task:zhangsan){
System.out.println(task.getId()+" ---- "+task.getName());
}
}