四眼原则/双人规则/审批流/审核流

  四眼原则(four-eye principle 、Four Eyes Principle)意思是四只眼睛盯住,或者说是两个人规则,实际就是流程中需要两个人介入,一个人可以是经办,另外一个人是审核审批;如果是自动流程,也可以是两个人来审核。其他应用场景:

  • 付款批准
  • 发票批准
  • 合同批准

四眼原则准确定义:对于一个请求(例如,请求付款、请假),需要两个不同人实现批准。流程引擎应确保在批准请求之前满足两个批准。两个批准者执行的手动步骤也应在BPMN图中建模;使用具有任务列表的门户执行批准决策。

简单审核

简单审核是最简单的审核流程,比如平常的请教流程:

这是一个简单的批准,“审核者reviewer”必须批准或拒绝提案,此流程以“审核请假” 这个用户任务为开始,需要在网关的“批准”和“拒绝”选项之间进行选择。在此工作流程中,流程模型将“审核请假提案”的任务分配给“审核者”角色(图中未显示)。这个审核者给你四只眼睛中的前两个“眼睛”,所以你还需要另外两只眼睛。

添加第二个批准

要在“四眼”审批中使用四眼原则,您需要为工作流程添加第二个审批任务,以便为第二个审阅者添加。第二个审核模型可以复制第一个“审核”模式,也是使用网关。相当于第一张图的两张拼在一起,我们使用下面抽象一点的图表示:

 

流程模型现在有两个审核任务,分别分配给用户角色“第一个审批者First reviewer”和“第二个审批者Second reviewer”。但是,这样做的问题是:限制两个审核动作必须按照顺序发生,无法实现两个审核任务同时进行。

并行实现

四眼原则的并行实现有很多方案,最简单是使用并行网关:

当然,这里还可能有其他限制:比如是否必须强制执行四眼规则,确保在执行案例时不能将两个审阅者角色分配给同一个人?

子流程+消息流

下面看看使用子流程和消息流如何实现四眼原则:

为Process Engine,第一个审批者和第二个审批者使用单独的池。这样,我们就可以清楚地定义谁在控制哪个过程。在中间引擎池中,使用了用户任务和两个子流程进行消息通讯,审批者触发一个审批消息事件到两个审批子流程那里,当审批者进行决定后,将消息传回主流程,主流程是将第二个审批基于第一个审批必须同意的基础上,这是一种顺序限制,不同于并行网关实现。流程之间的交互使用消息流进行建模。这些消息流封装了批准者为完成用户任务而需要执行的手动步骤。

 

BPMN学习第二 步:请假流程图

工作流与BPM