jBPM5 - 工作流组件

以下屏幕截图显示了 jBPM 5 中可用的各种工作流组件。使用这些组件,您可以创建工作流来协调您的流程。

jBPM5 Workflow

您也可以创建自定义任务,但稍后会介绍。此外,还有可用于协调流程的服务任务。

  • Start 开始事件 − 这是每个流程中执行的第一个节点。您的流程中只能有一个开始节点。

  • End 结束事件 − 此节点表示流程结束。一个流程中可以出现多个此类节点。

  • Rule Task(规则任务) − 它是一个评估 RuleFlow 组的节点,该组是同一命名范围下的一组 Drools 规则。

  • Gateway 网关(发散)又名拆分 − 此特定节点在流程中创建新的路径/方式。它有两个或更多传出连接。您可以在三种不同类型的拆分/门之间进行选择。

    • AND GATE(与门) − 流程流同时继续流向所有传出连接。

    • XOR GATE(异或门) − 根据工作流中定义的一些预定义约束,它只转到一条传出路径。

    • OR GATE(或门) −流程基于对所有传出约束的评估进行,并且当约束评估为真时启用该路径。

  • 网关(汇聚)又名连接 − 此连接是拆分的反向操作。它将多条路径合并为一条。可以有四种不同类型的连接/门 −

    • AND − 当所有分支都完成时,流程将继续。

    • XOR − 当至少一个分支完成时,流程将继续。

    • Discriminator(鉴别器) − 与 XOR 一样,如果其中一个分支已完成,它将继续。但与 XOR 不同的是,它会记录其他分支的完成情况,直到所有连接都已完成。发生这种情况时,节点会重置,当传入分支激活时可以再次进入,然后循环重新开始。

    • N-of-M − 当 nm 个分支完成时,流程将继续。您需要在配置门时指定 n(数字),以确定在流程退出之前应完成多少个分支。

  • 可重复使用的子流程 − 调用另一个流程。这对于将几个较小的流程组合成一个较大的流程非常有用。这个较大的流程可以是一个协调流程。您可以配置调用流程以等待被调用方完成,并使其具有其父级的独立生命周期。

    • 脚本任务 − 可以执行一段简单代码的节点。

    • 计时器事件 − 这种类型的节点启动计时器并在计时器到期时触发。启用与时间相关的流程和重复性任务。

    • 错误事件 −这种节点表示流程中的错误情况。它没有传出连接。它指定一个 FaultName 和一个 FaultVariable。引擎将搜索与 FaultName 匹配的异常处理程序,并将 Fault 信息存储在由 FaultVariable 定义的变量中。

  • 消息事件 − 当发出预定义类型的事件时触发。它可以是内部事件(在流程内部发出信号)或外部事件(由流程引擎以外的外部实体发出信号)。

  • 用户任务 − 创建人工任务的节点。此人工任务是必须由人类参与者完成的活动。

  • 嵌入式子流程 − 帮助在父流程中创建子流程。它可以有自己的范围。这对于较大的流程非常有用,因为您希望将一些复杂的分支保持隔离。它可以有自己的变量和异常处理程序

  • 多个实例,又称 for Each − 它允许将元素集合输入到子流程中。与可重用子流程结合使用以组成和协调较小的流程时非常有用。