工作流activiti5 使用流程變量


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&amp;useUnicode=true&amp;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());
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM