activiti 流程傻瓜式教学,看了必回,详细教程

工具 eclipse IDEA  均可

第一步:eclipse 设置和插件配置流程

1、eclipse安装activiti插件方法:https://blog.csdn.net/qq_33547950/article/details/54926435   不在多说。

2.设置activiti 流程傻瓜式教学,看了必回,详细教程_第1张图片创建流程时生成图片

3.创建流程:activiti 流程傻瓜式教学,看了必回,详细教程_第2张图片

4.连线设置,节点设置

activiti 流程傻瓜式教学,看了必回,详细教程_第3张图片

2点直接只有一条线的时候 默认不用设置  多条线时设置如下

activiti 流程傻瓜式教学,看了必回,详细教程_第4张图片名字 ID  不要重复activiti 流程傻瓜式教学,看了必回,详细教程_第5张图片  在main_config配置里面 的condition中配置连接条件,类似EL 表达式  里面返回的是 true 或者false     PS:   ${message=='小于三天'}  

5.activiti 流程傻瓜式教学,看了必回,详细教程_第6张图片

此时流程图 配置完成,代码如下:



 
   
   
   
   
   
   
   
     
   

   
     
   

   
   
 

 
   
     
       
     

     
       
     

     
       
     

     
       
     

     
       
     

     
       
       
       
         
       

     

     
       
       
       
         
       

     

     
       
       
       
         
       

     

     
       
       
       
         
       

     

     
       
       
       
         
       

     

   

 

同时生成图片

activiti 流程傻瓜式教学,看了必回,详细教程_第7张图片.png 文件

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 = "王五";
   List list = 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";
   //完成任务的同时,设置流程变量,让流程变量判断连线该如何执行
   Map variables = 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();
   List list = 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

如若转载 请说明出处:

 

你可能感兴趣的:(activiti 流程傻瓜式教学,看了必回,详细教程)