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

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

在之前的Dynamics CRM 版本号中。我们仅仅能通过Entity的主键去推断记录的唯一性,如今我们能够通过使用Alternate Keys来推断记录的唯一性。更有趣的则是。我们能够自己去配置实体的Alternate Keys

眼下Alternate Key仅仅支持文本和数字类型的字段,而且每一个实体最多仅仅能配置5个Key。只是这已经非常不错了,配置方法也非常easy:Setting–>Customization–>Entity–>Key

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">

假设我们输入的数据违法了Alternate Key规则,其会提演示样例如以下错误:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">

改功能对终端用户没什么太大的影响,可是对广大的开发者以及系统管理员来说,其真实一个非常牛X的功能,有了它,从此省去了花在字段映射上的时间了。以下这个代码片段演示了,怎么获取一个Alternate Key的员数据 。以及怎么使用它去替换Entity Primary Key

RetrieveEntityKeyRequest req1 = new RetrieveEntityKeyRequest();
            req1.LogicalName = "new_accountkeyforerp";
            req1.EntityLogicalName = "account";

            RetrieveEntityKeyResponse rep1 = CrmSvc_Online.Execute(req1) as RetrieveEntityKeyResponse;

            string accountNumber = "2";
            string accountName = "Account2";

            Entity acc1 = new Entity("account");
            acc1.Id=Guid.Parse("{1B9D2BC3-7A0F-4D94-950A-B367D032092F}");
            acc1.Attributes.Add("accountnumber", accountNumber);
            acc1.Attributes.Add("name", accountName);

            UpsertRequest upsertReq1=new UpsertRequest();
            upsertReq1.Target=acc1;

            CrmSvc_Online.Execute(upsertReq1);

            //uses unique key to update/delete account

            KeyAttributeCollection keys=new KeyAttributeCollection();
            keys.Add("accountnumber",accountNumber);
            keys.Add("name",accountName);

            Entity acc2 = new Entity("account",keys);
            acc2.Attributes.Add("telephone1", "1522222222");
            CrmSvc_Online.Update(acc2);

            Entity acc3 = new Entity("account", keys);

            DeleteRequest req = new DeleteRequest();
            req.Target = new EntityReference("account", keys);

            CrmSvc_Online.Execute(req);

假设大家的项目里面涉及到大量的数据接口,最好还是试试该方法来设计你们的程序吧。

时间: 2024-10-10 04:23:17

Dynamics CRM 2015 Update 1 系列(4): 自己定义主键 - Alternate Keys的相关文章

Dynamics CRM 2015 Update 1 系列(1): 简介

Dynamics CRM 2015 Update 1 终于推出了,带来了一大堆的功能以及一大堆的惊喜,最让博主高兴的当然还是Dynamics CRM 界面风格的改变.我们终于可以摆脱那些非人性化的设计,新版本的界面给人耳目一新,太多亮点. Update1 当然不仅仅带了惊艳的界面改变,也带来了大量的新功能:更好的系统集成的开发体验,更人性化的APIs,更高效的自定义代码.小伙伴们先不急,我会在后续的文章中将其一一道来. 我们先来看看让我惊艳不已的界面改变吧: 全新的导航风格 界面配置界面 将样式

Dynamics CRM 2015 Update 1 系列(7): 消息事务 - ExecuteTransactionRequest

Dynamics CRM 2015 Update1 现在能将多个消息放在同一个事务管道里面执行了.这确实是个极好的Feature呀,这样我们可以灵活的组合不同的消息来实现复杂的业务需求而不用担心处理失败后的回滚细节. 使用方法也是非常的简单,调用ExecuteTransactionRequest消息,并将想要放入事务的消息放入该事务中,并提交至服务器,统一执行.我们看看下面的代码片段: ExecuteTransactionRequest req = new ExecuteTransactionR

Dynamics CRM 2015 Update 1 系列(2): Upsert API

