今天我们再来看看Bound/Unbound Custom Action吧,什么是Custom Action?不知道的小伙伴们就out了,Dynamics CRM 2013就有了这个功能啦。和WhoAmI这类消息一样,我们都能够通过代码去调用它们。仅仅只是呢,今天我要给大家讲讲怎么用Web API的方式去调用它们。

Custom Action也被划分为Bound和Unbound两种类型了,它们的详细含义和之前讲的Function和Action没有差别。唯一的差别就是,这里的Custom Action是我们自己配置的,这里科普下。我们能够在Setting-》Process里面创建Action,它的创建界面例如以下:

Bound Custom Action

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

Unbound Custom Action

他们的调用方式和OOB Action是一样的,没有差别,详细能够參考以下的代码片段:

Bound Custom Action

 HttpRequestMessage custBoundActionReq = new HttpRequestMessage(HttpMethod.Post, webApiUrl + "/accounts(723ef58a-75bb-e511-80d9-c4346bc43f3c)/Microsoft.Dynamics.CRM.new_CreatePrimaryContactForAccount");
custBoundActionReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", auth.AcquireToken().AccessToken); JObject custBoundActionContent = new JObject();
custBoundActionContent.Add("FirstName", "Jeff");
custBoundActionContent.Add("LastName", "Xiong");
//custBoundActionContent.Add("Telephone", "15000303158");
//custBoundActionContent.Add("Email", "jeff.xiong@ghostbear.com"); custBoundActionReq.Content = new StringContent(JsonConvert.SerializeObject(custBoundActionContent), Encoding.UTF8, "application/json"); HttpResponseMessage custBoundActionResp = await client.SendAsync(custBoundActionReq); if (custBoundActionResp.IsSuccessStatusCode)
{
JObject result = JsonConvert.DeserializeObject<JObject>(await custBoundActionResp.Content.ReadAsStringAsync());
Console.WriteLine(result);
}

Unbound Custom Action

            HttpRequestMessage custActionReq = new HttpRequestMessage(HttpMethod.Post, webApiUrl + "/new_CreateDemoAccount_UA");///"accounts(723ef58a-75bb-e511-80d9-c4346bc43f3c)/Microsoft.Dynamics.CRM.new_CreateDemoAccount"
custActionReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", auth.AcquireToken().AccessToken); JObject custActionContent = new JObject();
custActionContent.Add("AccountName", "Jeff's Demo Account");
custActionReq.Content = new StringContent(JsonConvert.SerializeObject(custActionContent), Encoding.UTF8, "application/json"); HttpResponseMessage custActionResp = await client.SendAsync(custActionReq); if (custActionResp.IsSuccessStatusCode)
{
JObject result = JsonConvert.DeserializeObject<JObject>(await custActionResp.Content.ReadAsStringAsync());
Console.WriteLine(result); }

是不是非常轻松呢?小伙伴们要知道。在之前,我们定义这种Custom Action得花九牛二虎之力去呀。倒腾 web service什么的。

如今我们仅仅须要通过UI界面就能够轻松的配置一个不错的Action,是不是非常幸福呢。

Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action的更多相关文章

  1. Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function

    今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比較的迷糊.这种命名确实是和之前的那套基于SOAP协议的API全然联系不上.好了,不说 ...

  2. Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action

    上篇文章介绍了Bound/Unbound Function.今天我们来看看Action吧.像我之前说的:Function和Action之前的差别能够简单理解为.Function不改动数据,可是Acti ...

  3. Dynamics CRM 2015/2016 Web API:聚合查询

    各位小伙伴们,今天是博主2016年发的第一篇文章.首先祝大家新年快乐.工资Double,哈哈.今天我们来看一个比較重要的Feature--使用Web API运行FetchXML查询! 对的,各位.你们 ...

  4. Dynamics CRM 2015/2016 Web API:新的数据查询方式

    今天我们来看看Web API的数据查询功能,尽管之前介绍CRUD的文章里面提到过怎么去Read数据,可是并没有详细的去深究那些细节,今天我们就来详细看看吧.事实上呢,Web API的数据查询接口也是基 ...

  5. 控制台程序(C#)不弹出登录窗口连接到Dynamics CRM Online的Web API

    微软动态CRM专家罗勇 ,回复331或者20190505可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 我之前的文章 控制台程序(C#)不弹出认证窗口连接到Dynami ...

  6. Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  7. Dynamics CRM 2015/2016新特性之三十三:有了ExecuteTransactionRequest,再也不用担心部分成功部分失败了

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  8. 控制台程序(C#)不弹出认证窗口连接到Dynamics CRM Online的Web API

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复271或者20180602可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  9. Dynamics CRM 2015/2016新特性之三十四:有了插件日志,调试插件so easy!

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复217或者20160330可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

随机推荐

  1. 86.express里面的app.configure作用

    以下摘自 express 3.0 的 文档 app.configure([env], callback) Conditionally invoke callback when env matches ...

  2. Metasploit的攻击实例讲解----辅助扫描工具

    不多说,直接上干货! 怎么弹出来这个呢,连续按两次tab. msf > use auxiliary/scanner/ Display all possibilities? (y or n) us ...

  3. OpenGL编程逐步深入(七)旋转变换

    准备知识 这一节我们来看一下旋转变换.旋转变换指的是给我们一个指点的点和角度,我们需要绕着过该点的轴线將对象旋转对应的角度.这里我们只改变X/Y/Z中的两个分量,第三个分量保持不变.这意味着我们的图形 ...

  4. Spring mvc 启动 和 请求分发

    Spring mvc 启动 和 请求分发 启动加载: abstract class HttpServletBean extends HttpServlet void init() initServle ...

  5. salt的grains

    grains作用: 1.匹配 minion 2.收集信息 (每次重启minion才会收集) grains 数据存储在minion端. salt '*' grains.ls salt '*' grain ...

  6. 如何知道 CPU 是否支持虚拟化技术(VT)

    作者: Sk 译者: LCTT geekpi 我们已经知道如何检查你的 Linux 操作系统是 32 位还是 64 位以及如何知道你的 Linux 系统是物理机还是虚拟机.今天,我们将学习另一个有用的 ...

  7. 守护、互斥锁、IPC和生产者消费者模型

    守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are ...

  8. JZOJ5821手机信号

    用set维护,(l,r,v),注意边界,保证了两个端点l,r一定有信号站 增加有三种可能,1.直接加(没有影响),2.将原本的一个区间变成两个 3.将原本的一个区间变成三个 删除有三种情况,1.全包含 ...

  9. web——前后端通信原理

    前端向后台传输数据: 传输方法:post  get 区别: (1)get:用于从服务器获取数据,将参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看 ...

  10. LiquiBase预判断

    预判断解决的问题:运行liquibase之前,DB中已经存在一个table,所以需要加上预判断: 完整的一个例子: <?xml version="1.0" encoding= ...