标签:Power 批量 -- 流程 flow m365 environment Automate 运行
概述
Power Automate 是一个云端的服务,它可以让我们很方便地定义流程,这些流程可以根据事件触发、手工运行、被程序调用、定时运行等,设计这种流程不需要编程能力,它内置了几百个连接器(connector)可以与各种系统做对接。关于Power Automate的基本用法,请参考 https://docs.microsoft.com/zh-cn/learn/powerplatform/power-automate 。
要解决的问题
今天这一篇文章给大家分享的是,当Power Automate的流程运行失败后,用脚本的方式批量将其重新运行。Power Automate 会保存每个流程运行的历史,不管成功还是失败。点击进去可以看到运行的详细过程。下面是我某个运行失败的流程案例。
运行失败总是有原因的,但Power Automate 运行我们进行重新运行。但通过图形化界面,一次性最多可以重新提交10个流程
所以,如果要批量重新运行所有运行失败的流程,我们可能需要用到一点脚本技巧。我找到一个方法是这样的。
解决方案
首先,安装 m365 命令行工具,你可以通过这里的介绍进行安装 https://pnp.github.io/cli-microsoft365/user-guide/installing-cli/。
然后,用如下的脚本来完成这个操作吧
# 将当前窗口默认输出文本的编码设置为UTF8(这个不是必须的,但有些 PowerShell 版本会乱码
$OutputEncoding = [Console]::OutputEncoding = New-Object System.Text.Utf8Encoding
# 登录microsoft 365
m365 login
# 获取当前用户的默认环境(environment),因为一个用户可能会有多个environment,所以这里先取的第一个
$env = m365 flow environment list --query [*].name | ConvertFrom-Json | Select-Object -First 1
# 获取当前环境下的所有流程的编号和名称
$flows = m365 flow list --environment $env --query "[*].{id:name,name:displayName}" | ConvertFrom-Json
# 请确认你要查询的流程编号,例如下面是我的例子,它会返回一系列失败的运行记录编号
$flow = "0b93ac88-0e51-4f2b-9e58-efe8c0826877"
$failedrun = m365 flow run list --flow $flow --environment $env --query "[?status =='Failed'].name" | ConvertFrom-Json
# 循环提交所有的记录
$failedrun | ForEach-Object {m365 flow run resubmit --flow $flow --environment $env --name $_ --confirm }
这样就好了!
标签:Power,批量,--,流程,flow,m365,environment,Automate,运行 来源: https://www.cnblogs.com/chenxizhang/p/16297921.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。