在流程中使用資料列列表

使用清單資料列動作可透過結構化查詢從 Microsoft Dataverse 中一次擷取多個資料列。

取得資料列清單

按照以下步驟,將清單資料列動作新增至流程中,以從 Dataverse 中的帳戶資料表傳回多達 5000 個帳戶。

Power Automate 允許你使用 new designer或 classic designer來配置雲端流程。 在兩個設計工具中,步驟都很類似。 如需進一步了解,請參閱識別新設計工具和傳統設計工具之間的差異 (帶有範例)。

  1. 選取加號 (+) >新增動作。
  2. 在「新增行動」畫面中,請在搜尋欄位輸入清單列。
  3. 在 Microsoft Dataverse 下,選取 列出資料列 (預覽)。
  4. 在左邊的參數索引標籤中,選取資料表名稱下拉式功能表中的帳戶。
  5. 選取 (<<) 以關閉畫面。

開啟分頁以要求傳回超過 5,000 個資料列

若要自動從查詢中取得 5,000 個以上的資料列,請開啟設定中的分頁功能。

當你設定分頁且列數超過你設定的閾值時,回應不會包含 @odata.nextLink 請求下一組列的參數。 關閉分頁功能,讓回應包含可用來要求下一組資料列的 @odata.nextLink 參數。 請前往Skip token,了解如何使用。

這將套用內容輸送量限制和訊息大小限制以確保提供一般服務保證。

  1. 選取清單資料列卡片。

  2. 在左側窗格中,選取設定索引標籤>網路。

  3. 如果尚未開啟,請將分頁滑桿移至開啟位置。

  4. 在閾值中,輸入要求的最大列數。 最大可設定的閾值為 100,000。

    在內部處理時,這個數值會以預設頁面大小為單位進行四捨五入。 例如,如果該頁面大小為 5,000,而您輸入 7,000,則傳回的資料列數為 10,000。

進階選項

List Rows 動作的進階選項可以讓你排序、篩選、排列及擴展查詢結果。

在動作設定窗格中設定選項。

  1. 若要查看選項,請選取列出資料列卡片。

  2. 在 參數 標籤中,選擇 進階參數 下拉選單中的進階選項。

    設定動作窗格中「列出資料列」動作的進階選項螢幕擷取畫面。

回傳完整元資料

此設定控制是否從表格載入所有欄位,或只載入必要的欄位以提升效能。 如果你未設定,當你的流程使用需要完整中繼資料的動態內容或運算式時,該動作會自動傳回完整中繼資料。

選取資料行

輸入一個逗號分隔的欄位清單以回傳,例如 name,createdon,preferredcontactmethodcode,emailaddress1,telephone1 帳戶資料表。

篩選資料列

使用此欄位定義類似 OData 的過濾表達式,以縮小 Dataverse 回傳的資料列集合,例如 createdon ge 2021-01-01T00:00:00-00:00 對於 createdon 大於或等於 2021 年的列。

學習如何 篩選列 以構建 篩選查詢 表達式。

將某些字元,如 &、 #、 +,替換為其 URL 編碼的對應字元。 欲了解更多資訊,請參閱 URL 編碼特殊字元。

重要

篩選運算式不能包含 $filter= 字串,因其僅適用於直接使用 API 的時候。

排序方式

使用此欄位定義一個 OData 式表達式,定義項目回傳的順序,例如 name desc。 分別使用 asc 或 desc 尾碼指示遞增或遞減順序。 預設順序為遞增。

展開查詢

使用此欄位指定 OData 樣式的運算式,以定義 Dataverse 從相關資料表傳回哪些資料,例如 primarycontactid($select=contactid,fullname) 使用帳戶的 primarycontactid,從 ID 為 contactid 的相關連絡人中,在回應中擷取 fullname 資料行。

您可以在展開查詢中使用兩種類型的導覽屬性:

  1. 單一值導覽屬性對應查詢資料行,支援多對一關聯並可讓您設定另一個資料表的參照。

  2. 集合值導覽屬性對應至一對多或多對多關聯。

如果你只包含導航屬性的名稱,你會獲得相關資料列的所有屬性。 在 使用 OData 加入表格中了解更多。

若要在流程步驟中使用,請在 展開查詢 欄位輸入此 OData 表達式: primarycontactid(contactid,fullname)。 以下說明如何取得每個account的primarycontactid之contactid和fullname資料行。

資料列數量

使用列 數 設定來指定你希望 Dataverse 回傳的列數。

擷取 XML 查詢

目前,使用 List 列動作搭配 FetchXML 查詢時,無法使用聚合查詢。 不過,你可以使用 distinct 運算子。

使用 類似 Dataverse 的 FetchXML 查詢,這在建立自訂查詢時提供更多彈性。 當你處理包含多個相關資料表的資料表,或處理分頁時,這些查詢會很有用。 以下螢幕擷取畫面顯示如何使用 FetchXML。

重要

分頁設定不支援 FetchXML 查詢。 若要要求超過 5,000 列,您需要在 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>

distinct 運算子目前尚未在 List rows 動作的 FetchXML 查詢中獲得直接支援,但你可以使用 union function 來移除重複的資料列。 例如,你可以用 Select 動作將 List 列連線的回應轉換到你需要的特定陣列格式,然後用 表示式union(body('Select'),body('Select'))建立變數,取得一個有不同列的陣列。

略過權杖

Power Automate 會套用內容吞吐量限制和訊息大小限制,以確保一般服務的保障。 為了在這些限制內工作,使用 分頁 來回傳批次中較少的列數,而非預設的 回傳資料表列數限制。

如果你不使用分頁,預設的頁面限制是 5,000 列。

要使用分頁,可以實作一個迴圈來解析 \@odata.nextLink JSON 回應中的值,提取 跳過標記,然後再發送一個請求,直到列出你需要的列數。

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"
}

分區識別碼

在擷取彈性資料表的資料時指定 partitionId。 欲了解更多,請參閱彈性 表格的分割與水平縮放。