专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Dynamics CRM

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

发布时间:2010-06-13 13:36:28 文章来源:www.iduyao.cn 采编人员:星星草
Dynamics CRM 2015 Update 1 系列(4): Alternate Keys

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

如果我们输入的数据违法了Alternate Key规则,其会提示如下错误:
这里写图片描述

改功能对终端用户没什么太大的影响,但是对广大的开发人员以及系统管理员来说,其真实一个非常牛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);

如果大家的项目里面涉及到大量的数据接口,不妨试试该方法来设计你们的程序吧。

版权声明:本文为博主原创文章,未经博主允许不得转载。

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: