设置流程定义图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
 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("完成任务!");    }}