在微软CRM中,有一种名为“查找”类型的字段,以代表子表中的外键字段,这种字段,被称为查找类型字段,lookup字段,或者EntityReference字段。该字段的数据类型是Guid——Microsoft Dynamics CRM中,数据表的主键的数据类型是Guid类型的。

在MS CRM平台层,查找类型字段包含三方面的信息:

  • 第一,Guid值,即主表的主键值;
  • 第二,name值,即主表的主字段的值。所谓主字段信息,就是一条数据记录的摘要描述,例如客户实体的“name”字段——客户名称、系统用户实体的“fullname”字段——系统用户的全名,等等字段,都是主字段信息;
  • 第三,实体类型entityType,即当前外键链接的数据表信息,当然了,在Dynamics CRM平台范畴内,应该叫做实体名称;

基于以上的解释,我们就可以了解,和查找类型字段打交道时,需要:

  • 获取查找类型字段值时,可以从该字段值中解析出Guid、name以及entityType;
  • 在为查找类型字段赋值时,需要将Guid、name以及entityType三个值拼装起来,而后赋值给查找类型字段;

样例代码如下:

//读取电话联络表单中的“负责人”字段值

   1:  var owner = Xrm.Page.getAttribute("ownerid");
   2:  if (owner == null)
   3:      return;
   4:  else
   5:      owner = owner.getValue();
   6:   
   7:  if (owner == null)
   8:      return;
   9:   
  10:  var ownerId = owner[0].id;
  11:  var ownerName = owner[0].name;
  12:  var ownerEntityType = owner[0].entityType;
  13:   
  14:  var alertMsg = "当前记录的负责人ID:" + ownerId + "\r\t" +
  15:      "当前记录的负责人名字:" + ownerName + "\r\t" +
  16:      "当前记录的负责人的实体类型:" + ownerEntityType;
  17:   
  18:  alert(alertMsg);

可以在“电话联络”表单的OnLoad事件中,执行上述代码,以验证效果。

某些表单的查找字段,可以允许关联多条记录,例如电话联络表单中的“接听人”字段。而正是由于这种字段的存在,所以才有了上面代码中使用owner[0]去获取数据值的代码。换而言之,无论是允许单选,还是允许多选,都是一个查找类型字段,为了满足两种情况,查找类型字段使用了数组去承载该字段所关联的数据记录,每个数组元素对应一个关联的数据记录,每条数据记录中包含有三部分信息,即id、name以及entityType。

故此,在进行允许关联多条记录的查找字段进行操作的时候,就是拼装一个数组,每个数组元素对应一个关联记录,每个元素有三个属性:id、name以及entityType。样例代码如下:

//魏电话联络表单中的“接听人”字段赋值

   1:  if (typeof(daemonlin) == "undefined") {
   2:      daemonlin = {};
   3:  }
   4:   
   5:  if (typeof(daemonlin.PhoneCall) == "undefined") {
   6:      daemonlin.PhoneCall = {};
   7:  }
   8:   
   9:  daemonlin.PhoneCall.Form =
  10:  {
  11:      onLoadHander: function () {
  12:          var toValue = new Array();
  13:          toValue[0] = new Object();
  14:          toValue[0].id = "8C8BEEC7-CAFC-E011-A7EB-0800273C14DE";
  15:          toValue[0].entityType = "account";
  16:          toValue[0].name = "小林商店 (示例)";
  17:   
  18:          toValue[1] = new Object();
  19:          toValue[1].id = "3E0AD1DF-3359-E111-9BFB-0800273C14DE";
  20:          toValue[1].entityType = "account";
  21:          toValue[1].name = "test"; 
  22:   
  23:          Xrm.Page.getAttribute("to").setValue(toValue);
  24:      }
  25:  }

转载于:https://www.cnblogs.com/StoneGarden/archive/2012/08/06/2625224.html

