Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
2015-01-19 14:05
323 查看
本文转自/article/4907086.html
Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
1. 问题描述
最近新建了一个post事件的插件,传入的参数处理如下:
但当我发布插件时,发现报错了,有属性没值,奇怪了,明明unit test通过了啊!
2. 解决方法1
后来在调用这个传进来的实体参数前,重新取一次,一切正常:
后来才发现这个传进来的实体参数只有一些改变了的属性才会有值,而没有改变的属性则没有带进来。
3. 解决方法2
那么能不能把想要的属性带进来呢,是可以的,也就是说不用在插件里再取一次这个实体.
方法就是使用 “前期事件和后期实体映像”
PreEntityImages 和 PostEntityImages 包含核心平台操作之前 (pre) 和之后 (post) 的主要实体属性的快照。Microsoft Dynamics CRM 会基于模拟的系统用户的安全权限填充前期实体和后期实体映像。只有设置为某个值或 null 的实体属性才在前期或后期实体映像中可用。当您注册您的插件时,可以指定让平台填充这些 PreEntityImages 和 PostEntityImages 属性。插件代码会将您在插件注册期间指定的实体别名值用作插件代码中图像集合的键值。
某些事件没有可用的映像。例如,只有同步的后期事件和异步的注册插件填充了 PostEntityImages。创建操作不支持前期映像,删除操作不支持后期映像。
具体做法是,在注册插件及添加step后,右健step,选择注册新的映像
然后可以指定名称及哪些属性要传入插件:
这里指明后,在插件开始的地方就不用,
Entity entity = (Entity)context.InputParameters["Target"];
而是用下面的方式了:
(Entity)context.PreEntityImages["image"];
这样就不用在插件里面,再取一次实体的其它属性了。
Dynamic CRM 2013学习笔记 系列汇总
Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
1. 问题描述
最近新建了一个post事件的插件,传入的参数处理如下:
1: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
2: {
3: Entity entity = (Entity)context.InputParameters["Target"];
4: …
5:
6: }
7:
Unit test 也正常pass:
但当我发布插件时,发现报错了,有属性没值,奇怪了,明明unit test通过了啊!
2. 解决方法1
后来在调用这个传进来的实体参数前,重新取一次,一切正常:
1: Entity entity = service.Retrieve(current.LogicalName, current.Id, new ColumnSet(new string[] { all }));
2:
后来才发现这个传进来的实体参数只有一些改变了的属性才会有值,而没有改变的属性则没有带进来。
3. 解决方法2
那么能不能把想要的属性带进来呢,是可以的,也就是说不用在插件里再取一次这个实体.
方法就是使用 “前期事件和后期实体映像”
PreEntityImages 和 PostEntityImages 包含核心平台操作之前 (pre) 和之后 (post) 的主要实体属性的快照。Microsoft Dynamics CRM 会基于模拟的系统用户的安全权限填充前期实体和后期实体映像。只有设置为某个值或 null 的实体属性才在前期或后期实体映像中可用。当您注册您的插件时,可以指定让平台填充这些 PreEntityImages 和 PostEntityImages 属性。插件代码会将您在插件注册期间指定的实体别名值用作插件代码中图像集合的键值。
某些事件没有可用的映像。例如,只有同步的后期事件和异步的注册插件填充了 PostEntityImages。创建操作不支持前期映像,删除操作不支持后期映像。
具体做法是,在注册插件及添加step后,右健step,选择注册新的映像
然后可以指定名称及哪些属性要传入插件:
这里指明后,在插件开始的地方就不用,
Entity entity = (Entity)context.InputParameters["Target"];
而是用下面的方式了:
(Entity)context.PreEntityImages["image"];
这样就不用在插件里面,再取一次实体的其它属性了。
Dynamic CRM 2013学习笔记 系列汇总
相关文章推荐
- Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
- Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置
- Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
- Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件
- Dynamic CRM 2013学习笔记(四十五)修改实体及字段的前缀(不用new_开头)
- Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
- Dynamic CRM 2013学习笔记(二)插件基本用法及调试
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
- Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
- Dynamic CRM 2013学习笔记(三十一)自定义用excel批量导入实体数据
- Dynamic CRM 2013学习笔记(二)插件基本用法及调试
- Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
- Dynamic CRM 2013学习笔记(二十二)插件里调用WCF服务
- Dynamic CRM 2013学习笔记(五)禁止修改、删除审批通过后的单据
- bash学习笔记4-参数解析
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
- Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用
- Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示
- Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)
- Dynamic CRM 2013学习笔记(十三)附件上传 / 上传附件