如果Azure Logic App中的作用域操作中的任何操作失败,如何捕获异常详细信息

如果Azure Logic App中的作用域操作中的任何操作失败,如何捕获异常详细信息,azure,azure-logic-apps,Azure,Azure Logic Apps,我已经实现了Azure Logic应用程序来执行我的业务流。对于异常处理,我使用了范围操作。但是我想在范围内的任何操作失败时捕获异常详细信息 处理异常的示例逻辑应用程序流: 函数result()提供作用域中所有操作结果的上下文。函数result()接受单个参数,即作用域的名称,并返回包含该作用域中所有操作结果的数组。这些操作对象包括与actions()对象相同的属性,例如操作的开始时间、结束时间、状态、输入、相关ID和输出。要发送作用域内任何失败操作的上下文,可以轻松地将@result()表达式

我已经实现了Azure Logic应用程序来执行我的业务流。对于异常处理,我使用了范围操作。但是我想在范围内的任何操作失败时捕获异常详细信息

处理异常的示例逻辑应用程序流:

函数
result()
提供作用域中所有操作结果的上下文。
函数
result()
接受单个参数,即作用域的名称,并返回包含该作用域中所有操作结果的数组。这些操作对象包括与
actions()
对象相同的属性,例如操作的开始时间、结束时间、状态、输入、相关ID和输出。要发送作用域内任何失败操作的上下文,可以轻松地将
@result()
表达式与
runAfter
属性配对

要为具有失败结果的作用域中的每个操作运行操作,并将结果数组向下筛选到失败操作,可以将
@result()
表达式与筛选器数组操作和for each循环配对。您可以使用过滤后的结果数组,并使用
for\u each
循环对每个故障执行操作

下面是一个示例,后面是一个详细的解释,它发送一个HTTP POST请求,其中包含在范围“
My\u scope
”内失败的任何操作的响应体:

有关此建议的更多详细信息,请访问

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": "@result('My_Scope')",
      "where": "@equals(item()['status'], 'Failed')"
   },
   "runAfter": {
      "My_Scope": [
         "Failed"
      ]
    }
},
"For_each": {
   "type": "foreach",
   "actions": {
      "Log_exception": {
         "type": "Http",
         "inputs": {
            "method": "POST",
            "body": "@item()['outputs']['body']",
            "headers": {
               "x-failed-action-name": "@item()['name']",
               "x-failed-tracking-id": "@item()['clientTrackingId']"
            },
            "uri": "http://requestb.in/"
         },
         "runAfter": {}
      }
   },
   "foreach": "@body('Filter_array')",
   "runAfter": {
      "Filter_array": [
         "Succeeded"
      ]
   }
}