activiti工作流

activiti工作流

  1. activiti介绍
    Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。
    创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。
    Activiti是一个独立运作和经营的开源项目品牌,并将独立于Alfresco开源ECM系统运行。 Activiti将是一种轻量级,可嵌入的BPM引擎,而且还设计适用于可扩展的云架构。 Activiti将提供宽松的Apache许可2.0,以便这个项目可以广泛被使用,同时促进Activiti BPM引擎和BPMN 2.0的匹配,该项目现正由OMG通过标准审定。 加入Alfresco Activiti项目的是VMware的SpringSource分支,Alfresco的计划把该项目提交给Apache基础架构,希望吸引更多方面的BPM专家和促进BPM的创新。

  2. 数据库展示
    在Activiti工作流的后台是有数据库的支持的,所有的表都以ACT_开头,利用这些数据库的表,就能够把整个业务流程的数据保存下来,然后利用这些数据进行不同的业务的开发。
    数据库表示意图
    在这里插入图片描述
    资源库流程规则表
    1)act_re_deployment 部署信息表
    2)act_re_model 流程设计模型部署表
    3)act_re_procdef 流程定义数据表
    运行时数据库表
    1)act_ru_execution 运行时流程执行实例表
    2)act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
    3)act_ru_task 运行时任务节点表
    4)act_ru_variable 运行时流程变量数据表
    历史数据库表
    1)act_hi_actinst 历史节点表
    2)act_hi_attachment 历史附件表
    3)act_hi_comment 历史意见表
    4)act_hi_identitylink 历史流程人员表
    5)act_hi_detail 历史详情表,提供历史变量的查询
    6)act_hi_procinst 历史流程实例表
    7)act_hi_taskinst 历史任务实例表
    8)act_hi_varinst 历史变量表
    组织机构表
    1)act_id_group 用户组信息表
    2)act_id_info 用户扩展信息表
    3)act_id_membership 用户与用户组对应信息表
    4)act_id_user 用户信息表
    这些表用的很少,因为我们一般会自己做一个权限管理,所以不会用activiti自身所带的表。
    通用数据表
    1)act_ge_bytearray 二进制数据表
    2)act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录。

  3. 核心API
    ProcessEngine
    说明:
    在Activiti中最核心的类,其他的类都是由他而来。
    产生方式:在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。
    可以产生RepositoryService
    可以产生RuntimeService
    可以产生TaskService

  4. 各个Service的作用:
    RepositoryService 管理流程定义
    RuntimeService 执行管理,包括启动、推进、删除流程实例等操作
    TaskService 任务管理
    HistoryService 历史管理(执行完的数据的管理)
    IdentityService 组织机构管理
    FormService 一个可选服务,任务表单管理
    ManagerService
    RepositoryService
    是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。
    产生方式
    可以产生DeploymentBuilder,用来定义流程部署的相关参数
    RuntimeService
    是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。
    TaskService
    HistoryService
    是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。
    ProcessDefinition
    流程定义类。可以从这里获得资源文件等。
    ProcessInstance
    代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。
    Execution
    Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。


版权声明:本文为qq_43648142原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。