相关文章推荐
伤情的遥控器  ·  mybatis-plus连接SQL ...·  4 周前    · 
小眼睛的牙膏  ·  Kettle ...·  7 月前    · 

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

获取行列表

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

  • 选择 新建步骤 以向您的流中添加操作。

  • 选择操作 卡上的 搜索连接器和操作 搜索框中输入 列出行

  • 选择 Microsoft Dataverse 筛选搜索结果,以仅显示 Microsoft Dataverse 的操作和触发器。

  • 选择 列出行

  • 表名称 列表中选择 客户 表。

  • 保存并运行流,以确认返回的行数不超过 5,000 行。

    打开分页以请求超过 5000 行

    若要自动从查询中获取超过 5,000 行,请从 设置 中打开 分页 功能,如以下步骤所示:

  • 列出行 卡的右上角,选择菜单 (...)。

  • 选择 设置

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

  • 阈值 中,输入请求的最大行数。 可配置的最大阈值为 100,000。 在内部,此数字以默认页面大小增量进行四舍五入。 例如,如果页面大小为 5,000,并且您输入 7,000,则返回的行数为 10,000。

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

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

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

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

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

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

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

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

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

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

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

    要在流步骤中使用它,请输入 Odata 表达式,如下图所示。 此示例显示如何获取每个 account primarycontactid contactid fullname 列。

    用于指示 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 的选项。 若要了解详细信息,请参阅访问表数据时使用存储分区提高性能

  •