Activiti 学习资料
背景
Activiti作为一个优秀的且开源的工作流工具,受到很多开发人员的追捧,特别是负责公司OA系统的部门,都愿意花一些时间来学习与研究Activiti,在对Activiti有一定了解之后,还能基于它做一些特殊业务的定制,极大地降低开发成本。但令人吃惊的是,当你在网上搜索Activiti使用指南时,你会发现,官网只有极少的材料介绍Activiti 7.0 核心API的使用,当你继续在网上“追查”,你会发现Activiti 6.0有更多的指导文章,但毕竟他们都是站在当时的技术框架上给出的代码示例,多多少少有些晦涩。结合个人的探索过程,写下此文章,希望对想快速使用Activiti的小伙伴一些帮助。
优质参考资料
Activiti 6.0版本的文档:https://www.activiti.org/userguide/index.html
《Activiti实战》的作者博客:http://www.kafeitu.me/activiti-in-action.html
Kafeitu的demo:https://github.com/henryyan/kft-activiti-demo
Activiti article:https://github.com/Activiti/Activiti/wiki/Articles-and-Blogs-on-Activiti
Activiti 5.16中文手册:http://www.mossle.com/docs/activiti/index.html#bpmnConstructs
Actviti 6.0与Activiti Explorer:https://docs.alfresco.com/6.0/concepts/dev-api-by-language-alf-rest-install-api-explorer.html
概念简述
BPMN2
BPMN是BPM及workflow的建模语言标准之一。
OMG于2011年推出BPMN2.0标准,13年12月推出BPMN2.0.2标准。
官方Spec: https://www.omg.org/spec/BPMN/2.0/PDF
概念对应
常用表达 | BPMN2 | Activiti |
---|---|---|
审核流程 | Process | ProcessInstance/Execution/Model |
审核环节 | Activity | 抽象类Activity |
任务 | Task | Task |
子流程 | Sub-Process | SubProcess |
审核流转 | SequenceFlow | SequenceFlow |
ProcessEngine
ProcessEngine class is your central access point to all the engine functionality of Activiti.
基于这个引擎,Activiti提供了一系列的Services,这些Services方便了用户对引擎的使用。
Activiti API
ProcessEngineConfiguration
ProcessEngineConfiguration是ProcessEngine的配置类,Activiti提供了以下类供用户选择:
org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration:此流程引擎可独立使用,Activiti负责事务处理,仅在引擎启动时检查数据库(如果没有Activiti依赖或依赖版本不正确,则会引发异常);
org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration:这是用于单元测试的便捷类。 Activiti负责事务处理。默认情况下使用H2内存数据库。引擎启动与关闭时,会分别创建与删除数据库。使用此功能时,可能不需要其他配置(使用作业执行程序或邮件功能时除外);
org.activiti.spring.SpringProcessEngineConfiguration:用于Spring环境;
org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration:当引擎以JTA事务在独立模式下运行时使用。