大多数框架,都支持插件,用户可通过编写插件来自行扩展功能,Dynamics CRM也不例外。昨晚瑞泰资深技术专家陈江涛老师,为大家详细分享了Dynamics CRM中的Plugin开发经验,收到了大家的高度认可和赞许。
接下来让我们一起回顾一下陈江涛老师的直播回顾及课程精华,不容错过!
plugin基本概念介绍
我们先来熟悉一下几个涉及的基本名词,首先是我们今天的主角Plugin(插件),它是一种事件处理程序,通过它可以修改或扩充Dynamics CRM标准的业务流程,如创建时执行自定义逻辑。另外是SDK Message(SDK消息),通过它可以获取CRM标准功能中Create,Update,Delete等相关操作的事件信息。
有消息就会有事件先后的顺序,所以这边就会涉及两个名词,Pre-operation和Post-operation。具体而言,Pre-operation :消息事件触发前执行一个动作;Post-operation :消息事件触发后执行一个动作。
另外,我们今天谈到的D365平台与传统平台,在功能和页面开发层面均有不同之处。比如说在功能开发层面:传统平台需要自己开发,而365平台是系统标准的功能,不需要开发。在页面开发层面:传统平台需要自己开发,而365平台只需简单配置即可。
Plugin开发详解
基础概念熟悉后,下面我们就可以来开发plugin了,这边以销售订单创建、更新、删除等业务场景为例,可见开发的主要流程包括:
1.新建VS解决方案项目类库,这边我们可以按模块组进行命名;
2.引用Microsoft.Xrm.Sdk.dll;
3.新建销售订单,继承IPlugin接口,实现Execute方法,编写插件代码,实现业务逻辑;
4.选中类库项目,然后右键进行属性修改,比如签名、路径等;
5.最后编译生成类库项目。
Plugin调试技巧
我们都知道写代码,难逃BUG的命运,为此我们需要对代码进行调试,对CRM平台而言,有两种调试的方法。
第一种是拷贝文件,将编译生成Plugin项目,拷贝到相应的安装目录下去,用Plugin注册工具进行注册,之后在VS上附加进程。这种是原始的调试方式,我们不推荐使用。
第二种是Plugin Profiler,具体的操作流程如下:
1.安装Profiler(如果已安装,可忽略);
2.选中对应插件步骤,点击Start Profiling;
3.配置Profiler设置;
4.到CRM的界面中触发事件,下载日志文件;
5.在插件工具下点击Stop Profiling;
6.在VS中附加Plugin Registration进程;
7.插件工具点击debug,在弹出页面选择刚刚下载的日志文件和本地生成目录的dll文件,点击Start Execution;
8.VS调试断点进入,即可本地调试。
这种方式非常简单,推荐使用。
plugin常用开发技巧和问题
最后我给大家分享几个,plugin开发时踩过的坑。
1.注册update插件获取entity踩过的坑
▲Update插件获取的entity只包含该条记录id和修改的字段值Create;
▲插件获取的entity包含该条记录的所有字段。
2.注册delete插件获取entity踩过的坑
▲Update Create插件获取的类型为entity;
▲Delete 插件 获取的实体为entityreference;
3.除了CUR以外还有那些事件可以注册?
▲Associate & Disassociate (N:N) 多对多关系;
▲Win & Lose 商机赢单和丢单。
瑞泰信息技术有限公司成立于2008年,10多年来专注于 CRM 和营销数字化领域,基于微软 Dynamics 365 + 瑞泰 DX Apps 的“核心平台+行业应用”模式助力企业营销服务的数字化升级。旗下“瑞云信息” 专注于CRM领域的SaaS应用,为客户提供行业化、智能化的营销、销售和服务云应用。