开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第2天,点击查看活动详情
仅需4步即可完成,快来挑战吧!
1.以管理员身份打开Power Shell,使用下面代码下载Microsoft 365 CLI。(安装npm报网络连接错误的话,见下图,可以试试关闭VPN,使用热点重新下载)
```
npm i -g @pnp/cli-microsoft365
```
2.输入以下命令,使用网页版登录账户到Power Automate.
```
m365 login
```
3. 输入以下命令,获取所有正在运行的流。
将命令中的GUID of then environment 和GUID of the flow替换为目标值。
例如,打开需要停止运行的工作流,复制链接,即可找到这两个ID。
https://make.powerautomate.com/environments/c1556d72-e237-eb5a-b39c-961bd371a3b3/flows/d17db4c5-32e4-4bd6-9631-98faab6dd734/details
```
Guid of the environment = c1556d72-e237-eb5a-b39c-961bd371a3b3
GUID of the flow = d17db4c5-32e4-4bd6-9631-98faab6dd734
```
$currentFlowRuns = m365 flow run list --environmentName <Guid of the environment> --flowName <GUID of the flow> --output json | ConvertFrom-Json
4. 遍历当前工作流的所有运行记录,如果正在运行,则取消。
```
foreach ($run in $currentFlowRuns) {
if ($run.status -eq "Running") {
# Cancel all the running flow runs
m365 flow run cancel --environmentName <guid of environment> --flowName <guid of environment> --name $run.name --confirm
Write-Output "Flow Run has been cancelled successfully"
}
}
```
备注:此代码只能用于取消当前工作流的所有运行记录,不能将此环境下所有工作流的运行记录取消(这也不符合逻辑需要),同时也不是取消solution中的所有工作流。 如果被取消的工作流在solution中作为父流,它会触发其他子工作流的话,则需要根据业务要求,将子工作流也全部取消掉。否则可能会导致,父工作流被取消了,但是父流触发的子工作流还在运行,即使子工作流运行成功,也不能将数据返回到父工作流,流程已经不能继续了。