Dynamics 365 Online-多选域
参与过Dynamics CRM相关工作的朋友们都知道,Dynamics 365之前并没有多选域字段,想要实现多选域,需要自己添加WebResource定制,而这也带来了一系列需要考虑的情况,比如额外的字段消耗,逻辑上复杂的转换规则等,更有甚者,会去改变涉及多选域情况的业务逻辑。但随着Dynamics 365 V9版本的发布,多选域的问题将不再复杂(针对简单的需求),因为MS终于把多选域字段添加了进来。
1. 添加多选域字段
与新建OptionSet的方式没有区别,选择字段类型“MultiSelect Option Set”,也可以创建一个Global Multiple Select Option Set

在创建完之后,我们把它Publish到Form上,来看看具体的选择效果是什么样的

- 支持全选/反全选
- 支持搜索,是包含的查询结果
- “4 items”显示的是查询的结果数目,默认是所有
- 可以通过点击“x”来去掉选项
2. Advanced Find
既然这是一个字段,那么当然可以通过Advanced Find查询,对比以前的规则条件,多选域多了两个规则:“Contains Values”,"Does Not Contains Values"

那么FetchXml也相应的有所改变
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="account">
<attribute name="name" />
<attribute name="primarycontactid" />
<attribute name="telephone1" />
<attribute name="accountid" />
<order attribute="name" descending="false" />
<filter type="and">
<condition attribute="new_multiselect" operator="contain-values">
<value>100000000</value>
</condition>
<condition attribute="new_multiselect" operator="not-contain-values">
<value>100000001</value>
</condition>
<condition attribute="new_multiselect" operator="in">
<value>100000000</value>
<value>100000002</value>
</condition>
</filter>
</entity>
</fetch>
3. API调用
如果想执行多选域相关的操作,比如查询结果,这里需要引用最新版本的dll。在V9版本之后,MS将不再像以前那样提供SDK的下载包,Assembly直接通过Nuget添加,具体的名字:Microsoft.CrmSdk.CoreAssemblies。里面包含了需要用到的Microsoft.Xrm.Sdk.dll和Microsoft.Crm.Sdk.Proxy.dll

接着我们看看多选域字段值到底是什么样的。

多选域字段的值是一个集合:OptionSetValueCollection,每一个被选中的选项是一个OptionSetValue对象。

并且像OptionSet一样,FormattedValues里可以得到所有被选中选项的Label值,但是这里需要注意一点,Label值是用“;”分号隔开,而且除了第一个值之外,后续的值的前面都会有个空格,在进行数据操作前,需要把空格去掉。
再提醒一下,这里需要用到V9版本及以后的dll,不然多选域字段的Value都是空。
之前说到Operation有更新,那么对应于Advanced Find里面的情况,API中的Operator值分别是ConditionOperator.ContainValues和ConditionOperator.DoesNotContainValues。
Dynamics 365 Online-多选域的更多相关文章
- Dynamics 365新引入了多选选项集类型字段
本人微信和易信公众号:微软动态CRM专家罗勇 ,回复276或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之三:安装Windows活动目录域服务
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之二:创建域控虚拟机
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Dynamics 365 Document Management
Dynamics CRM中的Document Management功能需要Dynamics CRM与SharePoint进行集成,也就是实现在CRM中上传Document,实际上Document最终存 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十二:新增SQL Server可用性副本
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Dynamics 365 Customer Engagement安装FAQ
微软动态CRM专家罗勇 ,回复310或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文参考了包括但不限 ...
- Dynamics 365中自定义工作流活动获取的上下文分析及注意事项
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复244或者20170306可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics 365中的应用程序介绍
本人微信和易信公众号:微软动态CRM专家罗勇 ,回复275或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...
- Dynamics 365中配置和使用文件夹级别的跟踪(folder-level tracking)
本人微信和易信公众号:微软动态CRM专家罗勇 ,回复274或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...
随机推荐
- 量化投资与Python之pandas
pandas:数据分析 pandas是一个强大的Python数据分析的工具包.pandas是基于NumPy构建的. pandas的主要功能具备对其功能的数据结构DataFrame.Series集成时间 ...
- Effective Java 第三版——28. 列表优于数组
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- css FlexBox 弹性盒子常用方法总结
总结一下弹性盒子常用的方法,弹性盒子的功能强大,这次我做了兼容性的felxbox,虽然代码多了一点,但在项目时候可以直接复制过来用,同时在项目上线的时候,如果这时候弹性盒子出了兼容问题,那就可急了~ ...
- Android_基础控件
目录 一.文本控件TextView 二.按钮控件Button 三.图片控件ImageView 四.输入控件EditText 一.文本控件TextView 1.布局文件 <TextView and ...
- 基于esp8266的智能台灯DIY
研究esp8266已经很久了,特制作了一个智能灯, 代码如下,总结几点 一.关于arduino pro mini 的烧写方法 一定要在编译成功之后的下载提示出现的瞬间,单击复位按钮.才可进入烧写 二. ...
- windows7 设定开关机事件
动记录开关机的技能你知道吗? 下面跟我来设定一下记录电脑的开关机时间吧,工作常常会用到的. 在""我的电脑"右击=>管理=>系统工具=>时间查看器=&g ...
- HBuilder连接IOS手机打开APP测试
HBuilder是专为前端打造的开发工具,具有最全的语法库和浏览器兼容数据,以方便制作手机APP,最保护眼睛的绿柔设计等优点在近几年盛行: 开发移动端APP项目想要在手机真机上测试: 首先打开HBui ...
- javabean内省
何为JavaBean? JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共 ...
- java中的 private Logger log=Logger.getLogger(this.getClass());
this.getClass()得到什么? this 表示当前对象的引用: getClass() 是 java.lang.Object 中的方法,它返回一个对象的运行时类: this.getClass( ...
- 同时装了Python3和Python2,使用pip
第一种方法: pip安装: py -2 -m pip install -- py -3 -m pip install -- 运行代码: py -2 py.py py -2 py.py 第二种方法: 运 ...