根據視頻學習整理以便後續查詢使用,希望交流學習。
1.eclipse需要配置Activity的插件,以下爲配置完成後的結果
2.目錄結構如下
3.activiti.cfg.xml配置文件中內容如下。
<?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 -->
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/act" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="root" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
4.first.bpmn配置文件中的內容如下,學習使用的是簡單請假流程。
5.正文代碼如下
//啓動流程引擎
ProcessEngine engine=ProcessEngines.getDefaultProcessEngine();
//存儲服務
RepositoryService repository=engine.getRepositoryService();
//運行時服務
RuntimeService runtime=engine.getRuntimeService();
//任務服務
TaskService taskService=engine.getTaskService();
//部署流程 一次可以部署多個流程
repository.createDeployment().addClasspathResource("first.bpmn").deploy();
//啓動流程
ProcessInstance pinstance=runtime.startProcessInstanceByKey("myProcess");
//完成任務,根據流程實例id進行查詢當前任務節點
Task task=taskService.createTaskQuery().processInstanceId(pinstance.getId()).singleResult();
System.out.println("當前執行節點:"+task.getName());
taskService.complete(task.getId());
//第二個節點執行
task=taskService.createTaskQuery().processInstanceId(pinstance.getId()).singleResult();
System.out.println("當前執行節點:"+task.getName());
taskService.complete(task.getId());
//判斷是否還有其他節點
task=taskService.createTaskQuery().processInstanceId(pinstance.getId()).singleResult();
System.out.println("當前執行節點:"+task);
//關閉流程引擎
engine.close();
//結束程序
System.exit(0);