关于Activiti的最基础知识

来源:互联网 发布:网络用语dw什么意思 编辑:程序博客网 时间:2024/06/10 20:30
1.流程框架Activiti5.15.1
Activiti5框架源自于JBPM4流程框架,
集成到项目中时,会自动创建框架所需的23张表,5种不同的分类
,如下:
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。
Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度
很快。
ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 通用数据, 用于不同场景下。

框架底层使用的是Mybatis作为持久层,但是对于开发人员来说,依然采用面向对象的方式操作数据库

ProcessEngine对象为框架的核心对象,可以创建7种不同的service服务对象(

     1》RepositoryService:提供了管理和控制发布包和流程定义的操作、

     2》TaskService:所有与任务相关的功能、
     3》IdentityService:可以管理(创建,更新,删除,查询...)群组和用户、
     4》FormService:一个可选服务。即使不使用它,Activiti也可以完美运行, 不
           会损失任何功能。这个服务提供了启动表单和任务表单两个概念、
     5》RuntimeService、
     6》ManagerService:在使用Activiti的定制环境中基本上不会用到。、
     7》HistoryService:提供了Activiti引擎手机的所有历史数据),
 完成不同的业务操作及操作不同的业务表
 流程框架的主要应用目的是可以动态扩展流程中的任务及动态增加业务处理
2.流程的相关概念
     a)流程定义
               部署流程后,数据库中会有3张表的数据发生变化,用于存储当前部署及流程定义相关的数据,图形,文件内容
    b)流程实例
              流程实例其实就是流程定义的具体应用,通过startXXXXX方法启动流程实例,
            启动流程后,会在RU表及HI表中增加相应的数据
    c)任务(用户任务,邮件任务)
            所谓的任务其实就是流程中的工作步骤,可以将任务委派给某个人完成,也可以委派给某个小组后再分配给个人完成,当流程中所有的任务完成后,流程结束。
    d)开始,结束
           流程的边界,由框架自动完成,不需要人工参与。
    e)变量
          将流程中固定不变的内容通过变量来表示,可以让流程更具备通用性
          在流程定义图中使用EL表达式(${tl})增加变量,在启动流程时传递变量
                  Map<String, Object> varMap = new HashMap<String, Object>();
                  varMap.put(“tl”, “zhangsan”);
    f)网关
       网关就是流程中的分支判断,可以在流程定义图中增加判断条件实现
       框架中的网关主要分为3种:
              1)排他网关:多个逻辑分支同时只能执行一个,分支执行完毕,流程结束
              2)并行网关:多个逻辑分支同时执行,一个分支执行完毕后,流程没有结束,需要等待其他分支的执行,所有的分支执行完毕后,流程结束
              3)包含网关:多个逻辑分支如果有一个条件成立,那么等同于排他网关,如果有多个条件成立,那么等同于并行网关。
    g)监听器
             可以监听流程中的操作,当监听器触发后可执行逻辑处理
原创粉丝点击