在实践中介绍CMMN:第三部分

在实践中介绍CMMN:第三部分

 

我们一直在跟踪示例CMMN模型,以此作为介绍CMMN可用于描述案例管理自动化的方法的一种方式。在上一篇文章中,我们已经完成了接收索赔的第一阶段,并且即将深入研究调查索赔的第二阶段。我们在这篇文章中要做的是看子阶段和里程碑。

案件现已移至下一个阶段,将自动启动流程任务“进行索赔调整”所引用的流程。在示例应用程序中我们对流程的定义中,依次有三个用户任务,因此,第一个任务现在将等待用户输入。

 

在调查索赔阶段,该阶段的顶层还有一个其他元素,但是由于它与完成的事件相关联,因此只有在处理任务完成后,该元素才可用。没有与任何任务相关的表单,因此我们可以依次完成每个任务。该过程完成后,从案例阶段引用它的过程任务也将完成。如果您一直关注此系列文章,您将知道通过complete事件连接到流程任务的元素现在将变为可用(条目哨兵没有其他条件)。但是那是什么呢?

 

这是一个子阶段–一个阶段中的一个阶段。您可以拥有的嵌套没有限制,这使您可以控制更复杂场景中的行为范围。我们在这里使用它的原因是,我们希望为用户提供选择,让他们选择是否要接受或拒绝索赔。我们可以在调用流程的过程中做到这一点,并将决定作为案例变量传递出去,但是,如果您有从案例中调用的可重用流程片段,则并非总是可能的。此外,它还允许我们通过这种方式来解释更多CMMN!

在这种情况下,我们使用用户事件侦听器,因为我们不想创建其他不必要的手动任务来做出决定。我们只希望用户可以使用几个动作来表示结果。同样,在实际案例管理方案中,在做出最终的接受或拒绝决定之前,用户可能会在此阶段内进行大量其他活动。用户事件侦听器的一项功能是没有入口哨兵。在我们的示例中,我们只希望用户的选项在阶段中达到某个状态后立即出现,而不是立即出现。如果在用户事件侦听器上没有条目哨兵,我们需要其他方法来提供该上下文的作用域。子阶段可以提供该范围。

我们已经达到了流程任务已完成并且子阶段因此变为活动状态的状态,因此将评估其中的所有内容以查看它们是否变为活动状态,启用状态或可用状态。突然,我们的两个用户事件侦听器启用并在Flowable UI中可见。

当用户选择这些选项之一时,用户事件侦听器将触发并激活其链接的里程碑。里程碑除了存在或不存在之外没有其他实际行为–在Flowable中,如果使里程碑处于活动状态,则会为其创建变量。在我们的示例中,一旦里程碑发生,它就会触发子级退出(请参阅退出哨兵)。子阶段上下文消失后,用户事件侦听器将不再对用户可用(选项已从UI中消失)。完成流程任务和子阶段后,“调查”索赔阶段中没有其他可用的元素,因此该阶段本身完成了。Handle声称您学习最后阶段不会感到惊讶,现在变为活动状态。在下一篇文章中,我们将了解如何使用里程碑来触发行为。

 

相关教程