这是我在客户服务中遇到的一个真实案例,在此做一个记录,同时也分享一下这个案例与其解决方案。
- 背景说明
客户需要表单有提交者可以自己选择审批人的能力,可以不选,不选自动跳过这个审批节点,如果选多个那么就采用或签的审批方式,即多个审批人同时接受审批请求,但只要有一人通过那么该审批节点就算通过。
这算是个比较常见的需求了。要实现这个需求,其实就没有之前在线打开并编辑附件那个需求的难度高了。
- 功能实现
我们要做的就是在SharePoint List中放上几个人员字段并开启多选即可,这样提交者就可以在表单界面选择审批人了。
设置完表单界面后,我们就需要在PowerAutomate中从表单里获取到表单中所填写的审批人信息。
由于可以指定多个审批人,所以我们在这里不能将审批人的邮箱直接放到审批人里,否则的话所指定的多个审批人就会依次收到审批,而不是同时收到审批了。
这样的话我们就需要定义一个变量了,将指定的审批人的邮箱先放到这个变量里,根据审批节点的数据格式,设置多个审批人需要使用分号将多个审批人邮箱分隔开,所以我们在往变量里填数据的时候不要忘了加分号。
获取完审批人邮箱后,我们需要对这个变量做一个判断,如果这个变量长度为0,那么说明表单提交者根本没有指定审批人,根据需求,我们就直接进入下一审批节点;如果这个变量长度不为0,那我们再进入审批节点,将这个变量填到审批人那里即可。
之后进入下一审批,为了实现不论是上一审批节点通过,还是上一审批节点没有指定审批人,这两种情况都可以进入下一审批节点,所以在下一审批节点开始前我们要做个判断。
当这两个条件同时不被满足时才会说明是表单被否了(变量长度不为0说明指定了审批人,既然有审批人那么审批结果不为“Approval”那必然是审批人没点同意按钮),这时就将表单标记为“拒绝”即可,然后由于这个节点属于一个叶子节点,所以流程自然也就停止了。
当这两个条件有任意一个被满足则继续往下走,然后在这个“如果是”的分支中继续循环直到所有审批节点都过完即可。
↑ 这里记得将审批人变量的值清空!↑