关于SharePoint列表项仅允许单个Power Automate流运行的技术问询
你的思路完全可行,也是业内最常用的落地方式
具体操作步骤可以这么走:
- 在SharePoint列表里新增一个布尔类型的字段
isFlowRunning,默认值设为false(用布尔比文本字段更不容易出错)。 - 流触发后第一时间,用「获取项目」动作拉取当前项的
isFlowRunning状态。 - 加个条件判断:如果状态是
false,就继续执行后续业务逻辑;要是true,直接终止流就行。 - 正式开始业务逻辑前,用「更新项目」把
isFlowRunning改成true,锁死状态。 - 不管流最后成功还是失败,一定要把
isFlowRunning改回false——推荐用「范围」容器把业务逻辑包起来,然后在范围的「运行后」分支统一更新字段,防止异常导致状态一直锁着。
额外优化建议
- 如果是手动触发的流,在条件判断为
true的时候,给触发用户加个提示(比如邮件或者Teams消息),说当前项已有流在运行,避免用户反复尝试。 - 加个超时兜底:要是流因为意外卡死,
isFlowRunning一直是true,可以单独做个定时流,每天扫一遍列表,把那些状态为true且最后修改时间超过24小时的项强制重置状态。
关于现成实现方式
目前Power Automate和SharePoint没有内置的「单列表项流互斥执行」开关,所以你想到的自定义状态字段方案,就是当前最可靠的解决办法。
内容的提问来源于stack exchange,提问作者Valentyn Grygoriev
相关产品推荐
相关产品推荐

