金融it 发表于 2018-7-30 11:03:36

Activiti工作流引擎——组件说明

引用 https://blog.csdn.net/a35946729/article/details/43231005
https://blog.csdn.net/m0_37327416/article/details/71743368
https://blog.csdn.net/yen_csdn/article/details/54666658#%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%BC%95%E6%93%8E%E7%AE%80%E4%BB%8B

看不到图片的直接查看以上地址


[*]工作流引擎简介
[*]Activiti的特点
[*]Activiti引擎的七大Service接口
[*]Activiti架构
[*]Activiti与BPMN 20规范

[*]

[*]启动事件与结束事件Event

[*]启动事件

[*]空启动事件
[*]定时启动事件
[*]异常启动事件
[*]空结束事件

[*]空结束事件
[*]异常结束事件
[*]终止结束事件
[*]取消结束事件
[*]顺序流Sequence Flow

[*]标准顺序流
[*]条件顺序流
[*]任务Task

[*]用户任务
[*]脚本任务
[*]web service任务
[*]业务规则任务
[*]邮件任务
[*]Camel任务
[*]Mule任务
[*]手动任务
[*]接收任务
[*]Shell任务
[*]网关Gateway

[*]排他网关
[*]并行网关
[*]包容网关
[*]事件网关
[*]

[*]子流程Subprocess
[*]边界事件Boundary Event

[*]边界事件
[*]中间事件Intermediate Event

[*]中间捕获事件
[*]中间抛出事件
[*]监听器Listener


