activiti 核心API

1.获得一个流程引擎配置对象

//获得一个流程引擎配置对象
ProcessEngine pe = ProcessEngines.getDefaultProcessEngine(); 
调用ProcessEnginesgetDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。    

2.管理流程定义

RepositoryService repositoryService = processEngine.getRepositoryService();
DeploymentBuilder deployment = repositoryService.createDeployment();                
 deployment.addClasspathResource("test1.bpmn");
 deployment.addClasspathResource("test1.png");        
 Deployment deploy = deployment.deploy();
System.out.println(deploy.getId() + " " + deploy.getName() + " " + deploy.getDeploymentTime()); 

act_re_deployment表中插入一条数据:

 往act_re_procdef表中插入一条数据:

 往act_ge_bytearray表中插入两条数据:
  

3.開啟流程返回流程實例

RuntimeService runtimeService = processEngine.getRuntimeService();
String processDefinitionId="test1:1:4";
//開啟流程返回流程實例
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId);
System.out.println(processInstance.getId() + " " + processInstance.getActivityId());  

往act_ru_execution(流程实例)表中插入一条数据:
 往act_ru_task (任务)表中插入一条数据:
 往act_hi_taskinst (历史任务) 表中插入一条数据:
 

4.查询任务列表:

                  TaskService taskService = processEngine.getTaskService();
                TaskQuery taskQuery = taskService.createTaskQuery();
                taskQuery.taskAssignee("张三");//添加过滤条件,使用办理者查询
                taskQuery.orderByTaskId().desc();//添加排序条件
                taskQuery.listPage(0, 10);//添加分页条件
        List<Task> list = taskQuery.list();//发出sql,查询任务表
        for (Task task : list) {
            System.out.println(task.getId() + " " + task.getName() + " " + task.getAssignee());
        }  

5.办理任务:

               TaskService taskService = processEngine.getTaskService();
         String taskId="104";
      taskService.complete(taskId);
                     
张三办理完任务后 ,act_ru_task 表中关于张三的那条任务记录将被删除,走到下个任务节点,到李四审批。
act_ru_task 表中只保存当前在办理的任务,办理完成即被删除。
 李四办理完 ,就走到下个节点,表中也会删除李四那条任务记录。
 
act_hi_taskinst 历史任务表 中会保存每个节点,整个流程办理过程都在这里。
 






posted @ 2017-04-18 13:53  玄霄2015  阅读(170)  评论(0编辑  收藏  举报