You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Logic App中从Scope错误结果JSON中提取失败步骤的错误消息

在Azure Logic Apps中提取Scope失败步骤的错误消息

我来帮你搞定这个问题!在Azure Logic Apps里,要从Scope的执行结果中精准提取出status为Failed的步骤的错误消息,你可以通过内置动作和表达式轻松实现,具体操作如下:

步骤1:引用Scope的执行结果

首先确保你已经获取到了目标Scope的执行结果,通常可以直接用表达式引用Scope的输出:

@actions('Your_Scope_Name')['outputs']['body']

把Your_Scope_Name替换成你实际使用的Scope组件名称,这个表达式会返回你提供的那种包含所有步骤执行信息的JSON结构。

步骤2:筛选出失败的步骤

添加一个筛选数组动作,配置如下:

  • 从:填入上面的表达式(或者选择你存储Scope结果的变量/输出),指向JSON中的body数组
  • 条件:选择字段status,运算符选等于,值填写Failed

执行这个动作后,你会得到一个仅包含所有失败步骤的数组(对应你示例中的Set_variable步骤)。

步骤3:提取错误消息

接下来根据你的需求提取错误消息:

需求1:仅获取错误消息列表

使用select表达式提取所有失败步骤的error.message字段:

@select(body('Filter_array'), item()['error']['message'])

针对你的示例,这个表达式会返回:

[
  "Vorlagensprachausdrücke in den Eingaben der Aktion \"Set_variable\" in Zeile \"1\" und Spalte \"2098\" können nicht verarbeitet werden: Versuch zum Teilen eines Integral- oder Dezimalwerts durch null in Funktion \"div\"."
]

需求2:获取结构化的步骤名称+错误消息

如果需要保留步骤名称和错误消息的对应关系,可以用createObject构造自定义对象:

@select(body('Filter_array'), createObject('stepName', item()['name'], 'errorMessage', item()['error']['message']))

示例返回结果:

[
  {
    "stepName": "Set_variable",
    "errorMessage": "Vorlagensprachausdrücke in den Eingaben der Aktion \"Set_variable\" in Zeile \"1\" und Spalte \"2098\" können nicht verarbeitet werden: Versuch zum Teilen eines Integral- oder Dezimalwerts durch null in Funktion \"div\"."
  }
]

额外提示

如果你的错误处理逻辑需要直接使用这些消息(比如发送告警邮件),可以直接在邮件内容中引用上述表达式,无需额外存储变量,简化流程。

内容的提问来源于stack exchange,提问作者Paul Richardson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 21:47:47