今天我们来看看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

  1. AssignRequest –> Entity.OwerId
  2. SetStateRequest –>Entity.StateCode
  3. SetParentSystemUserRequest –>SystemUser.ParentSystemUserId
  4. SetParentTeamRequest –>Team.BusinessUnitId
  5. SetParentBusinessUnitRequest –>BusinessUnit
  6. SetBusinessEquipmentRequest –>Equipment.BusinessUnitId
  7. SetBusinessSystemUserRequest –>SystemUser.BusinessUnitId

Dynamics CRM 2015 Update 1 系列(3): API的那些事 - Old APIs VS New APIs的更多相关文章

  1. Dynamics CRM 2015 Update 1 系列(4): 自己定义主键 - Alternate Keys

    Alternate Keys. 还是和系统集成相关的一个重量级Feature.使用该Feature能极大的提高开发数据集成接口的时间成本以及接口的执行效率. 在之前的Dynamics CRM 版本号中 ...

  2. 在标准实体特殊消息上注册插件及Dynamics CRM 2015中计算字段的使用

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复157或者20151005可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的 插件系列博客教程 讲述了 ...

  3. Dynamic CRM 2015学习笔记 系列汇总

    这里列出所有 Dynamic CRM 2015学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址:Dynamic CRM 2015学习笔记 系列汇总 一 ...

  4. Dynamics CRM 2013 SP1 升级到Dynamics CRM 2015

     首先截图一下我要升级的Dynamics CRM 2013版本如下图,可以看到是打了SP1后的CRM 2013.         运行CRM 2015简体中文版的安装文件CRM2015-Server- ...

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

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

  6. 在Dynamics CRM 2015中通过3CX插件(以及3CX windows phone)拨出电话

    背景 在On-premises部署的Dynamics CRM中实现通过网页拨通客户电话的功能 要点 3CX 提供了开箱即用的Dynamics CRM Solution,只需要在Microsoft Dy ...

  7. Dynamics CRM 2015 Online Update1 UI界面的更新变化

    听说出  Dynamics CRM 2015 Online  Update1了,立马跑去申请了个30天试用版简单的看了下,UI上的变化还是让人耳目一新的,也可能是被CRM2013的UI蹂躏太久了没 ...

  8. Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM 2016 Performance and Scalability Documentation

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

  9. Dynamics CRM 2015 New Feature (9): Services Changes

    Dynamics CRM 2015 为开发者加入了一些新的Service Request以及一个帮助类库XrmTooling,它支持连接各种环境下的CRM,比方:Online,O365,On Prem ...

随机推荐

  1. unity模型任意无限切割插件

    概述 3d模型的任意切割一直是游戏开发里的一个很大的问题,模型切割的关键点就只有生成横切面的新顶点以及切口纹理的缝合,理论上解决了这两点,就近乎可以做到以假乱真的程度了.本篇文章就这两点进行描述 详细 ...

  2. Linux-iptables详解

    一:前言   防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防 ...

  3. Ubuntu下安装使用Xfce4

    编辑于 2007-05-05 21:30   安装:  代码: sudo  apt-get  install  xfce4  xfce4-taskbar-plugin     (xfce4-taskb ...

  4. 搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例(转)

    一个文档包含了安装.增量备份.扩展.api调用示例,省去了查找大量文章的时间. 搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 cd /var/install ...

  5. 禁止用户登陆的 /bin/false和/sbin/nologin的区别

    1 区别 /bin/false是最严格的禁止login选项,一切服务都不能用. /sbin/nologin只是不允许login系统  小技巧: 查看 /etc/passwd文件,能看到各用户使用的sh ...

  6. mysql 开启慢查询 如何打开mysql的慢查询日志记录

    mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢,接下来将详细为您介绍 原文出自:http://www.jbxue ...

  7. 异步FIFO的FPGA实现

    本文大部分内容来自Clifford E. Cummings的<Simulation and Synthesis Techniques for Asynchronous FIFO Design&g ...

  8. 浅谈I2C总线

    I2C总线概述 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线最主要的优点是其简单性和 ...

  9. Android Studio运行程序,检测不到(夜神、Genymotion)模拟器

    用了统一给的android studio,运行程序,检测不到模拟器(夜神). 又新建了一个系统的模拟器,运行,提示ANDROID_SDK_ROOT is undefined 在环境变量中配置之后,夜神 ...

  10. Oracle DBA面试突击题

    一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...