众所周知,Power Automate的流程最多只能运行30天,到点之后直接超时,如果我们有超时时间设置的比较长的审批就会很麻烦,可能我们把审批节点的超时时间都设置为25天,结果第一个审批人就把25天拉满了,那第二个人等于只有5天时间审批了,否则流程就超时了。
我们有一个剑走偏锋的方法可以来规避掉这个限制。即一个审批节点结束后,直接自动新开一个流,这样的话对于第二个审批节点来说这个流是新开的,时限就重新从30天开始计时了。
注意:根据我上边说的实现机制也能看出来,对于单个审批节点来说,还是只能限制30天,只是对于整个流来说时间延长了;但是其实想要延长单个审批节点的审批时间其实也可以基于这篇文章分享的方法来实现,但就需要进行一些修改了。
首先我们设置表单字段,主要是必须得有这两个字段。
该字段用于标示是否需要启动新流程。
该字段除了向用户展示审批进度以外,流也需要根据这个字段的值来做一些分支判断。
然后加上我们的业务字段,整个表单就完事了,注意上边那两个字段的默认值。
流程我们选择“创建或修改项时”这个触发器,然后给触发器加上额外触发条件表达式。
然后我们立刻把“重新开始流”字段改成否,防止部分不需要触发新流的更新节点误触新流。
接下来我们判断审批状态。
新流开始时需要根据不同的审批状态进入不同的分支,如果是新提交的,那么状态就是默认值“一级审批”,就进入一级审批节点,一级审批节点同意后,新流开始,此时状态为“二级审批”,那么自然而然的就进入到二级审批节点中。
计入审批后,两个审批节点其实都大差不差。
首先我更新审批记录字段,这个不是必要的,
然后进一个并行分支,注意不是“条件”节点。
并行分支右侧设置“配置随后运行”。
那么当该节点超时后就会执行右侧的节点,我目前没有设置什么超时策略,只是单纯把“重新开始流”的值改成了“否”。
左侧就放判断审批结果的“条件”节点即可。
审批结果不是通过却仍然把“重新开始流”的值改成“是”原因是我们需要在拒绝后触发switch的第三个节点,这第三个节点与发起人重新提交表单的功能有关系。
第一审批同意后的节点是个修改表单字段值的节点,而“重新开始流”的值还被改成了“是”,那么我们就会触发新流的开始,新流开始后,“审批状态”的值也被改成了“第二审批”,那么新流自认而然的就会通过switch进入第二个审批节点。
第二个审批节点:
与第一个审批节点大差不差。
如果这两个节点有任何一个被拒绝了,那么状态就变成了“驳回”,将进入switch的第三个分支。
这里的审批节点是发给发起人的,如果发起人选择“重新提交”,那么该流就会把状态改为“一级审批”并再次自动触发一个新流,选择“撤销审批”,那么状态改为“撤销”,并且不再触发新流。
这样这个流程就基本搭建完毕了。