Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action
上篇文章介绍了Bound/Unbound Function。今天我们来看看Action吧。像我之前说的:Function和Action之前的差别能够简单理解为。Function不改动数据,可是Action却会改动数据。
今天呢,我们也分别看看Bound Action和Unbound Action,事实上它们的调用方式和Function是一样的,仅仅是这里的请求提交方式很多其它的是採用Post的方式。我们先来看两个样例吧:
公共变量
static string clientId = "580c20be-5960-42a0-837f-9b554b88b2d5";//"025220cd-a8c9-414f-aad7-a9288404262b";
static string service = "https://ghostbear.crm6.dynamics.com";
static string redirectUrl = "http://localhost/weapidemo";
static string username = "account";
static string password = "pwd";
static string webApiUrl = "https://ghostbear.api.crm6.dynamics.com/api/data/v8.0";
Bound Action
它也是能够基于详细的上下文去调用的,当然在调用这个Bound Action之前,不要忘记加入前缀“Microsoft.Dynamics.CRM”,要不然。请求会失败。在以下这个样例里面,我们往队列里面加入了一个电话记录。细致的朋友肯定已经意识到了,这里我们须要构造请求体。对于请求体的数据结构,能够看博主之前的文章,在这套新API里面。数据结构都简化了,我们能够使用最基础的结构去构造请求体。
HttpRequestMessage addToQueueReq = new HttpRequestMessage(HttpMethod.Post, webApiUrl + "/queues(70f6a997-71bb-e511-80d8-c4346bc5f7c8)/Microsoft.Dynamics.CRM.AddToQueue");
addToQueueReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", auth.AcquireToken().AccessToken); JObject addToQueueActivity = new JObject();
addToQueueActivity.Add("activityid", "3040F58A-75BB-E511-80D9-C4346BC43F3C");
addToQueueActivity.Add("@odata.type", "Microsoft.Dynamics.CRM.phonecall"); JObject addToQueueContent = new JObject();
addToQueueContent.Add("Target", addToQueueActivity); addToQueueReq.Content = new StringContent(JsonConvert.SerializeObject(addToQueueContent), Encoding.UTF8, "application/json"); HttpResponseMessage addToQueueResp = await client.SendAsync(addToQueueReq); if (addToQueueResp.IsSuccessStatusCode)
{
JObject result = JsonConvert.DeserializeObject<JObject>(await addToQueueResp.Content.ReadAsStringAsync());
Console.WriteLine(result["QueueItemId"]);
}
Unbound Action
顾名思义,该Action能够在不论什么实体上进行调用,能够对其单独调用,例如以下样例。
这里我们调用了WinOpportunity Action,对某个商机发起赢单操作。期间。我们是须要构造正确的请求体。
HttpRequestMessage winOppReq = new HttpRequestMessage(HttpMethod.Post, webApiUrl + "/WinOpportunity");
winOppReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", auth.AcquireToken().AccessToken); JObject closeOppItem = new JObject();
closeOppItem.Add("subject", "Won Opportunity!");
closeOppItem.Add("opportunityid@odata.bind", webApiUrl + "/opportunities(1440F58A-75BB-E511-80D9-C4346BC43F3C)"); JObject requestBody = new JObject();
requestBody.Add("Status", 3);
requestBody.Add("OpportunityClose", closeOppItem); winOppReq.Content = new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json"); HttpResponseMessage winOppResp = await client.SendAsync(winOppReq); if (winOppResp.IsSuccessStatusCode)
{
JObject result = JsonConvert.DeserializeObject<JObject>(await winOppResp.Content.ReadAsStringAsync());
Console.WriteLine(result);
}
调用这些Action是不是非常方便了,仅仅须要构造好URL和请求体就可以,调用这些请求在轻客户端是非常便捷的。至少我们不用去抓包并拼接SOAP消息体啦。
Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action的更多相关文章
- Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action
今天我们再来看看Bound/Unbound Custom Action吧,什么是Custom Action?不知道的小伙伴们就out了,Dynamics CRM 2013就有了这个功能啦.和WhoAm ...
- Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比較的迷糊.这种命名确实是和之前的那套基于SOAP协议的API全然联系不上.好了,不说 ...
- Dynamics CRM 2015/2016 Web API:聚合查询
各位小伙伴们,今天是博主2016年发的第一篇文章.首先祝大家新年快乐.工资Double,哈哈.今天我们来看一个比較重要的Feature--使用Web API运行FetchXML查询! 对的,各位.你们 ...
- Dynamics CRM 2015/2016 Web API:新的数据查询方式
今天我们来看看Web API的数据查询功能,尽管之前介绍CRUD的文章里面提到过怎么去Read数据,可是并没有详细的去深究那些细节,今天我们就来详细看看吧.事实上呢,Web API的数据查询接口也是基 ...
- 控制台程序(C#)不弹出登录窗口连接到Dynamics CRM Online的Web API
微软动态CRM专家罗勇 ,回复331或者20190505可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 我之前的文章 控制台程序(C#)不弹出认证窗口连接到Dynami ...
- Dynamics CRM 2015/2016新特性之三十三:有了ExecuteTransactionRequest,再也不用担心部分成功部分失败了
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 控制台程序(C#)不弹出认证窗口连接到Dynamics CRM Online的Web API
摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复271或者20180602可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...
- Dynamics CRM 2015/2016新特性之三十四:有了插件日志,调试插件so easy!
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复217或者20160330可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
随机推荐
- UVA 11925:Generating Permutations(冒泡排序 Grade D)
VJ题目链接 题意:n个数(n<300),是一个1~n的某个排列.有两种操作:操作1把前两个数换位置,操作2把第一个数移动到最后.问给出一个排列,问通过怎样的操作,能把1,2,3,...,n变到 ...
- [译]java8新特性:函数式编程(functional programming)的优点
Java8引入了函数式编程,他对java是一个极大的扩展.Java从此不在是一个单纯的面向对象语言,现在他同时混合了函数式编程.这是巨大的改变,需要我们调整面对对象的编程习惯,以适应这些变化. 但是为 ...
- codeforces-723D
题目连接:http://codeforces.com/contest/723/problem/D D. Lakes in Berland time limit per test 2 seconds m ...
- Python的程序结构[4] -> 函数/Function[1] -> 内建函数
内建函数 / Built-in Function or Method Python中有许多的内建函数(查看内建模块部分),此处将对内建函数进行介绍 内建函数 ord / built-in functi ...
- hdu3507(初识斜率优化DP)
hdu3507 题意 给出 N 个数字,输出的时候可以选择连续的输出,每连续输出一串,它的费用是 这串数字和的平方加上一个常数 M. 分析 斜率优化dp,入门题. 参考 参考 得到 dp 方程后,发现 ...
- codevs——1553 互斥的数
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有这样的一个集合,集合中的元素个数由给定的N决定,集合的元素为N个不同 ...
- HDU 4251 The Famous ICPC Team Again(划分树)
The Famous ICPC Team Again Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- luogu P1446 [HNOI2008]Cards
题目链接 luogu P1446 [HNOI2008]Cards 题解 题意就是求染色方案->等价类 洗牌方式构成成了一个置换群 然而,染色数限制不能用polay定理直接求解 考虑burnsid ...
- POJ 3368 Frequent values(线段树区间合并)
[题目链接] http://poj.org/problem?id=3368 [题目大意] 有一个有序序列,要求区间查询出现次数最多的数 [题解] 维护每个区间左端点和右端点,以及左右的长度,还有区间的 ...
- String中的方法
1.string s1 = "abcdefghij"; string s2 = "kuo"; Console.WriteLine(s1.Clone()) ...