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是否有值,来判断是否需要将错误信息发送给相关用户


浙公网安备 33010602011771号