流程的部署
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("approval.bpmn20.xml")
.name("我的流程部署")
.deploy();
1、ACT_RE_DEPLOYMENT多出一条记录。
2、ACT_RE_PROCDEF多出一条记录。
3、ACT_GE_BYTEARRAY多出几条信息,图片资源啥的。
流程的启动
RuntimeService runtimeService = processEngine.getRuntimeService();
Map<String, Object> map = Maps.newHashMap();
map.put("name", "zhangxingr");
map.put("sex", "man");
map.put("age", "21");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("my-process", map);
1、ACT_HI_ACTINST增加了流程启动的信息。
2、ACT_HI_PROCINST增加了流程信息。
3、ACT_HI_IDENTITYLINK增加了记录。
4、ACT_HI_TASKINST增加了记录。
5、ACT_RU_EXECUTION增加了记录。
6、ACT_RU_IDENTITYLINK增加了记录。
7、ACT_RU_TASK增加了记录。
任务的查询
List<Task> list = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee("王五")
.list();
任务的处理
processEngine.getTaskService()
.complete("7502"); //任务ID
1、ACT_HI_ACTINST增加了一条记录。
2、ACT_RU_IDENTITYLINK多了一条参与者记录。
3、ACT_HI_TASKINST增加了记录。
4、ACT_RU_EXECUTION增加了记录。
5、ACT_RU_TASK增加了记录,减少了一条记录。
流程定义查询
List<ProcessDefinition> list = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
.createProcessDefinitionQuery().list();
流程状态查询
ProcessInstance pi = processEngine.getRuntimeService() // 获取运行时Service
.createProcessInstanceQuery() // 创建流程实例查询
.processInstanceId("2501") // 用流程实例id查询
.singleResult();
流程定义删除
processEngine.getRepositoryService()
.deleteDeployment("deploymentId", true);
流程资源查看
/**将生成图片放到文件夹下*/
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);
查询出流程定义文档。主要查的是图片,用于显示流程用。deploymentId为流程部署ID,resourceName为act_ge_bytearray表中NAME_列的值,使用repositoryService的getDeploymentResourceNames方法可以获取指定部署下得所有文件的名称,使用repositoryService的getResourceAsStream方法传入部署ID和资源图片名称可以获取部署下指定名称文件的输入流,最后的有关IO流的操作,使用FileUtils工具的copyInputStreamToFile方法完成流程流程到文件的拷贝,将资源文件以流的形式输出到指定文件夹下。
历史活动查询(包含流程的开始和结束)
List<HistoricActivityInstance> list = processEngine.getHistoryService()
.createHistoricActivityInstanceQuery() // 创建历史活动实例查询
.processInstanceId("2501") // 执行流程实例id
.list();
历史任务查询(只包含任务)
List<HistoricTaskInstance> list = processEngine.getHistoryService() // 历史相关Service
.createHistoricTaskInstanceQuery() // 创建历史任务实例查询
.processInstanceId("2501") // 用流程实例id查询
.list();
流程的挂起
RepositoryService repositoryService = processEngine.getRepositoryService();
String processDefinitionKey ="purchasingflow";
//根据流程定义的key暂停一个流程定义,并且级联挂起该流程定义下的流程实例
repositoryService.suspendProcessDefinitionByKey(processDefinitionKey, true, null);
单个流程实例的挂起
RuntimeService runtimeService = engine.getRuntimeService();
String processInstanceId="1801";
//根据一个流程实例的id挂起该流程实例
runtimeService.suspendProcessInstanceById(processInstanceId);