activiti的简单查询

 

1  启动流程

 

  RuntimeService rts = processEngine.getRuntimeService();   

   ProcessInstance   pinstance = rts.startProcessInstanceByKey("myProcessId");  

 //使用流程定义Key启动流程 按照最新版本启动

 

   System.out.println(pinstance.getActivityId());   // usertask1
   System.out.println(pinstance.getId());   // 5001

 

 

查看数据:

SELECT *  FROM  act_ru_execution

 

SELECT *  FROM  act_ru_task

2  完成当前已启动的任务

 

 this.processEngineCfg.getTaskService().complete("5004");   // 5004 为 act_ru_task 的主机id

 

 查看流程情况: SELECT *  FROM   act_hi_taskinst

 

 

3 查询流程定义

 

List<ProcessDefinition> pDeflist = this.processEngineCfg.getRepositoryService()
.createProcessDefinitionQuery()
.orderByProcessDefinitionVersion().asc().list();

if(pDeflist!=null && pDeflist.size()>0){

for(ProcessDefinition pdef:pDeflist){
System.out.println("------------------------------------------------");
System.out.println("流程定义id "+pdef.getId());
System.out.println("流程定义的名称 "+pdef.getName());
System.out.println("流程定义的Key "+pdef.getKey());
System.out.println("流程定义的版本 "+pdef.getVersion());
System.out.println("资源名称bpmn文件 "+pdef.getResourceName());
System.out.println("资源名称png文件 "+pdef.getDiagramResourceName());
System.out.println("部署id "+pdef.getDeploymentId());

}


}

 

输出结果如下:

------------------------------------------------
流程定义id myProcessId:1:2504
流程定义的名称 Myprocess
流程定义的Key myProcessId
流程定义的版本 1
资源名称bpmn文件 diagrams/MyProcess.bpmn
资源名称png文件 diagrams/MyProcess.png
部署id 2501
------------------------------------------------
流程定义id myProcessId:2:12504
流程定义的名称 Myprocess
流程定义的Key myProcessId
流程定义的版本 2
资源名称bpmn文件 diagrams/MyProcess.bpmn
资源名称png文件 diagrams/MyProcess.png
部署id 12501

 

 

4  删除流程定义:

 

删除前,已经启动两个流程,表task中也有对应的数据


RepositoryService repositoryService = this.processEngineCfg.getRepositoryService();

repositoryService.deleteDeployment("12501");   //执行删除 或者  repositoryService.deleteDeployment("12501",true); 级联删除

 

删除后数据如下:

表task中相对应的数据也删除

 

5 设置流程变量 

 方式1:以在流程启动,和任务执行的时候设置

 

RuntimeService rts = this.processEngineCfg.getRuntimeService();
Map<String,Object> map = new HashMap<String,Object>();
map.put("ids", "ids-v");
map.put("nams", "nams-v");
map.put("others", "others-v");
ProcessInstance pinstance = rts.startProcessInstanceByKey("myProcessId",map);

 

 

 

 方式二   通过taskService或者runtimeService设置

SELECT *  FROM act_ru_task  WHERE execution_id_='15001'  得到 taskid 为 15007

 

 

TaskService taskService = this.processEngineCfg.getTaskService();

String taskid="15007";

taskService.setVariable(taskid, "请假天数", "7天");
taskService.setVariable(taskid,"请假原因", "事假");
taskService.setVariable(taskid,"请假日期", new Date());

Person person = new Person();
person.setAge(30);
person.setName("张三丰");
person.setPid("00002");
taskService.setVariable(taskid,"相对人信息", person);

 

查询操作结果:

其中 

可以在表 act_ge_bytearray 中进行数据查询:

 

 5 设置流程变量 

 

 

TaskService taskService = this.processEngineCfg.getTaskService();

String taskid="15007";

System.out.println("请假天数 : "+ taskService.getVariable(taskid, "请假天数"));

System.out.println("请假日期 : "+ taskService.getVariable(taskid, "请假日期"));

Person person = (Person) taskService.getVariable(taskid, "相对人信息");

System.out.println("请假人信息 年龄:"+person.getAge()+" 姓名:"+person.getPid());

 

输出结果如下:

请假天数 : 7天
请假日期 : Thu Feb 09 15:42:37 CST 2017
请假人信息 年龄:30 姓名:00002

 

posted @ 2017-02-09 16:10  My-yunShu  阅读(666)  评论(0编辑  收藏  举报