2017-05-24 37 views
1

我使用OrganizationServicePro從CRM獲取記錄,我想從一開始跳過一些記錄。情況是,例如我有2個實體被稱爲A和B.我正在使用OrganizationServiceProxy的RetrieveMultiple方法。從客戶關係管理使用OrganizationServiceProxy Retreiving跳過CRM記錄

A具有27條記錄

B已經記錄32

總計= 59

和我有1種方法,其獲取從兩個記錄,第一優先級是實體A和實體然後B.現在假設頁面大小=從實體10

在第一次調用 10個記錄是返回

在第二呼叫, 另一個10個記錄從實體A

在第三呼叫,從實體A 7的記錄和從實體B 3個記錄

在第四呼叫 10記錄從實體B (但我想跳過第3和4日開始記錄,因爲它的第三個呼叫過程中已經獲取)

所以我WA nt在從CRM中獲取數據時跳過記錄。我搜索了很多,但沒有得到任何東西。我的方法是,如果我從CRM獲取所有記錄,並從LINQ做分頁。

+0

等待,您可以設法執行2個RetrieveMultiple結果集(實體A + B)的聯合,以在您的方法中獲取合併的數據集。但尋呼曲奇是用於RetreiveMultiple調用本身分頁..所以你必須使用LINQ從本地合併數據集分頁.. –

回答

2

這聽起來像你想使用尋呼餅乾。例如查看鏈接和更多信息。

https://msdn.microsoft.com/en-us/library/gg328046.aspx

編輯

您需要重新創建你的循環的每一次迭代尋呼餅乾,但它的基礎上的現有尋呼的cookie。

下面的代碼來自我鏈接到的示例。

public string CreateXml(string xml, string cookie, int page, int count) 
    { 
     StringReader stringReader = new StringReader(xml); 
     XmlTextReader reader = new XmlTextReader(stringReader); 

     // Load document 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(reader); 

     return CreateXml(doc, cookie, page, count); 
    } 

這第一種方法需要您的FetchXml,pagingcookie,當前頁面和項目數每頁返回。它依次調用以下:

public string CreateXml(XmlDocument doc, string cookie, int page, int count) 
    { 
     XmlAttributeCollection attrs = doc.DocumentElement.Attributes; 

     if (cookie != null) 
     { 
      XmlAttribute pagingAttr = doc.CreateAttribute("paging-cookie"); 
      pagingAttr.Value = cookie; 
      attrs.Append(pagingAttr); 
     } 

     XmlAttribute pageAttr = doc.CreateAttribute("page"); 
     pageAttr.Value = System.Convert.ToString(page); 
     attrs.Append(pageAttr); 

     XmlAttribute countAttr = doc.CreateAttribute("count"); 
     countAttr.Value = System.Convert.ToString(count); 
     attrs.Append(countAttr); 

     StringBuilder sb = new StringBuilder(1024); 
     StringWriter stringWriter = new StringWriter(sb); 

     XmlTextWriter writer = new XmlTextWriter(stringWriter); 
     doc.WriteTo(writer); 
     writer.Close(); 

     return sb.ToString(); 
    } 

這建立了新的FetchXml返回結果的下一頁,但使用當前的頁面cookie來確定哪些是需要返回下一頁。

然後,只需要調用以下內容即可獲得結果;

​​

請仔細閱讀鏈接中的完整代碼示例,並確保明白它在做什麼。它在那裏。

+0

從頁面cookie我能夠獲得唯一標識符的最後一個元素..但我如何獲取最後一個記錄後的記錄? –

相關問題