0

我有一个天蓝色的逻辑应用程序,其中包含许多连接器、循环和条件,例如发送电子邮件、SQL 更新和其他一组东西。

该流程根据我的要求正确执行并为我提供最终结果。

现在我想要的是让在特定逻辑应用程序运行中执行的所有步骤或操作与状态一起被一次性检索。让我通过一个逻辑应用的小例子来解释我的查询:

假设有一个名为 TestLogicAPP 的逻辑应用程序 5 步,并且其中包含以下操作或步骤:

第 1 步:收到电子邮件时触发流程:OFFICE365 中使用的连接器 第 2 步:触发流程后,第一个操作将其标记为已读:再次使用的连接器是 Office365 第 3 步:向发件人发送回复:再次使用连接器是 Office365 第 4 步:假设电子邮件中有附件,并通过声明变量将附件名称存储在变量中 使用内置变量减速
第 5 步:将电子邮件中收到的此附件存储到 Azure 文件存储或文件共享:使用 azure 文件存储连接器

当您运行历史记录时,所有这些步骤都在逻辑应用程序中完美执行,没有任何错误。

我想要的是一次性列出所有这些操作/步骤及其状态,例如

STEP1 名称:成功 STEP2 名称:成功 STEP3 名称:失败以及失败的原因或消息(假设 3rd 从上面给出的示例中失败)

或者

STEP1 名称:成功 STEP2 名称:成功 STEP3 名称:成功 STEP4 名称:成功 STEP5 名称:成功

为此,当我搜索网络时,我得到了 Microsoft 提供的一个 rest API,它提供了以下详细信息:

获取https://management.azure.com/subscriptions/ {subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs/{runName}/actions?api-version=2016-06 -01

以上 API 取自以下链接: https ://docs.microsoft.com/en-us/rest/api/logic/workflowrunactions/list#code-try-0

但是在执行时,它不会列出给定逻辑应用运行中的所有操作。具体来说,它未在连接器相关操作下方列出:

  1. 逻辑应用的触发动作(office 365 连接器)
  2. 发送电子邮件(Office 365 连接器)
  3. 将电子邮件中的附件文件上传到 Azure 文件共享或文件存储

注意确定为什么?它是 Microsoft Logic APP REST API 中的错误,还是故意显示或省略这些类型的步骤或操作?

或者有没有其他方法可以获得上面解释的预期结果?

请帮助我解决这个问题或查询。

搜索网络并从下面的链接中找到与逻辑应用程序相关的其余 API,如上所述。

预期结果:获取逻辑应用运行的所有操作或步骤结果,包括触发器操作

实际结果:仅获得很少的操作/步骤结果很少从其余 api 结果中省略。

4

1 回答 1

0

我可以知道你是怎么调用其余的 api 的吗?我对其进行了测试并得到了预期的结果,发布如下步骤供您参考:

  1. 我在我的天蓝色门户中创建了一个逻辑应用程序(如下图所示) 在此处输入图像描述

  2. 向电子邮件地址发送电子邮件以触发此逻辑应用。

  3. 在我的逻辑应用程序的运行历史记录中,它显示如下截图。“标记为已读或未读”操作失败,最后一个操作被跳过。 在此处输入图像描述

  4. 然后我转到您提供的其余 api 的页面:https ://docs.microsoft.com/en-us/rest/api/logic/workflowrunactions/list并单击“试用”。输入所有需要的参数,例如“resourceGroupName”、“workflowName”和“runName”。 在此处输入图像描述

  5. 点击“运行”后,结果如下图:

{
  "value": [
    {
      "properties": {
        "inputsLink": {
          "uri": "xxxxxxxxx",
          "contentVersion": "xxxxxxx",
          "contentSize": 377,
          "contentHash": {
            "algorithm": "md5",
            "value": "xxxxxx"
          }
        },
        "outputsLink": {
          "uri": "xxxxxxxx",
          "contentVersion": "xxxxxxx",
          "contentSize": 766,
          "contentHash": {
            "algorithm": "md5",
            "value": "xxxxxxx"
          }
        },
        "startTime": "2019-10-28T06:17:56.8609023Z",
        "endTime": "2019-10-28T06:17:56.9044006Z",
        "correlation": {
          "actionTrackingId": "xxxxxxx",
          "clientTrackingId": "xxxxxxx"
        },
        "status": "Failed",
        "code": "BadRequest"
      },
      "id": "/subscriptions/xxxxxxx/resourceGroups/huryTest/providers/Microsoft.Logic/workflows/hurylogicsteps/runs/xxxxxx/actions/Mark_as_read_or_unread_(V2)",
      "name": "Mark_as_read_or_unread_(V2)",
      "type": "Microsoft.Logic/workflows/runs/actions"
    },
    {
      "properties": {
        "startTime": "2019-10-28T06:17:56.9859119Z",
        "endTime": "2019-10-28T06:17:56.9977121Z",
        "correlation": {
          "actionTrackingId": "xxxxxx",
          "clientTrackingId": "xxxxxx"
        },
        "status": "Skipped",
        "code": "ActionSkipped",
        "error": {
          "code": "ActionConditionFailed",
          "message": "The execution of template action 'Send_an_email_(V2)' is skipped: the 'runAfter' condition for action 'Mark_as_read_or_unread_(V2)' is not satisfied. Expected status values 'Succeeded' and actual value 'Failed'."
        }
      },
      "id": "/subscriptions/xxxxxx/resourceGroups/huryTest/providers/Microsoft.Logic/workflows/hurylogicsteps/runs/xxxxxx/actions/Send_an_email_(V2)",
      "name": "Send_an_email_(V2)",
      "type": "Microsoft.Logic/workflows/runs/actions"
    }
  ]
}

我们可以看到json类型的响应正文中的“值”下有两个动作。“Mark_as_read_or_unread_(V2)”的状态为“Failed”,“Send_an_email_(V2)”的状态为“Skipped”。虽然他们失败或跳过,但他们都显示在这个休息api的结果中。(在你的问题中,你说“发送电子邮件”不在结果中)

顺便说一句:据我所知,这个api只是显示动作,但触发器不是动作。所以触发器不会显示在这个 api 的结果中。

除此之外,如果我们不使用 rest api,我们还可以通过“运行历史记录”->“运行详细信息”查看 azure 门户中的所有操作状态

希望对你的问题有所帮助~

于 2019-10-28T06:55:54.663 回答