SPFx + MS Flow 实现简单审批流程

MS Flow的批准流程在批准的时候会重定向到一个批准的界面,这会让用户感到困惑,页面也不友好。为了可以灵活定制化提交/批准页面,并且让用户一直停留在SharePoint中提高用户体验,我放弃了MS Flow的批准流程模板,仅让MS Flow发送邮件,然后使用SPFx web part来实现页面。所以这篇博客介绍在SharePoint Online环境中,如何结合SPFx,列表和MS Flow来实现一个最简单的审批流程。

一, 配置列表

列表的作用是保存审批的状态,在状态更改的时候触发工作流向用户发送通知邮件。

在列表中添加一个状态栏如下:

然后添加审批人栏(Approver),列表结构如下:

二, SPFx webpart处理逻辑

创建一个SharePoint Framework webpart,并且将webpart添加到一个页面上。然后在webpart上添加一个标题和一个提交按钮:

用户填写标题,然后提交,SPFx会根据标题在列表中创建一条记录,同时指定一个批准人,并将Status设置为“待审批”。

三, 配置MS Flow发送邮件

用户提交审批之后会在列表中创建一条记录,因此可以触发MS Flow。

列表的MS Flow配置如下,只是简单地发送一封邮件给审批人,在邮件体中添加一个link,其url是SPFx webpart所在页面的URL,并在URL的参数中添加ID以及do这俩个参数,其中ID的值是当前item的ID,do的值是将要进行的操作,例如approve:

每当用户点击提交按钮,在列表中新建item的时候,审批人就会收到如下邮件:

当审批人收到邮件点击link的时候,会打开SPFx webpart页面,此时根据参数,我们发现这是审批人打开的页面,因此需要将提交按钮改为审批按钮。

当审批人点击审批按钮,SPFx webpart会将记录的状态改为“审批通过”。

然后我们修改Flow如下,现在需要根据状态来发送不同的邮件:

这里添加了一个condition来判断状态,即当状态为“待审批”的时候,向审批人发送通知邮件,否则通知提交人和审批人审批成功。

以上就是使用SPFx + List + MS Flow搭建的一个简单的审批流程。这样做实际上是将Flow承担的业务逻辑,转移到SPFx页面中,同时通过List来维护审批的状态。

这里需要注意的一个问题是,MS Flow并不是实时触发的。MS Flow的触发时间与购买的Plan有关系,最慢的是5分钟触发一次。

除此之外,SPFx也可以直接调用Flow,具体操作请参见:

http://toddbaginski.com/blog/how-to-run-a-microsoft-flow-from-a-sharepoint-framework-spfx-web-part/

发布了189 篇原创文章 · 获赞 15 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/shrenk/article/details/97623517
ms