工具 eclipse IDEA 均可
第一步:eclipse 设置和插件配置流程
1、eclipse安装activiti插件方法:https://blog.csdn.net/qq_33547950/article/details/54926435 不在多说。
4.连线设置,节点设置
2点直接只有一条线的时候 默认不用设置 多条线时设置如下
名字 ID 不要重复
在main_config配置里面 的condition中配置连接条件,类似EL 表达式 里面返回的是 true 或者false PS: ${message=='小于三天'}
此时流程图 配置完成,代码如下:
同时生成图片
6.创建流程部署类:
ProcessDeploymentTest
diagrams/MyProcess.bpmn 这个是对应刚才新建的流程文件地址 以及流程名字 注意一点要保持一致 //部署流程 @Test public void testDeploy(){ RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deployment = repositoryService.createDeployment().addClasspathResource("diagrams/MyProcess.bpmn").deploy(); System.out.println(deployment); System.out.println("部署ID:"+deployment.getId()); }
//启动流程 @Test public void testStart(){ //启动流程实例 ProcessInstance pi = processEngine.getRuntimeService()// .startProcessInstanceByKey("myProcess");//使用流程定义的key的最新版本启动流程 System.out.println("流程实例ID:"+pi.getId()); System.out.println("流程定义的ID:"+pi.getProcessDefinitionId()); }
/**查询我的个人任务 查出此时流程 审核所在节点的 审核节点TD taskId */ @Test public void findPersonalTaskList(){ //任务办理人 王五 张三 李四 String assignee = "王五"; Listlist = processEngine.getTaskService()// .createTaskQuery()// .taskAssignee(assignee)//个人任务的查询 .list(); if(list!=null && list.size()>0){ for(Task task:list){ System.out.println("任务ID:"+task.getId()); System.out.println("任务的办理人:"+task.getAssignee()); System.out.println("任务名称:"+task.getName()); System.out.println("任务的创建时间:"+task.getCreateTime()); System.out.println("流程实例ID:"+task.getProcessInstanceId()); System.out.println("#######################################"); } } }
重点介绍此时完成任务: /**完成任务*/ @Test public void completeTask(){ //任务ID 这个ID 是上面的查询任务查询出来的 不要出错了 String taskId = "2165003"; //完成任务的同时,设置流程变量,让流程变量判断连线该如何执行 Mapvariables = new HashMap (); //其中message对应sequenceFlow.bpmn中的${message=='大于三天'} variables.put("message", "大于三天");//这个流程变量值 会控制流程的走向 processEngine.getTaskService()// .complete(taskId,variables); System.out.println("完成任务:"+taskId); }
//删除部署的流程 @Test public void delete(){ // 这个是流程部署成功后 生成的 String deploymentId = "2150002"; RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.deleteDeployment(deploymentId, true); }
//查询部署的流程 @Test public void query(){ // 这个是流程部署成功后 生成的 String deploymentId = "1290923"; RepositoryService repositoryService = processEngine.getRepositoryService(); Listlist = repositoryService.createDeploymentQuery().deploymentId(deploymentId).list(); System.out.println(list.size()); }
/** * 获得png文件的输入流 * * @throws Exception */ @Test public void test2() throws Exception { // 这个是流程部署成功后 生成的 String processDefinitionId = "myProcess:1:1937505"; InputStream pngInputStream = processEngine.getRepositoryService() .getProcessDiagram(processDefinitionId); FileUtils.copyInputStreamToFile(pngInputStream, new File("d:\\vehicleCN_A.png")); }
PS: 不知道流程表信息的 请查看我的另一篇文章,里面非常详细
https://blog.csdn.net/du18637795957/article/details/82656906
如若转载 请说明出处: