activiti工作流使用的一般步骤

一、在eclipse或Myeclipse中安装activiti插件;

二、通过activiti连接数据库,有以下两种连接数据库的形式:

1.通过java代码链接数据库:

public void createTableByOracle(){
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
configuration.setJdbcUrl("jdbc:oracle:thin:@192.168.1.150:1521:orcl");
configuration.setJdbcDriver("oracle.jdbc.OracleDriver");
configuration.setJdbcUsername("scott");
configuration.setJdbcPassword("oracle");
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
ProcessEngine processEngine = configuration.buildProcessEngine();
System.out.println("-------------------------------------");
System.out.println(processEngine);
}

2.通过配置文件配置链接数据库

(1)配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://192.168.1.150:3306/officemanage?characterEncoding=utf8" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean> <bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="true" />
</bean> </beans>

(2)java代码读取配置文件链接数据库:

public void createTableByXML(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
}

三、创建工作流的bpmn类型的文件:

四、部署bpmn和png类型的工作流文件资源:(注意:一个工作流程部署一次即可,以后只需要启动一条流程即可)

public void deployTest(){
System.out.println("开始部署一个审批流程");
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deployment = processEngine.getRepositoryService().createDeployment().name("路费报销审批流程").addClasspathResource("choiceProcess.bpmn").addClasspathResource("choiceProcess.png").deploy();
System.out.println("部署流程完毕");
}

五、启动一条流程:

public void StartProcess(){
System.out.println("开始启动一个审批流程");
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("luFeiBaoXiaoShenPi");
System.out.println(processInstance.getId()+"--------"+processInstance.getActivityId());
System.out.println("启动流程完毕");
}

六、查看某个人要完成的任务列表:

public void queryProcess(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
String assignee0 = "lsy";
List<Task> zhangSanList = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee0).orderByTaskCreateTime().asc().list();
System.out.println("****************"+assignee0+"个人任务列表***********************");
for (Task task : zhangSanList) {
System.out.println("id:"+task.getId()+",名称:"+task.getName()+",创建时间"+task.getCreateTime()+",人物:"+task.getAssignee());
}
}

七、某个人完成自己的某个任务:

1.不带变量:

public void completeTask(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getTaskService().complete("235009");
System.out.println("完成任务");
}

2.带变量:

public void completeTaskByVariables(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Map<String, Object> variables = new HashMap<String,Object>();
variables.put("money", 501);
processEngine.getTaskService().complete("265004",variables);
System.out.println("完成任务");
}

八、某个人查看自己已完成的任务列表:

public void queryHistoryTask(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
List<HistoricTaskInstance> historicList = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee("lsy").list();
for (HistoricTaskInstance historicTaskInstance : historicList) {
System.out.println(historicTaskInstance.getId()+":"+historicTaskInstance.getProcessDefinitionId()+":"+historicTaskInstance.getAssignee()+":"+historicTaskInstance.getExecutionId()+":"+historicTaskInstance.getStartTime()+":"+historicTaskInstance.getEndTime()+":"+historicTaskInstance.getDurationInMillis());
}
}

最新文章

  1. &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;. use different encoding
  2. linux搭建mysql 5.6.28
  3. 实现scp自动输入密码(判断yesno选项)
  4. Linux后台进程管理的一些命令小结
  5. Java中int和String互相转换的多种方法
  6. QProgressBar和QProgressDialog的简单实用
  7. 配置exVim开发环境
  8. vue 限制输入字符长度
  9. js用解构来定义变量并赋值
  10. Handsontable Dropdown with key-value pair
  11. 去除input[type=number]的默认样式
  12. vue脚手架构
  13. 运行程序,解读this指向---case1
  14. 持续集成--Jenkins--1
  15. java设计模式-Command模式
  16. IOS初级:UITableView
  17. keras model.compile(loss=&#39;目标函数 &#39;, optimizer=&#39;adam&#39;, metrics=[&#39;accuracy&#39;])
  18. BZOJ2956: 模积和(数论分块)
  19. Unity3D Shader落雪效果
  20. js实现个链表吧

热门文章

  1. socket编程模拟linux下的ssh代码实现
  2. mongodb数据库下载链接,相关配置(转载),官方api
  3. 【bzoj1726】Roadblocks
  4. 计算机中如何实现除数是2的幂次的除法【转载自CSDN】
  5. Elasticsearch之入门知识
  6. 记录一下filter
  7. Ubuntu安装LAMP
  8. javaScript中的严格模式 (译)
  9. chrome浏览器好用的一些插件
  10. AJPFX关于线程创建的方式