工作流引擎简介工作流引擎被广泛应用于各种信息化系统中,将原本散乱的业务梳理后定制成业务规范流程,进而约束业务的规范化处理和运转,定制流程规范后,将其部署到工作流引擎中,由他自动驱动业务流程的进行。
Activiti可以运行在任何类型的java程序中,例如服务器、集群、云服务等。
Activiti可以完美的与spring集成。
Activiti的特点
[*]数据持久化,底层使用MyBatis
[*]引擎Service接口
[*]流程设计器(Eclipse Designer、IDEA actiBMP、基于web的Activiti Modeler)
[*]原生支持Spring
[*]分离运行时与历史数据
Activiti引擎的七大Service接口
Service接口作用
RepositoryService流程仓库Service,用于管理流程仓库,例如部署、删除、读取流程资源
IdentifyService身份Service,用于管理和查询用户、组之间的关系
RuntimeService运行时Service,可以也拿过来处理所有正在运行状态的流程实例、任务等
TaskService任务Service,用于管理和查询任务,例如签收、办理、指派等
FormService表单Service,用于读取流程、任务相关的表单数据
HistoryService历史Service,用于查询所有历史数据,例如流程实例、任务、活动、变量、附件
ManagementService引擎管理Service,和具体业务无关,主要可以查询引擎配置、数据库、作业等
Activiti架构https://img-blog.csdn.net/20170122095043680?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
Activiti与BPMN 2.0规范启动事件与结束事件(Event)启动事件启动事件都是触发型的,等待第三方触发后才可以启动。在ACTIVITI中可以通过调用API触发启动事件。
空启动事件https://img-blog.csdn.net/20170122103326036?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
<process id="myProcess_1" isClosed="false" isExecutable="true" processType="None">    <startEvent id="_9" name="StartEvent"/></process>
[*]1
[*]2
[*]3
由于startEvent 标签中没有任何其他的元素定义,所以称为空启动事件。
属性列表为
https://img-blog.csdn.net/20170122103824123?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
form key:用来指定空启动事件关联的表单文件
initiator:用来记录启动流程的人的ID
定时启动事件定时启动事件用来一次性定时启动、特定时间间隔后启动。
timeDate:一次性定时启动
timeDuration:设置多长时间后启动流程
timeCycle:周期性启动任务,用来设定循环的时间间隔、表示多长时间执行一次循环。
异常启动事件异常启动事件可以触发一个异常子流程,但不能通过API方式启动,他总是在另外一个流程抛出异常结束事件的时候被触发。
空结束事件https://img-blog.csdn.net/20170122104809534?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
空结束事件结束事件是抛出型的,空结束时间不处理抛出的结果。
异常结束事件异常结束事件定义了需要抛出的错误代码,如果找到合适的异常开始时间则触发异常开始事件,否则按照空结束事件处理。
终止结束事件可以终止一个流程实例的运行。
取消结束事件可以取消一个事务子流程的执行,同时只能在子流程中使用。
顺序流(Sequence Flow)https://img-blog.csdn.net/20170122110145760?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
如果一个元素在流程期间被访问,流程会沿着该元素所有的输出顺序流继续执行。多个输出顺序流会创建多条独立的、并行的执行路径。
标准顺序流允许添加监听器
条件顺序流添加条件表达式,只有满足条件才能通过顺序流到达目标活动。
条件顺序流的XMl描述是在顺序流中添加条件表达式标签conditionExpression,并且在conditionExpression中设置UEL表达式用于计算逻辑值。
任务(Task)用户任务必须人为的触发
https://img-blog.csdn.net/20170122110851872?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
脚本任务脚本任务可以运行引擎依赖语言之外的脚本语言,如Groovy、JavaScript
https://img-blog.csdn.net/20170122111337608?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
web service任务通过web service任务可以调用外部的web service资源,完成调用只需要一些必须的配置就可以,并且支持标准的web service和rest风格的service。
https://img-blog.csdn.net/20170122111642722?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
业务规则任务业务规则任务可以根据流程变量的值处理预设的业务规则。
https://img-blog.csdn.net/20170122111845330?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
邮件任务邮件任务可以通过activiti发送邮件,其中邮件信息通过变量方式传递。
https://img-blog.csdn.net/20170122112103539?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
Camel任务Camel是用来解决消息路由的框架。
Mule任务Mule任务和Camel任务相似,但他们是基于不同标准实现的。
手动任务activiti把手动任务当作一个空任务来处理,当到达此任务时由引擎自动完成并转向下一个任务。
https://img-blog.csdn.net/20170122112803972?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
接收任务接收任务是一个功能简单且单一的任务,在任务创建后开始等待消息的到来,直到被触发才会完成任务。
https://img-blog.csdn.net/20170122112837020?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
Shell任务Shell任务允许在流程运行过程中执行本地操作系统中的脚本、命令,是Activiti基于serviceTask扩展的一种任务。
网关(Gateway)排他网关排他网关用来对流程中的决定进行建模。
https://img-blog.csdn.net/20170122113639655?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
并行网关并行网关用来对并发的任务进行流程建模,它能把单条线路任务拆分成多个路径并行执行或将多条路线合并。
https://img-blog.csdn.net/20170122114110152?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
包容网关包含网关融合了排它网关和并行网关的特性,排它网关运行在每条线路上设置条件,并行网关可以同时执行多条线路,包含网关既可以同时执行多条线路,又允许在网关上设置条件。
https://img-blog.csdn.net/20170122114501467?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
事件网关它允许多个输出流指向多个不同的中间捕获时间。
https://img-blog.csdn.net/20170122114753654?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast子流程(Subprocess)https://img-blog.csdn.net/20170122115004094?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
边界事件(Boundary Event)边界事件边界事件是绑定在活动上的“捕获型”事件,会一直监听所有处于活动的某种事件的触发,在捕获到事件之后中断活动,然后从边界事件类型的数据流继续执行。
https://img-blog.csdn.net/20170122115454628?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
中间事件(Intermediate Event)中间捕获事件https://img-blog.csdn.net/20170122115627791?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWUVOX0NTRE4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
中间抛出事件监听器(Listener)监听器是业务和流程的“非侵入式粘合剂”,在activiti中开发人员可以通过配置监听器的方式监听各种动作,例如流程启动、结束、任务创建、任务完成。
监听器分为两类:执行监听器和任务监听器。

页: [1]
查看完整版本: Activiti工作流引擎——组件说明