1./**部署流程定义*/
public void deploymentProcessDefinition_classpath(){ Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createDeployment()//创建一个部署对象 .name("流程定义")//添加部署的名称 .addClasspathResource("diagrams/helloworld.bpmn")//从classpath的资源中加载,一次只能加载一个文件 .addClasspathResource("diagrams/helloworld.png")//从classpath的资源中加载,一次只能加载一个文件 .deploy();//完成部署 System.out.println("部署ID:"+deployment.getId());// System.out.println("部署名称:"+deployment.getName());// } /**部署流程定义(从zip)*/ @Test public void deploymentProcessDefinition_zip(){ InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.zip"); ZipInputStream zipInputStream = new ZipInputStream(in); Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createDeployment()//创建一个部署对象 .name("流程定义")//添加部署的名称 .addZipInputStream(zipInputStream)//指定zip格式的文件完成部署 .deploy();//完成部署 System.out.println("部署ID:"+deployment.getId());// System.out.println("部署名称:"+deployment.getName());// }
select * from ACT_GE_PROPERTY where NAME_ = ? update ACT_GE_PROPERTY SET REV_ = ?, VALUE_ = ? where NAME_ = ? and REV_ = ? select * from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null)) select J.* from ACT_RU_JOB J inner join ACT_RE_PROCDEF P on J.PROC_DEF_ID_ = P.ID_ where J.HANDLER_TYPE_ = ? and P.KEY_ = ? and (P.TENANT_ID_ = '' or P.TENANT_ID_ is null) insert into ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, TENANT_ID_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) insert into ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, TENANT_ID_, DEPLOY_TIME_) values(?, ?, ?, ?, ?) INSERT ALL INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) SELECT * FROM dual
2./**启动流程实例*/
@Test public void startProcessInstance(){ //流程定义的key String processDefinitionKey = "helloworld"; ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动 System.out.println("流程实例ID:"+pi.getId());//流程实例ID 101 System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID helloworld:1:4 }
select * from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null)) select * from ACT_RE_DEPLOYMENT where ID_ = ? select * from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? order by NAME_ asc select * from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ? and KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) select * from ACT_RE_PROCDEF where ID_ = ? select * from ACT_GE_PROPERTY where NAME_ = ? update ACT_GE_PROPERTY SET REV_ = ?, VALUE_ = ? where NAME_ = ? and REV_ = ? select * from ACT_RU_JOB J where J.EXECUTION_ID_ = ? select distinct T.* from ACT_RU_TASK T where T.EXECUTION_ID_ = ? select * from ACT_RU_IDENTITYLINK where PROC_INST_ID_ = ? insert into ACT_HI_TASKINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, OWNER_, ASSIGNEE_, START_TIME_, CLAIM_TIME_, END_TIME_, DURATION_, DELETE_REASON_, TASK_DEF_KEY_, FORM_KEY_, PRIORITY_, DUE_DATE_, CATEGORY_, TENANT_ID_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) insert into ACT_HI_PROCINST ( ID_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, START_TIME_, END_TIME_, DURATION_, START_USER_ID_, START_ACT_ID_, END_ACT_ID_, SUPER_PROCESS_INSTANCE_ID_, DELETE_REASON_, TENANT_ID_, NAME_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) INSERT ALL INTO ACT_HI_ACTINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, ACT_ID_, TASK_ID_, CALL_PROC_INST_ID_, ACT_NAME_, ACT_TYPE_, ASSIGNEE_, START_TIME_, END_TIME_, DURATION_, TENANT_ID_ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) INTO ACT_HI_ACTINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, ACT_ID_, TASK_ID_, CALL_PROC_INST_ID_, ACT_NAME_, ACT_TYPE_, ASSIGNEE_, START_TIME_, END_TIME_, DURATION_, TENANT_ID_ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) SELECT * FROM dual insert into ACT_HI_IDENTITYLINK (ID_, TYPE_, USER_ID_, GROUP_ID_, TASK_ID_, PROC_INST_ID_) values (?, ?, ?, ?, ?, ?) insert into ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, PARENT_ID_, SUPER_EXEC_, SUSPENSION_STATE_, CACHED_ENT_STATE_, TENANT_ID_, NAME_) values ( ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) insert into ACT_RU_TASK (ID_, REV_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, PRIORITY_, CREATE_TIME_, OWNER_, ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) insert into ACT_RU_IDENTITYLINK (ID_, REV_, TYPE_, USER_ID_, GROUP_ID_, TASK_ID_, PROC_INST_ID_, PROC_DEF_ID_) values (?, 1, ?, ?, ?, ?, ?, ?)
3./**查询当前人的个人任务*/
@Test public void findMyPersonalTask(){ String assignee = "王五"; List<Task> list = processEngine.getTaskService()//与正在执行的任务管理相关的Service .createTaskQuery()//创建任务查询对象 .taskAssignee(assignee)//指定个人任务查询,指定办理人 .list(); if(list!=null && list.size()>0){ for(Task task:list){ System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName()); System.out.println("任务的创建时间:"+task.getCreateTime()); System.out.println("任务的办理人:"+task.getAssignee()); System.out.println("流程实例ID:"+task.getProcessInstanceId()); System.out.println("执行对象ID:"+task.getExecutionId()); System.out.println("流程定义ID:"+task.getProcessDefinitionId()); System.out.println("########################################################"); } } }
select * from ( select a.*, ROWNUM rnum from ( select distinct RES.* from ACT_RU_TASK RES WHERE RES.ASSIGNEE_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ?
4./**完成个人的任务*/(不是最后一位和最后一位的sql有所区别,为不同的sql)
@Test public void completeMyPersonalTask(){ //任务ID String taskId = "302"; processEngine.getTaskService()//与正在执行的任务管理相关的Service .complete(taskId); System.out.println("完成任务:任务ID:"+taskId); }
select * from ACT_RU_TASK where ID_ = ? select * from ACT_RE_PROCDEF where ID_ = ? select * from ACT_RE_DEPLOYMENT where ID_ = ? select * from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? order by NAME_ asc select * from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ? and KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) select * from ACT_RU_TASK where PARENT_TASK_ID_ = ? select * from ACT_RU_IDENTITYLINK where TASK_ID_ = ? select * from ACT_RU_VARIABLE where TASK_ID_ = ? select * from ACT_HI_TASKINST where ID_ = ? select * from ACT_RU_EXECUTION where ID_ = ? select distinct T.* from ACT_RU_TASK T where T.EXECUTION_ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_HI_ACTINST RES WHERE RES.EXECUTION_ID_ = ? and RES.ACT_ID_ = ? and RES.END_TIME_ is null order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ACT_GE_PROPERTY where NAME_ = ? update ACT_GE_PROPERTY SET REV_ = ?, VALUE_ = ? where NAME_ = ? and REV_ = ? select * from ACT_RU_IDENTITYLINK where PROC_INST_ID_ = ? insert into ACT_HI_TASKINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, OWNER_, ASSIGNEE_, START_TIME_, CLAIM_TIME_, END_TIME_, DURATION_, DELETE_REASON_, TASK_DEF_KEY_, FORM_KEY_, PRIORITY_, DUE_DATE_, CATEGORY_, TENANT_ID_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) insert into ACT_HI_ACTINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, ACT_ID_, TASK_ID_, CALL_PROC_INST_ID_, ACT_NAME_, ACT_TYPE_, ASSIGNEE_, START_TIME_, END_TIME_, DURATION_, TENANT_ID_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) insert into ACT_HI_IDENTITYLINK (ID_, TYPE_, USER_ID_, GROUP_ID_, TASK_ID_, PROC_INST_ID_) values (?, ?, ?, ?, ?, ?) insert into ACT_RU_TASK (ID_, REV_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, PRIORITY_, CREATE_TIME_, OWNER_, ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) insert into ACT_RU_IDENTITYLINK (ID_, REV_, TYPE_, USER_ID_, GROUP_ID_, TASK_ID_, PROC_INST_ID_, PROC_DEF_ID_) values (?, 1, ?, ?, ?, ?, ?, ?) update ACT_HI_ACTINST set EXECUTION_ID_ = ?, ASSIGNEE_ = ?, END_TIME_ = ?, DURATION_ = ? where ID_ = ? update ACT_RU_EXECUTION set REV_ = ?, BUSINESS_KEY_ = ?, PROC_DEF_ID_ = ?, ACT_ID_ = ?, IS_ACTIVE_ = ?, IS_CONCURRENT_ = ?, IS_SCOPE_ = ?, IS_EVENT_SCOPE_ = ?, PARENT_ID_ = ?, SUPER_EXEC_ = ?, SUSPENSION_STATE_ = ?, CACHED_ENT_STATE_ = ?, NAME_ = ? where ID_ = ? and REV_ = ? update ACT_HI_TASKINST set EXECUTION_ID_ = ?, NAME_ = ?, PARENT_TASK_ID_ = ?, DESCRIPTION_ = ?, OWNER_ = ?, ASSIGNEE_ = ?, CLAIM_TIME_ = ?, END_TIME_ = ?, DURATION_ = ?, DELETE_REASON_ = ?, TASK_DEF_KEY_ = ?, FORM_KEY_ = ?, PRIORITY_ = ?, DUE_DATE_ = ?, CATEGORY_ = ? where ID_ = ? delete from ACT_RU_TASK where ID_ = ? and REV_ = ?
select * from ACT_RU_TASK where ID_ = ? select * from ACT_RE_PROCDEF where ID_ = ? select * from ACT_RE_DEPLOYMENT where ID_ = ? select * from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? order by NAME_ asc select * from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ? and KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) select * from ACT_RU_TASK where PARENT_TASK_ID_ = ? select * from ACT_RU_IDENTITYLINK where TASK_ID_ = ? select * from ACT_RU_VARIABLE where TASK_ID_ = ? select * from ACT_HI_TASKINST where ID_ = ? select * from ACT_RU_EXECUTION where ID_ = ? select distinct T.* from ACT_RU_TASK T where T.EXECUTION_ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_HI_ACTINST RES WHERE RES.EXECUTION_ID_ = ? and RES.ACT_ID_ = ? and RES.END_TIME_ is null order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ACT_GE_PROPERTY where NAME_ = ? update ACT_GE_PROPERTY SET REV_ = ?, VALUE_ = ? where NAME_ = ? and REV_ = ? select * from ACT_HI_PROCINST where PROC_INST_ID_ = ? select * from ACT_RU_VARIABLE where EXECUTION_ID_ = ? and TASK_ID_ is null select * from ACT_RU_EXECUTION where PARENT_ID_ = ? select * from ACT_RU_IDENTITYLINK where PROC_INST_ID_ = ? insert into ACT_HI_ACTINST ( ID_, PROC_DEF_ID_, PROC_INST_ID_, EXECUTION_ID_, ACT_ID_, TASK_ID_, CALL_PROC_INST_ID_, ACT_NAME_, ACT_TYPE_, ASSIGNEE_, START_TIME_, END_TIME_, DURATION_, TENANT_ID_ ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) update ACT_HI_ACTINST set EXECUTION_ID_ = ?, ASSIGNEE_ = ?, END_TIME_ = ?, DURATION_ = ? where ID_ = ? update ACT_HI_PROCINST set PROC_DEF_ID_ = ?, BUSINESS_KEY_ = ?, START_TIME_ = ?, END_TIME_ = ?, DURATION_ = ?, END_ACT_ID_ = ?, DELETE_REASON_ = ?, NAME_ = ? where ID_ = ? update ACT_HI_TASKINST set EXECUTION_ID_ = ?, NAME_ = ?, PARENT_TASK_ID_ = ?, DESCRIPTION_ = ?, OWNER_ = ?, ASSIGNEE_ = ?, CLAIM_TIME_ = ?, END_TIME_ = ?, DURATION_ = ?, DELETE_REASON_ = ?, TASK_DEF_KEY_ = ?, FORM_KEY_ = ?, PRIORITY_ = ?, DUE_DATE_ = ?, CATEGORY_ = ? where ID_ = ? delete from ACT_RU_TASK where ID_ = ? and REV_ = ? delete from ACT_RU_IDENTITYLINK where ID_ = ? (执行三次,将之前的任务id存在的都删除) delete from ACT_RU_IDENTITYLINK where ID_ = ? delete from ACT_RU_IDENTITYLINK where ID_ = ? delete from ACT_RU_EXECUTION where ID_ = ? and REV_ = ?
5. /**查询流程定义*/
@Test public void findProcessDefinition(){ List<ProcessDefinition> list = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createProcessDefinitionQuery()//创建一个流程定义的查询 /**指定查询条件,where条件*/ // .deploymentId(deploymentId)//使用部署对象ID查询 // .processDefinitionId(processDefinitionId)//使用流程定义ID查询 // .processDefinitionKey(processDefinitionKey)//使用流程定义的key查询 // .processDefinitionNameLike(processDefinitionNameLike)//使用流程定义的名称模糊查询 /**排序*/ .orderByProcessDefinitionVersion().asc()//按照版本的升序排列 // .orderByProcessDefinitionName().desc()//按照流程定义的名称降序排列 /**返回的结果集*/ .list();//返回一个集合列表,封装流程定义 // .singleResult();//返回惟一结果集 // .count();//返回结果集数量 // .listPage(firstResult, maxResults);//分页查询 if(list!=null && list.size()>0){ for(ProcessDefinition pd:list){ System.out.println("流程定义ID:"+pd.getId());//流程定义的key+版本+随机生成数 System.out.println("流程定义的名称:"+pd.getName());//对应helloworld.bpmn文件中的name属性值 System.out.println("流程定义的key:"+pd.getKey());//对应helloworld.bpmn文件中的id属性值 System.out.println("流程定义的版本:"+pd.getVersion());//当流程定义的key值相同的相同下,版本升级,默认1 System.out.println("资源名称bpmn文件:"+pd.getResourceName()); System.out.println("资源名称png文件:"+pd.getDiagramResourceName()); System.out.println("部署对象ID:"+pd.getDeploymentId()); System.out.println("#########################################################"); } } }
select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES order by RES.VERSION_ asc ) a where ROWNUM < ?) where rnum >= ?
6./**删除流程定义*/
@Test public void deleteProcessDefinition(){ //使用部署ID,完成删除 String deploymentId = "601"; /** * 不带级联的删除 * 只能删除没有启动的流程,如果流程启动,就会抛出异常 */ // processEngine.getRepositoryService()// // .deleteDeployment(deploymentId); /** * 级联删除 * 不管流程是否启动,都能可以删除 */ processEngine.getRepositoryService()// .deleteDeployment(deploymentId, true); System.out.println("删除成功!"); }
a.不带级联删除 select * from ACT_RE_DEPLOYMENT where ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES WHERE RES.DEPLOYMENT_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ( select a.*, ROWNUM rnum from ( select distinct RES.* from ACT_RE_MODEL RES WHERE RES.DEPLOYMENT_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ACT_RU_EVENT_SUBSCR WHERE PROC_DEF_ID_ = ? and EXECUTION_ID_ is null and PROC_INST_ID_ is null and (TENANT_ID_ = '' or TENANT_ID_ is null) select * from ACT_PROCDEF_INFO where PROC_DEF_ID_ = ? select J.* from ACT_RU_JOB J where J.HANDLER_TYPE_ = ? and J.PROC_DEF_ID_ = ? select * from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null)) select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES WHERE RES.KEY_ = ? and RES.VERSION_ < ? and (RES.TENANT_ID_ = '' or RES.TENANT_ID_ is null) order by RES.VERSION_ desc ) a where ROWNUM < ?) where rnum >= ? delete from ACT_RU_IDENTITYLINK where PROC_DEF_ID_ = ? delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ? delete from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? delete from ACT_RE_DEPLOYMENT where ID_ = ? b.带级联删除 select * from ACT_RE_DEPLOYMENT where ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES WHERE RES.DEPLOYMENT_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ( select a.*, ROWNUM rnum from ( select distinct RES.* from ACT_RE_MODEL RES WHERE RES.DEPLOYMENT_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select ID_ from ACT_RU_EXECUTION where PROC_DEF_ID_ = ? and PARENT_ID_ is null select * from ACT_RU_EXECUTION where ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select distinct RES.* , P.KEY_ as ProcessDefinitionKey, P.ID_ as ProcessDefinitionId, P.NAME_ as ProcessDefinitionName, P.VERSION_ as ProcessDefinitionVersion, P.DEPLOYMENT_ID_ as DeploymentId from ACT_RU_EXECUTION RES inner join ACT_RE_PROCDEF P on RES.PROC_DEF_ID_ = P.ID_ WHERE RES.PARENT_ID_ is null and RES.SUPER_EXEC_ IN (select ID_ from ACT_RU_EXECUTION where PROC_INST_ID_ = ?) order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ( select a.*, ROWNUM rnum from ( select distinct RES.* from ACT_RU_TASK RES WHERE RES.PROC_INST_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ACT_RE_PROCDEF where ID_ = ? select * from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? order by NAME_ asc select * from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ? and KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) select * from ACT_RU_TASK where PARENT_TASK_ID_ = ? select * from ACT_RU_IDENTITYLINK where TASK_ID_ = ? select * from ACT_RU_VARIABLE where TASK_ID_ = ? select * from ACT_HI_TASKINST where ID_ = ? select * from ACT_HI_TASKINST where PARENT_TASK_ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_HI_VARINST RES WHERE RES.TASK_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ACT_HI_ATTACHMENT where TASK_ID_ = ? order by TIME_ desc select * from ACT_HI_IDENTITYLINK where TASK_ID_ = ? select * from ACT_RU_EXECUTION where PARENT_ID_ = ? select * from ACT_RU_EXECUTION where SUPER_EXEC_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_HI_ACTINST RES WHERE RES.EXECUTION_ID_ = ? and RES.ACT_ID_ = ? and RES.END_TIME_ is null order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ACT_HI_PROCINST where PROC_INST_ID_ = ? select * from ACT_RU_VARIABLE where EXECUTION_ID_ = ? and TASK_ID_ is null select distinct T.* from ACT_RU_TASK T where T.EXECUTION_ID_ = ? select * from ACT_RU_IDENTITYLINK where PROC_INST_ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_HI_DETAIL RES WHERE RES.PROC_INST_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_HI_VARINST RES WHERE RES.PROC_INST_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select ID_ from ACT_HI_TASKINST where PROC_INST_ID_ = ? select * from ACT_HI_IDENTITYLINK where PROC_INST_ID_ = ? select * from ( select a.*, ROWNUM rnum from ( select distinct RES.* , DEF.KEY_ as PROC_DEF_KEY_, DEF.NAME_ as PROC_DEF_NAME_, DEF.VERSION_ as PROC_DEF_VERSION_, DEF.DEPLOYMENT_ID_ as DEPLOYMENT_ID_ from ACT_HI_PROCINST RES left outer join ACT_RE_PROCDEF DEF on RES.PROC_DEF_ID_ = DEF.ID_ WHERE RES.SUPER_PROCESS_INSTANCE_ID_ = ? order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? select ID_ from ACT_HI_PROCINST where PROC_DEF_ID_ = ? select * from ACT_RU_EVENT_SUBSCR WHERE PROC_DEF_ID_ = ? and EXECUTION_ID_ is null and PROC_INST_ID_ is null and (TENANT_ID_ = '' or TENANT_ID_ is null) select * from ACT_PROCDEF_INFO where PROC_DEF_ID_ = ? select J.* from ACT_RU_JOB J where J.HANDLER_TYPE_ = ? and J.PROC_DEF_ID_ = ? select * from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null) and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = ? and (TENANT_ID_ = '' or TENANT_ID_ is null)) select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES WHERE RES.KEY_ = ? and RES.VERSION_ < ? and (RES.TENANT_ID_ = '' or RES.TENANT_ID_ is null) order by RES.VERSION_ desc ) a where ROWNUM < ?) where rnum >= ? update ACT_HI_ACTINST set EXECUTION_ID_ = ?, ASSIGNEE_ = ?, END_TIME_ = ?, DURATION_ = ? where ID_ = ? delete from ACT_HI_COMMENT where TASK_ID_ = ? delete from ACT_HI_TASKINST where ID_ = ? delete from ACT_RU_TASK where ID_ = ? and REV_ = ? delete from ACT_RU_IDENTITYLINK where ID_ = ? delete from ACT_RU_EXECUTION where ID_ = ? and REV_ = ? delete from ACT_HI_ACTINST where PROC_INST_ID_ = ? delete from ACT_HI_COMMENT where TASK_ID_ = ? delete from ACT_HI_IDENTITYLINK where ID_ = ? delete from ACT_HI_COMMENT where PROC_INST_ID_ = ? delete from ACT_HI_PROCINST where PROC_INST_ID_ = ? delete from ACT_HI_ACTINST where PROC_INST_ID_ = ? delete from ACT_HI_COMMENT where TASK_ID_ = ? delete from ACT_HI_COMMENT where PROC_INST_ID_ = ? delete from ACT_RU_IDENTITYLINK where PROC_DEF_ID_ = ? delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ? delete from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? delete from ACT_RE_DEPLOYMENT where ID_ = ?
7./**查看流程图*/
@Test public void viewPic() throws IOException{ /**将生成图片放到文件夹下*/ String deploymentId = "801"; //获取图片资源名称 List<String> list = processEngine.getRepositoryService()// .getDeploymentResourceNames(deploymentId); //定义图片资源的名称 String resourceName = ""; if(list!=null && list.size()>0){ for(String name:list){ if(name.indexOf(".png")>=0){ resourceName = name; } } } //获取图片的输入流 InputStream in = processEngine.getRepositoryService()// .getResourceAsStream(deploymentId, resourceName); //将图片生成到D盘的目录下 File file = new File("D:/"+resourceName); //将输入流的图片写到D盘下 FileUtils.copyInputStreamToFile(in, file); }
select NAME_ from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? order by NAME_ asc select * from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ? AND NAME_ = ?
8./***附加功能:查询最新版本的流程定义*/
@Test public void findLastVersionProcessDefinition(){ List<ProcessDefinition> list = processEngine.getRepositoryService()// .createProcessDefinitionQuery()// .orderByProcessDefinitionVersion().asc()//使用流程定义的版本升序排列 .list(); /** * Map<String,ProcessDefinition> map集合的key:流程定义的key map集合的value:流程定义的对象 map集合的特点:当map集合key值相同的情况下,后一次的值将替换前一次的值 */ Map<String, ProcessDefinition> map = new LinkedHashMap<String, ProcessDefinition>(); if(list!=null && list.size()>0){ for(ProcessDefinition pd:list){ map.put(pd.getKey(), pd); } } List<ProcessDefinition> pdList = new ArrayList<ProcessDefinition>(map.values()); if(pdList!=null && pdList.size()>0){ for(ProcessDefinition pd:pdList){ System.out.println("流程定义ID:"+pd.getId());//流程定义的key+版本+随机生成数 System.out.println("流程定义的名称:"+pd.getName());//对应helloworld.bpmn文件中的name属性值 System.out.println("流程定义的key:"+pd.getKey());//对应helloworld.bpmn文件中的id属性值 System.out.println("流程定义的版本:"+pd.getVersion());//当流程定义的key值相同的相同下,版本升级,默认1 System.out.println("资源名称bpmn文件:"+pd.getResourceName()); System.out.println("资源名称png文件:"+pd.getDiagramResourceName()); System.out.println("部署对象ID:"+pd.getDeploymentId()); System.out.println("#########################################################"); }
select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES order by RES.VERSION_ asc ) a where ROWNUM < ?) where rnum >= ?
9./**附加功能:删除流程定义(删除key相同的所有不同版本的流程定义)*/
@Test public void deleteProcessDefinitionByKey(){ //流程定义的key String processDefinitionKey = "helloworld"; //先使用流程定义的key查询流程定义,查询出所有的版本 List<ProcessDefinition> list = processEngine.getRepositoryService()// .createProcessDefinitionQuery()// .processDefinitionKey(processDefinitionKey)//使用流程定义的key查询 .list(); //遍历,获取每个流程定义的部署ID if(list!=null && list.size()>0){ for(ProcessDefinition pd:list){ //获取部署ID String deploymentId = pd.getDeploymentId(); processEngine.getRepositoryService()// .deleteDeployment(deploymentId, true); } } }
