Automation Hub
最新
False
横幅背景图像
Automation Hub API 指南
上次更新日期 2024年1月29日

Automation Hub 开放式 API Power Query 数据解析

事实证明,解析来自 Automation Hub API 的数据有时十分具有挑战性,尤其是在合并非常复杂的报告时。

在此页面中,我们将提供一些提示和技巧,以用于改进整体数据解析流程。该页面包含:

  • 参考开放式 API 和 Power Query 文档的步骤。
  • 一个示例文件,您可以在其中直接在 Power Query 中练习这些步骤。

设置主查询(用于 GET 自动化管道)

使用以下步骤设置主查询:

  1. 转到 Power BI 或 Excel,然后按“获取数据”- 然后选择“来自网页”
  2. 在新窗口中,按“高级”
  3. 在这里,您需要为连接添加相应的开放 API 数据。
  4. 首先添加端点(例如 GET 自动化管道)。
  5. 然后是标头
  6. 在标头中,添加身份验证令牌。
  7. 在插入令牌的值之前,请务必添加“持有者”一词。
  8. 按“连接”

现在,您应该可以从 Power BI 中的开放式 API 获取 JSON 响应。此外,您需要使用以下步骤在保存表格之前深入研究数据:

  1. 展开数据对象。
  2. 然后展开流程的对象。
  3. 现在,您可以将数据转换为表格,这将产生包含所有记录的单个列。
  4. 展开该列以获取 JSON 文件中的所有可用记录 - 您可以选择获取所有记录或仅获取部分记录。
  5. 完成展开后,请务必检查所有列,因为其中一些列具有您需要展开的嵌套记录。
  6. 遍历每一列,直到确保数据正常。您还可以根据需要设置某些列的格式。
  7. 如果您的数据正常,请按“保存并关闭”,然后等待数据加载。
  8. 您现在可以开始构建仪表板/报告。

使用分页从任何开放 API 请求动态获取所有项目

从不使用任何限制参数的简单查询开始,默认情况下,您将获得默认项目数 (20) 的响应,然后继续执行以下步骤:

  1. 向下钻取到“总页数”字段。
  2. 单击“函数”按钮,您的公式应更改为 =totalPages
  3. 插入以下公式 =List.Numbers(1,totalPages,1)
  4. 系统将生成一个列表,其中包含 API 响应中所有可用的页码。

此列表是动态的,具体取决于从响应中获取的页数。因此,如果您要刷新 API 查询,并且有新数据(新页面),它将自动将其添加到列表中。继续进行以下步骤:

  1. 将列表转换为表格。
  2. 将该列重命名为“Page”,并将数据类型更改为“文本”
  3. 创建自定义列。
  4. 在列公式中添加以下查询:
let 
       Source = Json.Document(Web.Contents(" https://automation-hub.uipath.com/api/v1/openapi/automationpipeline?pre=all&page="&[Page], [Headers=[#"Content-Type"="application/json", #"x-ah-openapi-app-key"="test", #"x-ah-openapi-auth"="openapi-token", Authorization="Bearer xxxxxx"]])), 
       data = Source[data], 
       processes = data[processes] 
   in 
       processeslet 
       Source = Json.Document(Web.Contents(" https://automation-hub.uipath.com/api/v1/openapi/automationpipeline?pre=all&page="&[Page], [Headers=[#"Content-Type"="application/json", #"x-ah-openapi-app-key"="test", #"x-ah-openapi-auth"="openapi-token", Authorization="Bearer xxxxxx"]])), 
       data = Source[data], 
       processes = data[processes] 
   in 
       processes 

上述查询从自动化管道获取数据,并使用页面参数(我们在列表中动态获取)获取所有可用页面的内容。5. 单击“确定”,并展开列。现在,无论 API 返回多少页,您都拥有响应中的所有可用项目。

解析其他查询(GET 自动化)以提取“说明”和“应用程序”字段

应用程序解析(以逗号分隔)使用以下步骤完成:

  1. 在查询编辑器中,转到包含应用程序的列,然后按“展开至新行”。
  2. 再次按“展开”,然后选择要提取的应用程序元数据,例如应用程序名称。
  3. 在“主页选项卡/功能区”中,单击“分组依据”
  4. 在分组依据窗口中,选择:

    • 由于 ID 是唯一的,因此按“流程 ID”列进行分组。
    • 新的列名称应类似于“应用程序聚合”。
    • 操作:Sum
    • 列:您为应用程序展开的列(在上面的示例中,它是 Column.1applications.applications_name)。
  5. 按“确定”后,您将收到错误消息,因为 Sum 函数无法处理文本条目。
  6. 转到公式栏,并将 List.Sum 替换为 Text.Combine 作为函数
  7. 此外,在公式中的应用程序列名称后,为文本条目添加分隔符,例如“, ”

    这是公式在更改前后的样子:

    变更前

    变更后

    = Table.Group(#"Expanded Column1.applications1", {"Column1.process_id

    = Table.Group(#"Expanded Column1.applications1", {"Column1.process_id

  8. 按“保存”并查看列条目:

说明解析(由段落分隔)

步骤与说明相同,但由于说明是一个文本字段,我们需要在其中分隔不同的段落,因此我们将在公式“#(lf)”中使用不同的分隔符。

变更前

变更后

= Table.ExpandRecordColumn(#"Expanded Column1.process_description.blocks", "Column1.process_description.blocks", {"text

= Table.Group(#"Expanded Column1.process_description.blocks1", {"Column1.process_id

解析其他查询(GET 自动化)以提取自定义问题/高级评估问题

从一个新的 GET 自动化查询开始(您可以使用上面显示的分页),然后按照以下步骤操作:

  1. 展开以下列:

    • 流程 ID
    • 高级信息或高级评估(两者的工作方式相同,但在本教程中,我们将使用高级信息)
  2. 再次展开以获取问题字段。
  3. 再次展开并获取以下字段。

    • 问题_文本
    • 答案_文本
    • 问题_响应_答案
  4. 展开“问题_响应_答案”并提取“响应_选择_文本”。
  5. 使用以下公式将“答案文本”列和“响应_选择_文本”列合并为一个列
if [AnswerText] is null then [AnswerChoice.response_choice_text] else [AnswerText]

这始终适用,因为您可以选择文本答案或响应选项(绝不可以同时选择两者)。使用以下步骤继续该过程:

  1. 检查并删除“问题”列中的所有空条目。
  2. 使用透视列将“问题”列和“答案”列中的所有当前数据转置为行。
  3. 选择“问题”列,然后从“转换”菜单中单击“透视”列。
  4. 选择答案列作为值列
  5. 选择“不作为聚合值函数聚合”,然后单击“确定”。

现在,所有概念都有一个相应的列,表示自定义问题及其相应的值。

将查询(来自 GET 自动化)合并到主查询(GET 自动化管道)

要将两个不同的查询合并到 Power BI 中,请查看在 Power Query 中通常如何完成此操作。然后,您可以从自动化管道查询开始,并将其与 Get 自动化查询合并。

  • 通过这种方式,您可以使用“Get 自动化”中的列展开“Get 自动化管道”中的可用列。
  • 您需要使用流程 ID 来合并查询,因为它既是所有查询之间的唯一标识符,又是公共密钥。

Automation Hub API Power Query 解析演示

在下面,您可以观看本文中描述的步骤的视频演示。

在此视频中:

可从此处下载视频中使用的示例文件。

此页面是否有帮助?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath 白色徽标
信任与安全
© 2005-2024 UiPath. All rights reserved.