Dynamics CRM 2015/2016 Web API:聚合查詢
各位小夥伴們,今天是博主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:聚合查詢