1. 事件 Events
事件 | 描述 | 图标 |
空启动事件 | 空启动事件未指定触发器,由用户调用的启动事件。 | |
定时启动事件 | 定时启动事件在指定时间内创建一次或多次的流程实例。 | |
消息启动事件 | 消息启动事件使用具名消息启动流程实例。消息名用于定位指定的启动事件。一个流程定义不得包含多个同名的消息启动事件。 | |
信号启动事件 | 信号启动事件,使用信号启动流程实例。 | |
错误启动事件 | 错误启动事件可以触发一个异常子流程,它总是在另外一个流程在异常结束的时候触发。错误开始事件只能使用在事件子流程中,该该事件不能使用在其它流程中,包括最高级流程、嵌套子流程和调用子流程。 | |
条件启动事件 | 通过条件表达式触发流程。 | |
升级启动事件 | ||
取消边界事件 | ||
错误边界事件 | 通过获取抛出的BpmnError异常触发中间事件。 | |
消息边界事件 捕获消息中间事件 | 通过接收消息来触发中间事件。当流程执行到消息事件时,它会等待指定的消息到达,然后继续执行后续任务。 | |
信号边界事件 捕获信号中间事件 | 通过发送信号来触发中间事件。当流程执行到信号事件时,它会等待指定的信号到达,然后继续执行后续任务。 | |
定时边界事件 捕获定时中间事件 | 通过设置定时器来触发中间事件。当定时器时间到达时,会触发该事件并执行相应的任务。 | |
补偿边界事件 | 用于补偿已完成的任务或流程。当执行到补偿事件时,会回退到之前已完成的任务或流程,并执行相应的补偿操作。 | |
条件边界事件 捕获条件中间事件 | 通过条件表达式触发流程。 | |
升级边界事件 | ||
抛出空中间事件 | ||
抛出信号中间事件 | 用于发送指定信号,用于触发其他事件或操作。 | |
抛出升级中间事件 | ||
空结束事件 | 空结束事件,意味着当到达这个事件时,没有特别指定抛出的结果。因此,引擎除了结束当前执行分支之外,不会多做任何事情。 | |
错误结束事件 | 当流程执行到达异常结束事件时,结束执行的当前分支,并抛出错误。 | |
升级结束事件 | ||
取消结束事件 | 取消结束事件只能与事务子流程一起使用。当到达取消结束事件时,会抛出取消事件,且必须由取消边界事件捕获。取消边界事件将取消事务,并触发补偿。 | |
终止结束事件 | 终止结束事件,当前的流程实例或子流程会被终止。也就是说,当执行到达终止结束事件时,会判断第一个范围(流程或子流程)并终止它。 |
2. 顺序流 SequenceFlow
顺序流 | 描述 | 图标 |
顺序流 | 流程的执行分支 | |
默认顺序流 | 条件顺序流都为false时选择的分支 | |
条件顺序流 | 通过条件表达式指定流程选择执行分支 |
3. 网关 Gateway
网关 | 描述 | 图标 |
排他网关 | 也被称为互斥网关。排他网关可以有多个入口,但只有一个有效出口。在流程执行过程中,当遇到排他网关时,会根据网关上设置的条件判断下一个要执行的顺序流。只有当条件满足时,才会执行该顺序流所连接的节点。 | |
并行网关 | 并行网关可以有两个或多个出口顺序流,这些出口顺序流可以并行执行。也可以有多个入口顺序流,用于合并顺序流。 | |
包容网关 | 可以看作是排他网关与并行网关的组合。包容网关可以有多个入口,也可以有多个出口。 | |
事件网关 | 件网关可以有多个入口顺序流,但只能有一个出口顺序流。在流程执行过程中,当遇到事件网关时,会根据网关上设置的条件判断下一个要执行的顺序流。 |
4. 任务 Task
任务 | 描述 | 图标 |
人员任务 | “用户任务(user task)”用于对需要人工执行的任务进行建模。当流程执行到达用户任务时,会为指派至该任务的用户或组的任务列表创建一个新任务。 | |
服务任务 | Java服务任务(Java service task)用于调用Java类。 | |
脚本语言任务 | 脚本任务(script task)是自动执行的活动。当流程执行到达脚本任务时,会执行相应的脚本。 | |
业务规则任务 | 业务规则任务(business rule task)用于同步地执行一条或多条规则。Flowable使用名为Drools Expert的Drools规则引擎执行业务规则。目前,业务规则中包含的.drl文件,必须与定义了业务规则服务并执行规则的流程定义一起部署。 | |
接受任务 | 接收任务,也叫等待任务,当该任务到达的时候,它不做任何逻辑,而是被动地等待用户 Trigger。 | |
手动任务 | 手工任务可以理解为是一个自动执行的过程。手动任务在流程中做的事主要是在监听类里面做,大多数情况只是在流程的历史中留下一点痕迹, | |
camel服务任务 | Camel服务任务允许您向Camel发送消息并从Camel接收消息 Camel是一种简单的连接不同的应用程序和服务 | |
http请求任务 | http服务任务可以用来发出HTTP请求。 | |
发邮箱任务 | 邮件服务任务可自动的发送电子邮箱,它可以向一个或多个收信人发送邮件,支持cc、bcc、HTML内容等1。 | |
Mule服务任务 | Mule服务任务允许你发送消息给Mule Mule是一个基于ESB架构的消息平台 | |
DMN决策逻辑任务 | DMN服务任务允许您在流程中嵌入DMN决策逻辑。 DMN是一种业务决策模型和语言,它用于描述业务决策的图形表示。 | |
shell脚本任务 | Shell脚本任务允许您在流程执行期间运行shell脚本和命令。 | |
外部服务任务 | external-worker服务任务允许您在Flowable流程引擎中执行外部任务,并与外部服务进行交互。可以将Flowable流程与外部应用程序或服务集成,并在流程执行期间调用外部服务的API。这对于与外部系统进行数据交换、验证、处理等操作非常有用。 |
5. 流程块
任务 | 描述 | 图标 |
内嵌子流程 | 内嵌子流程又叫嵌入式子流程,它是一个可以包含其它活动、分支、事件,等的活动。我们通常意义上说的子流程通常就是指的内嵌子流程,它表现为将一个流程(子流程)定义在另一个流程(父流程)的内部,子流程作为父流程的一部分。子流程是主流程中的一部分流程片段,并非独立的流程定义,一般作为局部通用逻辑处理,或者因为特定业务需要,使比较复杂的单个主流程设计清晰直观。 | |
事件子流程 | 通过事件触发的子流程,可以存在于在流程级别,或者任何子流程级别。和内嵌子流程类似,把一系列的活动归结到一起处理,不同之处在于事件子流程不能直接启动,要被动地由其它的事件触发启动。事件子流程可以通过消息事件、错误事件、信号事件、定时器事件或补偿事件等触发。 | |
调用子流程 | 调用活动可以引用流程定义外部的流程,当执行到调用活动时启动引用的外部流程,当外部流程执行完后转到当前流程下一节点。 | |
自组织子流程 | 自组织子流程是子流程的一种,其内部包含一组无需定义先后顺序和依赖的活动。在流程中事先定义好一组活动,但活动(的执行顺序是活动的执行者确定。 |