今天我们来看看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. IIS发布.net core mvc web站点

    这里只有操作步骤! 第一.查看IIS是否安装了 AspNetCoreModule,查看路径:IIS->模块 查看 安装步骤 下载网址:https://www.microsoft.com/net/ ...

  2. C#:XML操作(简单)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...

  3. pip install 安装提示unknown 包

    pip install setuptools --upgrade should fix the issue

  4. DevExpress实现根据行,列索引来获取RepositoryItem的方法

    /// <summary> /// 根据行,列索引来获取RepositoryItem /// </summary> /// <param name="view& ...

  5. 使用 nice、cpulimit 和 cgroups 限制 cpu 占用率

    Linux内核是一名了不起的马戏表演者,它在进程和系统资源间小心地玩着杂耍,并保持系统的能够正常运转. 同时,内核也很公正:它将资源公平地分配给各个进程. 但是,如果你需要给一个重要进程提高优先级时, ...

  6. struts2设置非默认路径的struts.properties以及.properties文件解决方案

    一.web应用的classpath简介    classpath路径在每个J2ee项目中都会用到,即WEB-INF下面的classes目录,所有src目录下面的java.xml.properties等 ...

  7. Nginx设置expires设定页面缓存时间 不缓存或一直使用缓存

    配置expires expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求 要配置expires,可以在http段中或者server段中或者location段中加入 l ...

  8. map area 标签的使用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. apue编程之参考df代码写的一个简单的df命令的源代码

    代码: #include <stdio.h> #include <mntent.h> #include <string.h> #include <sys/vf ...

  10. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...