Activiti的基础构件是什么

今天就跟大家聊聊有关Activiti的基础构件是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

10年积累的成都做网站、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有坪山免费网站建设让你可以放心的选择与我们合作。

下图时idea中actiBPM插件中构件流程图使用的基本构件:

Activiti的基础构件是什么Activiti的基础构件是什么

构件主要有开始事件、中间事件、边界事件、结束事件四种 。下面是各种构件的详细介绍。

  • StartEvent

启动事件时触发型的,等待第三方触发之后才能启动,可通过activiti的相关api触发。

  1. 空启动事件:标签中其他元素、属性都没有定义。

  2. 定时启动事件:可设置一次性定时启动、固定时间间隔启动,timeDate(一次性定时),timeDuration(设置多长时间后启动流程),timeCycle(固定定时间间隔启动)。

  3. 异常启动事件:异常启动事件可以触发一个异常子流程,但不能通过api启动,只能等待另一个事件抛出异常结束。

  4. 消息启动事件 :等待消息来启动事件

  • EndEvetn

  1. 空结束事件:结束事件是抛出型的,空结束事件不处理抛出结果。

  2. 异常结束事件:异常结束事件定义了异常抛出的错误代码,如果有对应和的异常开始事件,则进入异常开始事件,否则作为空结束事件。

  3. 终止结束事件:可以终结一个流程实例的运行。

  4. 取消结束事件:可以取消一个事务子流程的执行,同时只能在子流程中使用。

  • UserTask

可以设置处理用户、用户组、表单等属性,必须由人为来触发。

  • ScriptTask

脚本任务不需要人为的触发,流程轮转到脚本任务会自动执行,脚本任务可以运用引擎依赖语言之外的脚本语言,如Groovy、JavaScript,也即可以直接在xml内容插入其他语言的代码。

  • ServiceTask

可以不受人工干涉,流转到自动运行,调用java中的方法。需要把类实现JavaDelegate接口,并且把这个实现类设置到服务事件的class属性上去。

  • MailTask

邮件任务可以通过activiti发送邮件,其中邮件信息通过变量方式传递。 

  • ManualTask

手动任务:activiti把手动任务当作一个空任务来处理,当到达此任务时由引擎自动完成并转向下一个任务。

  • ReceiveTask

接收任务:接收任务是一个功能简单且单一的任务,在任务创建后开始等待消息的到来,直到被触发才会完成任务。 

  • BusinessRuleTask

业务规则任务,业务规则任务可以根据流程变量的值处理预设的业务规则。

  • CallActivitiTask

当流程执行到callActivity,会创建一个新分支,它是到达调用节点的流程的分支。 这个分支会用来执行子流程,默认创建并行子流程,就像一个普通的流程。 上级流程会等待子流程完成,然后才会继续向下执行。

  • SubProcess

子流程:有嵌入子流程和调用子流程,嵌入子流程时主流程的一部分,只能被主流程调用;调用子流程反之。

  • Pool

  • Lane

  • ParallelGateway

并行网关:并行网关用来对并发的任务进行流程建模,它能把单条线路任务拆分成多个路径并行执行或将多条路线合并。 

分支: 并行后的全部外出顺序流,为每一个顺序流都创建一个并发分支。

汇聚: 全部到达并行网关。在此等待的进入分支。 直到全部进入顺序流的分支都到达以后。 流程就会通过汇聚网关。

  • ExclusiveGateway

排他网关:排他网关用来对流程中的决定进行建模。与单纯使用线上的condition有什么区别呢,单纯使用线上condition判断,所有为true的流程都会被执行,而使用排他网关就算有多个为true也只会选择第一个进行执行,如果没有符合要求的执行流,那么排他网关将会抛出一个异常。

  • InclusiveGateway

包容网关:包含网关融合了排它网关和并行网关的特性,排它网关运行在每条线路上设置条件,并行网关可以同时执行多条线路,包含网关既可以同时执行多条线路,又允许在网关上设置条件。 

分支: 全部外出顺序流的条件都会被解析。结果为true的顺序流会以并行方式继续运行。 会为每一个顺序流创建一个分支。

汇聚: 全部并行分支到达包括网关。会进入等待章台, 直到每一个包括流程token的进入顺序流的分支都到达。 这是与并行网关的最大不同。换句话说,包括网关仅仅会等待被选中运行了的进入顺序流。 在汇聚之后,流程会穿过包括网关继续运行。

  • EvetntGateway

事件网关:它允许多个输出流指向多个不同的中间捕获事件。

基于事件网关同意依据事件推断流向。

网关的每一个外出顺序流都要连接到一个中间捕获事件。 当流程到达一个基于事件网关,网关会进入等待状态:会暂停运行。 与此同一时候,会为每一个外出顺序流创建相对的事件订阅。

注意基于事件网关的外出顺序流和普通顺序流不同。这些顺序流不会真的"运行"。

相反。它们让流程引擎去决定运行到基于事件网关的流程须要订阅哪些事件。

要考虑下面条件:

  1. 基于事件网关必须有两条或以上外出顺序流。

     

  2. 基于事件网关后,仅仅能使用intermediateCatchEvent类型。 (activiti不支持基于事件网关后连接ReceiveTask。)

  3. 连接到基于事件网关的intermediateCatchEvent仅仅能有一条进入顺序流。 

  • BoundaryEvent

边界事件是绑定在活动上的捕获事件、会一直监听处于某种事件的触发在捕获到事件之后中断活动,然后从边界事件类型的数据流继续执行。可以捕获信号、消息、定时器、错误信号

  • IntermediateCatchingEvent

中间捕获事件,可以捕获信号、消息、定时器错误。

  • IntermediateThrowEvent

中间抛出事件:可以抛出信号事件

  • Annotion

  • SequenceFlow

  1. 标准顺序流:允许添加监听事件。

  2. 条件顺序流:可以添加条件表达式,只有满足条件才能到达指定目标活动。

看完上述内容,你们对Activiti的基础构件是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


文章标题:Activiti的基础构件是什么
本文URL:http://hbruida.cn/article/iihdoh.html