1. 程式人生 > >Dynamics CRM 2015/2016 Web API:聚合查詢

Dynamics CRM 2015/2016 Web API:聚合查詢

當前 沒有 access 今天 接下來 fetch b2c send 查詢

各位小夥伴們,今天是博主2016年發的第一篇文章。首先祝大家新年快樂。工資Double,哈哈。今天我們來看一個比較重要的Feature--使用Web API運行FetchXML查詢!

對的,各位。你們沒有聽錯,使用Web API運行FetchXML查詢。在過去我們做這種事情但是要花九牛二虎之力喲,拼接大量的SOAP消息體並且還easy出錯。

如今好了,我們自己能夠在URL裏面加上我們想要運行的FetchXML就可以,系統則會乖乖的把我們想要的數據返回回來。是不是非常美好呢!

言歸正傳,Web API的數據查詢方式還是比較輕量級的。還是做不了復雜的查詢,比如:聚合查詢。分組查詢。但是我們卻能用FetchXML來輕松實現這些功能,接下來呢,博主就給大家演示一個簡單的小樣例:用Web API查詢當前客戶實體的記錄總數。

首先呢。我們要構造一個FetchXML,例如以下:

<fetch aggregate="true">
  <entity name="account">
    <attribute name="accountid"/>
    <attribute name="name" aggregate="count" alias="ct"/>
  </entity>
</fetch>

然後我們要把這個FetchXml拼接到Web API的請求URL中,例如以下:

https://ghostbear.api.crm6.dynamics.com/api/data/v8.0/accounts?fetchXml=%3Cfetch%20aggregate=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20aggregate=%22count%22%20alias=%22ct%22/%3E%3C/entity%3E%3C/fetch%3E

最後我們通過以下的代碼對它進行調用,並將結果返回:

            HttpRequestMessage accCountReq = new HttpRequestMessage(HttpMethod.Get, webApiUrl + "/accounts?

fetchXml=%3Cfetch%20aggregate=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20aggregate=%22count%22%20alias=%22ct%22/%3E%3C/entity%3E%3C/fetch%3E"); accCountReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessCode); HttpResponseMessage accCountResp = await client.SendAsync(accCountReq); if (accCountResp.IsSuccessStatusCode) { JObject result = JsonConvert.DeserializeObject<JObject>(await accCountResp.Content.ReadAsStringAsync()); Console.WriteLine(result.ToString()); }


返回結果

技術分享

Dynamics CRM 2015/2016 Web API:聚合查詢