设置流程定义图bpmn
assignee :申请人、审核人
相关操作的表
-- act_re_procdef 流程定义表
-- act_re_deployment 部署表
-- act_ge_property 通用属性表 id 生成策略
-- act_ru_execution 执行对象,流程实例,流程对象
-- act_ru_task 任务表
入门示例:
1. 创建流程引擎及工作流数据表
- 数据库及表可以自动创建,
可以在配置数据库连接时,实现自动创建数据库和表
- 取得ProcessEngine对象
先取得ProcessEngineConfiguration 对象 ,再由该对象来构建ProcessEngine
2. 部署流程
影响的表:
act_re_procdef :流程定义表 :
该表的key属性 是bpmn 的 id决定
该表的name属性 是bpmn 的name 属性决定
act_re_deployment:部署表 :id是由act_ge_property的 next_dbid决定
act_ge_property :通用属性表
3. 启动流程
4. 查看我的个人任务
5. 完成我的个人任务
示例代码:
package com; import java.util.List; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; public class ActivitiTest { /** * 建表并创建流程引擎对象(核心对象) */ @Test public void createProcessEngine() { // 获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); System.out.println(processEngine); } /** * 部署流程定义 影响的表: act_re_procdef : 流程定义表 : 该表的key属性 是bpmn 的 id决定 该表的name属性 * 是bpmn 的name 属性决定 act_re_deployment:部署表 :id是由act_ge_property的 next_dbid决定 * act_ge_property :通用属性表 */ @Test public void deploy() { // 获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 获取仓库服务的实例 Deployment deployment = processEngine.getRepositoryService()// .createDeployment()// .addClasspathResource("bpmn/hello.bpmn")// .addClasspathResource("bpmn/hello.png")// .name("报销单流程").deploy(); System.out.println(deployment.getId() + " " + deployment.getName()); } /** * 启动流程 */ @Test public void startProcess() { // 获取流程引擎对象 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 启动流程 // 使用流程定义的key启动流程实例,默认会按照最新版本启动流程实例 ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("helloprocess"); System.out.println("pid:" + pi.getId() + ",activitiId:" + pi.getActivityId()); } /** * 查看任务 * @throws Exception */ @Test public void queryMyTask() throws Exception { // 指定任务办理者 String assignee = "李四"; // 获取流程引擎对象 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 查询任务的列表 List<Task> tasks = processEngine.getTaskService().createTaskQuery()// 创建任务查询对象 .taskAssignee(assignee)// 指定个人任务办理人 .list(); // 遍历结合查看内容 for (Task task : tasks) { System.out.println("taskId:" + task.getId() + ",taskName:" + task.getName()); System.out.println("*************************"); } } /** * 办理任务 * @throws Exception */ @Test public void completeTask() throws Exception { String taskId = "404"; // 获取流程引擎对象 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); // 完成任务 processEngine.getTaskService() .complete(taskId); System.out.println("完成任务!"); } }
本文出自 “老牛Java” 博客,请务必保留此出处http://liuyj.blog.51cto.com/2340749/1732941
原文地址:http://liuyj.blog.51cto.com/2340749/1732941