Dynamics CRM 2015 Update 1 系列(3): API的那些事 - Old APIs VS New APIs
今天我们来看看API的变化。新系统中,去掉了一些经常使用的数据处理API,比如:SetStateRequest, SetBusinessUnitRequest, SetParentBusinessUnitRequest等。
如今我们做这类型的操作不须要单独的调用这类API了,我们能够直接构造我们期望的Entity对象。并将其推送到服务端。系统将会安装其内容做对应的处理。
俗话说,外行看热闹。内行看门道。
尽管不过简单的去掉了几个API,可是对于新系统的内部架构应该是发生了翻天覆地的重构。
对于我们开发人员来说。这种调整是绝对的好消息,由于我们能够再设计系统脚本或者是数据接口的时候。极大的降低与server的交互次数,也就是说,假设我们用这个新的改变去重构之前的接口程序。性能会得到极大的提升。
本文将不讨论全部涉及到修改的API,而是简介几个我们日常80%会使用的API:AssignRequest 和SetStateRequest。简介它们在调整后应该怎么使用,为大家起到抛砖引玉的效果。
能够參考以下的代码片段,这里我们对一条客户记录进行了2种操作:分派和设置属性。大家也能够发现,全部的这些操作都是在Entity Level实现的,并没有调用额外的Requests。
//set state
Entity testEntity = null;
Guid userId = Guid.Parse("{7651C7AF-8B18-E511-80E0-3863BB2E8C90}");
Guid userId2 = Guid.Parse("{461C2001-C724-4DFE-BA6E-ED2D274784D2}");
Guid teamId=Guid.Parse("{BC2D90A5-F221-E511-80E1-3863BB2E7CD8}");
Guid parentBUId=Guid.Parse("{4FE4929F-F221-E511-80E1-3863BB2E7CD8}");
Guid BUId=Guid.Parse("{A4448DF6-F221-E511-80E1-3863BB2E7CD8}");
QueryExpression query4Acc = new QueryExpression("account");
query4Acc.ColumnSet = new ColumnSet(true);
EntityCollection accounts = CrmSvc_Online.RetrieveMultiple(query4Acc);
if (accounts.Entities.Count > 0)
{
testEntity = accounts.Entities[0];
}
//set owner
if (testEntity != null)
{
testEntity["ownerid"] = new EntityReference("systemuser",userId);
}
//set state
if (testEntity != null)
{
testEntity["statecode"] = new OptionSetValue(1);
testEntity["statuscode"] = new OptionSetValue(2);
}
CrmSvc_Online.Update(testEntity);
当然,如今系统只重构了为数不多的API,相信随着兴许的跟新,系统将会更便利的开发体验给广大的开发人员。以下是已经支持Entity Level调用的API。当然其对于的API将会被废弃:D
- AssignRequest –> Entity.OwerId
- SetStateRequest –>Entity.StateCode
- SetParentSystemUserRequest –>SystemUser.ParentSystemUserId
- SetParentTeamRequest –>Team.BusinessUnitId
- SetParentBusinessUnitRequest –>BusinessUnit
- SetBusinessEquipmentRequest –>Equipment.BusinessUnitId
- SetBusinessSystemUserRequest –>SystemUser.BusinessUnitId
Dynamics CRM 2015 Update 1 系列(3): API的那些事 - Old APIs VS New APIs的更多相关文章
- Dynamics CRM 2015 Update 1 系列(4): 自己定义主键 - Alternate Keys
Alternate Keys. 还是和系统集成相关的一个重量级Feature.使用该Feature能极大的提高开发数据集成接口的时间成本以及接口的执行效率. 在之前的Dynamics CRM 版本号中 ...
- 在标准实体特殊消息上注册插件及Dynamics CRM 2015中计算字段的使用
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复157或者20151005可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的 插件系列博客教程 讲述了 ...
- Dynamic CRM 2015学习笔记 系列汇总
这里列出所有 Dynamic CRM 2015学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址:Dynamic CRM 2015学习笔记 系列汇总 一 ...
- Dynamics CRM 2013 SP1 升级到Dynamics CRM 2015
首先截图一下我要升级的Dynamics CRM 2013版本如下图,可以看到是打了SP1后的CRM 2013. 运行CRM 2015简体中文版的安装文件CRM2015-Server- ...
- Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 在Dynamics CRM 2015中通过3CX插件(以及3CX windows phone)拨出电话
背景 在On-premises部署的Dynamics CRM中实现通过网页拨通客户电话的功能 要点 3CX 提供了开箱即用的Dynamics CRM Solution,只需要在Microsoft Dy ...
- Dynamics CRM 2015 Online Update1 UI界面的更新变化
听说出 Dynamics CRM 2015 Online Update1了,立马跑去申请了个30天试用版简单的看了下,UI上的变化还是让人耳目一新的,也可能是被CRM2013的UI蹂躏太久了没 ...
- Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM 2016 Performance and Scalability Documentation
摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复285或者20181126可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...
- Dynamics CRM 2015 New Feature (9): Services Changes
Dynamics CRM 2015 为开发者加入了一些新的Service Request以及一个帮助类库XrmTooling,它支持连接各种环境下的CRM,比方:Online,O365,On Prem ...
随机推荐
- 强制关机后导致VBOX(4.2.16 r86992)的虚拟机不可使用问题的解决MEMO
上周六晚上由于有急事,就强制关机,导致今天晚上用VirtualBox(4.2.16 r86992)时,虚拟机上写着不可使用. 显示异常Message如下: D:\tinderbox\win-4.2\s ...
- php后台“爬虫”模拟登录第三方系统
http://blog.csdn.net/liu_c_y/article/details/49956679 http://www.php100.com/html/webkaifa/PHP/PHPyin ...
- SIP/2.0 403 Forbidden(Invalid domain in From: header)
一.错误场景 FreeSWITCH通过网关和一台支持SIP的网关设备互联,一个呼叫发过去,收到这个错误. FreeSWITCH的地址是192.168.1.99. 网关设备的地址是192.168.1.2 ...
- export、exports、modules.exports 和 require 、import 的一些组合套路和坑
推荐阅读第三方文章: http://www.tuicool.com/articles/uuUVBv2 引入: require / import 导出:export / module.exports / ...
- ruby配置相关
1.安装ruby 方式1: yum install ruby 方式2:https://www.ruby-lang.org/en/downloads/ 使用源码安装 ./configure make m ...
- Java运行Python脚本的几种方式
由于在项目需要执行Python,找寻相关资料,总结出以下几种方式: 直接执行Python脚本代码 引用 org.python包 PythonInterpreter interpreter = new ...
- linux kill 关闭进程命令
杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志. 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: # kill -pid 注释:标准的kill命令通常都能达到目的 ...
- [na]tcp的可靠性
- Redis 面试题(持续更新)
前言 看了一圈,发现Redis的面试题主要问的是如下几块: 原理 用处(缓存/队列 包括Pub.Sub/计数器/排行榜等) 基本操作与数据类型 消息队列 且与其它消息队列的区别 主从备份 宕机如何处理 ...
- Eclipse中安装JBoss Tools插件
1.先访问JBoss Tools网站,看看上面怎么说: http://tools.jboss.org -> 进入下载界面 看到下面这句话: Drag and drop this icon in ...