Microsoft Dynamics CRM 2011中,Lookup字段的赋值相关推荐

  1. Microsoft Dynamics CRM 2011 相关-摘自网络

    Microsoft Dynamics CRM Server 2011硬件需求: 组件 *最低要求 *推荐配置 处理器 x64 体系结构或兼容的双核 1.5 GHz 处理器 四核 x64 体系结构 2 ...

  2. 微软CRM5.0最新鲜的介绍-Microsoft Dynamics CRM 2011

    What's New in CRM 2011Microsoft Dynamics CRM 2011 includes some 500 new features, functions, and tec ...

  3. [链接]--Microsoft Dynamics CRM 2011 Web Resource简介

    MS CRM 2011 Web Resource 介绍及调用方法地址: http://blogs.technet.com/b/crmchina/archive/2010/12/29/microsoft ...

  4. Microsoft Dynamics CRM 2011 多客户端安装共用同一Sql Server 实例设置

    在CRM开发部署过程中,经常会遇到在多个地方部署CRM应用程序,但是用同一台服务器上的Sql Server 数据库实例,操作步骤如下: 1.安装CRM应用程序,在安装到"指定部署选项&quo ...

  5. Microsoft Dynamics CRM 2011 SDK 5.07版本已经发布

    近日,产品组发布了新一版本的软件开发工具包(SDK),版本号为5.07,下载地址为http://www.microsoft.com/download/en/details.aspx?id=24004. ...

  6. Microsoft Dynamics CRM 2011 JS操作集锦

    1.Xrm.Page.context 用户ID:getUserId() 用户角色:getUserRoles() 用户语言:getUserLcid() 组织名称:getOrgUniqueName() 组 ...

  7. Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs

    Microsoft Dynamics CRM 2013 BTW: RC stands for Release for Candidate, and RTM stands for Release to ...

  8. Microsoft Dynamics CRM 2013升级2015(二)正式安装升级 2015及 Reporting Extensions安装

    Microsoft Dynamics CRM 2015 系统要求和所需技术 Microsoft Dynamics CRM(本地) 版本需要以下软件: ·Microsoft Windows Server ...

  9. 从 Microsoft Dynamics CRM 4.0 server迁移到 Microsoft Dynamics CRM 2013 Server

    不能就地升级早于 Microsoft Dynamics CRM Server 2011 的版本号,比方 Microsoft Dynamics CRM 4.0 server.可是,能够在升级过程中使用 ...

最新文章

  1. @Component注解解析
  2. 15.PHP_PHP与Ajax
  3. 高一计算机专业用平板电脑,高中生需不需要平板电脑或者笔记本电脑?
  4. 六类网线和超六类网线有什么区别呢 怎么区分
  5. 年月跨度_建筑结构丨国内跨度最大的张弦桁架工程——合肥滨湖国际会展中心二期首榀桁架滑移成功...
  6. 当前系统时间与服务器时间,操作系统时间和服务器时间
  7. 基于链路思想的SpringBoot单元测试快速写法
  8. FTP服务器管理和配置
  9. SAP License:成本不是靠算出来的
  10. 文字超出显示....省略显示
  11. verilog 数据格式
  12. Atitit 编程语言原理与概论attilax总结 三大书籍总结
  13. java语言没有保留结构和联合,java选择题判断题题库.doc
  14. TMDB数据导入elasticsearch7
  15. APK大小查看、定义、反编译、如何安装解压
  16. ufw命令的基本使用
  17. html图片排版技巧,【CSS技巧】多图片的垂直居中排版
  18. 简单图像滤镜功能的Java实现
  19. 管理与维护linux系统(任务五 六 七 八)
  20. 《C Primer Plus》—第九章:函数(指针间接,函数及其定义方式,ANSI C原型,递归,函数调用的底层原理)

热门文章

  1. 【转载】一致性哈希算法(consistent hashing)
  2. Notepad++免费开源文本编辑器
  3. 国家电网公司“SG186”工程总部企业门户开发实施
  4. C语言 下标运算符和指针运算符
  5. maven overlay 扩展
  6. git将代码提交到多个远程仓库
  7. js中常用的算法排序
  8. sklearn LDA降维算法
  9. LINKs: Xamarin.Forms + Prism
  10. SpringMVC之Http标准的头部信息