Dynamics CRM 2015 Update1 推出了一个重量级的改变 "Upsert Request", 相信做过接口的朋友们都碰到过这样的场景,在向CRM写入数据的时候,因为无法确定该数据是否已经在CRM系统中存在,需要先做一次查询操作然后在进行后续的创建或更新操作.这样的数据写入流程无疑会大大的降低数据同步性能,因为在同步一条数据的同时,我们需要与服务器交互两次. 随着Upsert Request的推出,我们可以对这样的情况说再见了,我们把数据的检测逻辑交给系统进行处理,我们

Dynamics CRM 2015 Update 1 系列(4): Alternate Keys

Alternate Keys, 还是和系统集成相关的一个重量级Feature.使用该Feature能极大的提高开发数据集成接口的时间成本以及接口的运行效率. 在之前的Dynamics CRM 版本中,我们只能通过Entity的主键去判断记录的唯一性,现在我们可以通过使用Alternate Keys来判断记录的唯一性,更有趣的则是,我们可以自己去配置实体的Alternate Keys. 目前Alternate Key只支持文本和数字类型的字段,并且每个实体最多只能配置5个Key,不过这已经很不错了

Dynamics CRM 2015 Update 1 系列(3): API的那些事 - Old APIs VS New APIs

今天我们来看看API的变化.新系统中,去掉了一些经常使用的数据处理API,比如:SetStateRequest, SetBusinessUnitRequest, SetParentBusinessUnitRequest等. 如今我们做这类型的操作不须要单独的调用这类API了,我们能够直接构造我们期望的Entity对象.并将其推送到服务端.系统将会安装其内容做对应的处理. 俗话说,外行看热闹.内行看门道. 尽管不过简单的去掉了几个API,可是对于新系统的内部架构应该是发生了翻天覆地的重构. 对于我

Dynamics CRM 2015 Update 1 系列(3): Old APIs VS New APIs

今天我们来看看API的变化,新系统中,去掉了一些常用的数据处理API,例如:SetStateRequest, SetBusinessUnitRequest, SetParentBusinessUnitRequest等.现在我们做这类型的操作不需要单独的调用这类API了,我们可以直接构造我们期望的Entity对象,并将其推送到服务端,系统将会安装其内容做相应的处理. 俗话说,外行看热闹,内行看门道.虽然只是简单的去掉了几个API,但是对于新系统的内部架构应该是发生了翻天覆地的重构.对于我们开发者来

Dynamics CRM - 如何通过 C# Plugin 给 Contact的 主键(FullName)赋值

Contact 是 CRM 默认带有的 Entity,主键是 <FullName>,根据开发需求,与主键相关的字段都被设置成隐藏,包括了<Full Name>,<First Name>,<Last Name>, 其中 <Full Name> = <First Name> + <Last Name>.这时我们需要通过 C# plugin 给主键赋值. 一开始,我想在 plugin 里直接给<FullName>字段

Microsoft Dynamics CRM 2015 for Outlook 2010/2013 安装教程

Microsoft Dynamics CRM 2015 for Outlook 安装教程 注: 安装过程必须电脑要连上网,不然可能安装出错,最下面会总结出错log日记 . 查看下列视频: Microsoft Dynamics CRM 2015 中的 CRM for Outlook 配置: http://www.youtube.com/embed/4lAUXAiLId4  (此网站需要在国外或翻墙才能看) 如需看更详细的操作过程,可以访问以下网址: 微软官方详细介绍. https://techne

Dynamics CRM 2015 New Feature (4): Calculate Field &amp; Rollup Field

Calculate Field & Rollup Field 可以说是2个比较给力的Feature,随着Dynamics CRM版本的不断更新,这样激动人心的feature可是一个接一个的冒出来.就Calculate Field和Rollup Field来说,之前实现这样的功能都需要开发人员参与,但是现在只需要简单的手工配置就可以简单完成. Calculate Field--故名思意,就是级联字段,通过多个字段的值计算并将结果赋值给最终字段,之前做这样的开发是离不开Javascript,并且更给