在流中使用行列表

使用列出行操作以通过结构化查询一次从 Microsoft Dataverse 检索多个行。

获取行列表

请按照以下步骤将列出行操作添加到流中,以从 Dataverse 内的帐户表中返回最多 5000 个帐户

备注

  • Power Automate 使用经典云端流设计器或具有 Copilot 功能的新现代设计器。 要确定您使用的是哪种设计器,请转至探索云端流设计器中的注释部分。
  • 在传统设计器和新设计器之间切换时,系统会要求您保存流程。 在解决所有错误之前,不能保存和切换。
  1. 选择加号 (+) >添加操作
  2. 添加操作屏幕上,在搜索字段中输入列表行
  3. Microsoft Dataverse 下,选择列表行(预览版)
  4. 在左侧的参数选项卡上,从表名下拉菜单中选择账户
  5. 通过选择 (<<) 关闭屏幕。

打开分页以请求超过 5000 行

要从查询中自动获取超过 5,000 行,请从设置中打开分页功能。

当设置分页并且行数超过配置的阈值时,响应将不包含 @odata.nextLink 参数,因此无法请求下一组行。 关闭分页,以便响应包含可用于请求下一组行的 @odata.nextLink 参数。 转到跳过标记以了解如何使用它。

应用内容吞吐量限制消息大小限制以确保常规服务保证。

  1. 选择列表行卡片。

  2. 在左侧的窗格中,选择设置选项卡>网络

  3. 如果分页滑块尚未打开,请将其移动到位置。

  4. 阈值中,输入请求的最大行数。 可配置的最大阈值为 100,000。

    在内部,此数字以默认页面大小增量进行四舍五入。 例如,如果页面大小为 5,000,并且您输入 7,000,则返回的行数为 10,000。

高级选项

列出行操作的高级选项允许您对查询结果进行排序、筛选、排列和扩展。

您可以在“操作配置”窗格中设定选项。

  1. 要查看选项,请选择列表行卡片。

  2. 参数选项卡中,从添加新参数下拉菜单中选择一个高级选项。

    “配置”操作窗格中“列表行”操作的高级选项的屏幕截图。

选择列

输入要返回的以逗号分隔的列列表,如客户表的“name,createdon,preferredcontactmethodcode,emailaddress1,telephone1”。

筛选行

用于定义 OData 样式的筛选器表达式以缩小 Dataverse 返回的行集,如 createdon 大于或等于 2021 年的行的“createdon ge 2021-01-01T00:00:00-00:00”。

了解如何使用标准筛选器运算符查询函数构造筛选查询表达式。

某些字符,如 &#+ 需要替换为 URL 编码的等效字符。 更多信息:URL 编码特殊字符

重要提示

筛选器表达式不能包含此字符串 $filter=,因为它仅在您直接使用 API 时适用。

排序依据

用于定义 OData 样式的表达式,该表达式定义返回项的顺序,如“name desc”。 分别使用 ascdesc 后缀表示升序或降序。 默认顺序是升序。

展开查询

用于指定 OData 样式的表达式,该表达式定义Dataverse从相关表中返回的数据,例如 primarycontactid($select=contactid,fullname) 使用帐户的 primarycontactid 从响应中 ID 为 contactid 的相关联系人中检索 fullname 列。

您可以在展开查询中使用两种类型的导航属性:

  1. 单值导航属性与支持多对一关系并允许您设置对另一个表的引用的查找列相对应。

  2. 集合值导航属性与一对多或多对多关系相对应。

如果仅包含导航属性的名称,您将收到相关行的所有属性。 要了解详细信息,请参阅使用查询检索相关表行

要在流步骤中使用,请在扩展查询字段primarycontactid(contactid,fullname)中输入此 Odata 表达式。 这就是如何获取每个帐户primarycontactidcontactidfullname 列。

行计数

用于指示 Dataverse 返回的特定行数。 这是一个显示如何请求 10 行的示例。

Fetch Xml 查询

对 FetchXML 查询使用列表行操作时,当前不支持聚合查询。 但是,支持不同运算符。

请使用 Dataverse 样式的 FetchXML 查询,它可以在构建自定义查询时提供更多灵活性。 当您使用具有多个相关表的表或处理分页时,这些查询可能很有用。 下面的屏幕截图显示了如何使用 FetchXML。

客户表的 FetchXML 查询示例:

<fetch count="10">
	<entity name="account">
		<attribute name="name" />
		<attribute name="preferredcontactmethodcode" />
		<attribute name="emailaddress1" />
		<attribute name="telephone1" />
   		<link-entity name="contact" to="primarycontactid" from="contactid">
      			<attribute name="fullname" />
		</link-entity>
		<filter> 
			<condition attribute="createdon" operator="ge" value="2021-01-01T00:00:00-00:00" />
		</filter>
		<order attribute="name" descending="true" />
	</entity>
</fetch>

由于“列出行”操作的 FetchXML 查询目前不直接支持 Distinct 运算符,union 函数可用于删除重复行。 例如,您可以使用选择操作将“列出行”连接的响应转换为您需要的特定数组格式,然后使用表达式 union(body(‘Select’),body(‘Select’)) 创建一个变量来获取包含不同行的数组。

跳过标记

由于 Power Automate 应用内容吞吐量限制消息大小限制来确保一般服务保证,因此在使用分页批量返回较少数量的行时通常很有用,而不是默认的返回的表行数量限制

如果您不使用分页,将适用 5,000 行默认页面限制。

要使用,请实现一个循环来分析 JSON 响应中的 @odata.nextLink 值,提取跳过标记,然后发送另一个请求,直到您列出了您需要的行数。

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
Content-Length: 402  
Preference-Applied: odata.maxpagesize=3  
  
{  
   "@odata.context":"[Organization URI]/api/data/v9.1/$metadata#accounts(name)",
   "value":[  
      {  
         "@odata.etag":"W/\"437194\"",
         "name":"Fourth Coffee (sample)",
         "accountid":"7d51925c-cde2-e411-80db-00155d2a68cb"
      },
      {  
         "@odata.etag":"W/\"437195\"",
         "name":"Litware, Inc. (sample)",
         "accountid":"7f51925c-cde2-e411-80db-00155d2a68cb"
      },
      {  
         "@odata.etag":"W/\"468026\"",
         "name":"Adventure Works (sample)",
         "accountid":"8151925c-cde2-e411-80db-00155d2a68cb"
      }
   ],
   "@odata.nextLink":"[Organization URI]/api/data/v9.1/accounts?$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b8151925C-CDE2-E411-80DB-00155D2A68CB%257d%2522%2520first%253d%2522%257b7D51925C-CDE2-E411-80DB-00155D2A68CB%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20/%3E"
}

分区 ID

用于在检索 NoSQL 表的数据时指定 partitionId 的选项。 若要了解详细信息,请参阅访问表数据时使用存储分区提高性能