PowerAutomate中途报错如何避免流程中断并获取错误的详细信息

在PowerAutomate中,有时候流程会因为中途某个action报错导致流程终止,这个时候我们我们其实有两个诉求:

  • 避免流程中断
  • 获取错误的详细信息

首先针对流程中断问题,我们可以通过配置action基于状态随后执行,如果需要多个action做错误捕捉可以将其加入控件->作用域里

 

 

 

 

 

 

像上图中,我们将逻辑内容体放在了try作用域,失败后执行动作放在cath作用域,这个时候,如果一旦try作用域里某个action发送错误时,将如执行catch作用域中的内容,否则跳过不执行,

在catch作用域中,此时如果想要捕捉错误信息,可以通过表达式“result('try')” 来获取try作用域中所有action的执行情况,然后通过对result内容解析获取具体的action错误消息,有这边示例中只有一个action,

因此示例中的表达式为:

first(result('try'))?['outputs']?['body']?['error']?['message']

 

 

 

 

 

 

 

 

这种方式确实可以获取错误信息,但是在某些情况下并不能获取到实际的action错误信息,比如下图这种由条件分支包了一层的action,如果“列表行”操作执行失败报错,

catch作用域中并不能获取到action实际的错误信息,而是由Condition抛出的错误信息“ActionFailed. An action failed. No dependent actions succeeded.

 

 

 

 

 

 

 这个时候如果想要获取的实际的action错误信息,可以提前设置一个全局变量“ErrorMessage”,在有可能报错的action后面配置随后执行给变量“ErrorMessage”赋值,使用表达式

actions('列表行')?['outputs']?['body']?['error']?['message']

 

如下图,注意此时catch不再是基于状态随后执行,在catch中可以基于变量ErrorMessage是否有值,来判断是否需要将错误信息发送给相关用户

 

posted @   西伯利亚小菜鸟  阅读(1575)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示