工作流程组件(Workflow Components)
以下屏幕截图显示了jBPM 5中可用的各种工作流组件。使用这些组件,您可以创建一个工作流来协调您的流程。
您也可以创建自定义任务,但稍后会介绍。 此外,还有一些可用于协调流程的服务任务。
Start Event - 这是每个进程中执行的第一个节点。 您的流程中只能有一个启动节点。
End Event - 此节点表示进程结束。 在进程中可能存在多个此类节点的出现。
Rule Task - 它是一个评估RuleFlow组的节点,该组是同一命名范围内的一组Drools规则。
Gateway (diverge) aka Split - 此特定节点在此过程中创建新的路径/方式。 它有两个或多个传出连接。 您可以选择三种不同类型的Splits/Gates。
AND GATE - 进程流同时继续到所有传出连接的位置。
XOR GATE - 根据工作流中定义的某些预定义约束,它只转到一个传出路径。
OR GATE - 流程在评估所有传出约束的情况下继续进行,并且在约束评估为true的情况下启用该路径。
Gateway (converge) aka Join - 此连接与拆分相反。 它将多个路径合并为一个路径。 可以有四种不同类型的连接/门 -
AND - 当所有分支完成时,流程继续。
XOR - 当至少一个分支完成时,流程继续。
Discriminator - 与XOR一样,如果其中一个分支已经完成,它将继续。 但与XOR不同,它会注册其他分支的完成,直到所有连接都完成。 当它发生时,节点重置,当一个传入的分支激活并且循环重新开始时,它可以再次进入。
N-of-M - 当n个m分支完成时,流程继续。 在配置门时,您需要指定n (数字),以确定在流退出之前应完成多少个分支。
Reusable Sub-Process - 调用另一个流程。 这对于将几个较小的过程组合成较大的过程非常有用。 这个较大的可以是一个协调过程。 您可以将调用进程配置为等待被调用者完成,并且还具有其父级的独立生命周期。
Script Task - 可以执行简单代码的节点。
Timer Event - 此类节点启动定时器并在定时器到期时触发。 启用与时间相关的流程和重复性任务。
Error Event - 此类节点在进程中发出错误信号。 它没有传出连接。 它指定FaultName和FaultVariable。 引擎将搜索与FaultName匹配的异常处理程序,并将Fault信息存储在FaultVariable定义的变量中。
Message Event - 在发出预定义类型的事件时触发。 它可以是内部事件(在进程内发出信号)或外部事件(由进程引擎以外的外部实体发出信号)。
User Task - 创建人工任务的节点。 此人工任务是必须由人类演员完成的活动。
Embedded Sub-Process - 帮助在父流程中创建子流程。 它可以有自己的范围。 这对于希望保持一些复杂分支隔离的大型进程非常有用。 它可以有自己的变量和异常处理程序
Multiple Instances aka for Each - 它允许将元素集合输入到子流程中。 与可重用子流程结合使用以组合和协调较小的流程非常有用。