Activiti5工作流引擎

本文介绍了Activiti工作流引擎的核心API及其使用方法,包括ProcessEngine的创建及使用,RepositoryService、RuntimeService等主要服务类的功能和操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.核心API

    1.1ProcessEngine

       1.1-1 .PocessEngine是Activiti中最核心的类,其他的类都是由他而来;

       1.1-2 .产生方式:ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();调用         ProcessEngine的getDefaultProcessEngine()方法会自动加载classpath下名为activit.cfg.xml文件;

       1.1-3 .可以产生:RepositoryService    

                               RepositoryService repositoryService =pocessEngine.getRepositoryService();

       1.1-4 .可以产生RuntimeService 

                               RuntimeService runtimeService = pocessEngine.getRuntimeService();

       1.1-5 .可以产生TaskService

                              TaskService taskService = processEngine.getTaskService();

      各个Service的作用   :

                            RepositoryService  管理流程定义
                            RuntimeService      执行管理 包括启动,推进,删除流程实例等
                            TaskService             任务管理
                            IdentityService        组织机构管理
                            HistoryService          历史管理(执行完的数据管理)
                            FormService             一个可选服务,任务表单管理

                           ManagerService     

  1.2.RepositoryService   

               是Activiti的仓库服务类。所谓的仓库服务类就是指仓库流程定义文档的两个文件:bpmn文件和流程图片
             可以产生DeploymentBuilder,用来定义流程部署的相关参数
                          DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
                         删除流程定义  repositoryService.deleteDepioyment(deploymentId);

  1.3RuntimeService

              是Activitie流程执行服务类,可以从这个服务类中获取很多相关流程执行相关信息;

  1.4TaskService 

              是Activitie 任务服务类,可以从类中获取任务的信息

  1.5HistoryService

              是activitie 查询历史信息的类。在一个流程执行完之后,这个对象为我们提高查询历史信息;

  1.6ProcessDefinition

             是activitie流程定义类,可以从这里获取资源文件

  1.7ProcessIntance

             代表流程定义的执行实例,流程实例就是一个流程从开始到结束的最大流程分支,即一个流程中流程实例只有一个;

  5.8Execution

           activiti用这个对象去描述流程执行的每个节点。在没有并发的情况下,Execution就是同ProcessInstsnce。
 流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution
               ProcessInstance 的源代码
             public  interface  ProcessInstance extends Execution{    }

   总结

     在一个流程定义中,执行对象可以存在多个,但是流程实例只能有一个;
     当流程按照规则只执行一次的时候,那么流程实例就是流程对象;

                     

2.基本流程实例

   2.1:流程图

           开始------提交申请-----审批(部门经理)-----审批(经理)

   2.2:部署流程定义

                 获取流程引擎
             ProcessEngine   processEngine  =ProcessEngine.getDefaultProcessEngine();
             获取仓库服务的实例
            Deployment   deployment   = processEngine.getRepositoryService().createDeployment()
                                                     .addClasspathResource("*.bpmn").addClasspathResource("*.png")  
                                                     .deploy();

   2.3:启动流程实例

          //指定任务办理者

           String assignee ="XX";

          //获取流程引擎对象

           ProcessEngine   processEngine =ProcessEngine.getDefaultProcessEngine();

          //查询任务列表

          List<Task> taskList =processEngine.getTaskService().createTaskQuery().taskAssignee(xx).list(); 

          //遍历查看内容

         For(Task task : taskList){

           task.getId();

           task.getName();

          }         


   2.4 办理任务

        String taskId ="12";

       ProcessEngine  processEngine = ProcessEngine.getDefaultProcessEngine();

       processEngince.getTaskService().complete(taskId);
             

    3.部署流程定义(classpath路径加载文件)

         --先获取流程引擎对象:

         --通过流程引擎获取一个RepositoryService对象(也就是仓库对象)

         --由仓库的服务对象产生一个部署对象配置对象,用来封装部署操作的相关对象;

         --这是一个 链式编程,在部署配置对象中设置显示名,上传流程定义规则文件;

         --向数据库表中存放流程定义的规则信息

         --分别操作三张表 (act_redeployment 部署对象表 )(act_re_procdef 流程定义表)
             (act_ge_bytearray  资源文件表)                









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值