Dynamics CRM开发学习-插件01
目录
1. 插件
2. 事件框架
事件框架关键功能
3.事件执行管道
(1)体系结构和相关组件
(2)管道阶段
(3)消息处理
(4)插件注册
(5)在数据库事务中执行
1. 插件
插件是可与 Microsoft Dynamics CRM 2016 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑,用于修改或扩展平台的标准行为。插件是事件处理程序,因为其是注册要执行的插件,用于响应平台触发的特定事件。
2. 事件框架
用于开发自定义代码并将其集成到Microsoft Dynamics CRM服务器中的技术称为事件框架。
事件框架关键功能
(1)改进的事件处理子系统:该子系统提供统一的方法来执行插件和工作流活动,这可以改进可靠性、增强功能集以及改进插件的灵活性。
(2)事件框架API:用于通过以插件和工作流活动的形式开发自定义业务逻辑来扩展Microsoft Dynamics CRM平台。
(3)用于将插件和自定义工作流活动部署到Microsoft Dynamics CRM数据库的API。通过将插件和工作流活动部署到数据库,可以将插件和自定义工作流活动自动分发给整个数据中心中运行Microsoft Dynamics CRM服务的服务器。
(4)同步和异步执行插件:作为主Microsoft Dynamics CRM事件处理的一部分以预定义的顺序执行同步插件。异步插件会排队,然后独立执行。
3.事件执行管道
Dynamics Dynamics CRM事件处理子系统根据消息管道执行模型执行插件。Microsoft Dynamics CRM Web应用程序中的用户操作或者插件或其他应用程序执行的SDK方法调用会导致将消息发送到组织Web服务。该消息包含业务实体信息和核心操作信息。该消息是通过事件执行管道传递的,平台核心操作和任何注册的插件都可以在事件执行管道中读取或修改它。
(1)体系结构和相关组件
事件执行管道可以通过同步或异步方式处理事件。
平台核心操作和为同步执行注册的所有插件都会立即执行。为事件注册的同步插件按明确定义的顺序执行。为异步执行注册的插件由异步队列代理放入队列中并在稍后由异步服务执行。
(2)管道阶段
重要活动 | 阶段名称 | 阶段编号 | 说明 |
---|---|---|---|
前期事件 | 预验证 | 10 |
管道中的一个阶段,其中的插件在主系统操作之前执行。在此阶段注册的插件可能会在数据库事务外部执行。 |
前期事件 | 预操作 | 20 | 管道中的一个阶段,其中的插件在主系统操作之前执行。在此阶段注册的插件将在数据库事务内部执行。 |
平台核心操作 | 主操作 | 30 | 系统的事务内主操作,例如创建、更新和删除等等。在该阶段中不可以注册自定义插件。仅供内部使用。 |
后期事件 | 后操作 | 40 | 管道中的一个阶段,其中的插件在主系统操作之后执行。在此阶段注册的插件将在数据库事务内部执行。 |
(3)消息处理
当应用程序代码或工作流调用Microsoft Dynamics CRM Web服务方法时,会更改系统中的状态,这将引发一个事件。作为参数传递到 Web 服务方法的信息会在内部打包成OrganizationRequest 消息,并由管道处理。OrganizationRequest 消息中的信息会传递到为该事件注册的第一个插件,且在传递到该事件的下一个注册插件之前可以对其读取或修改,依次类推。插件会以传递到 Execute 方法的上下文的形式接收消息信息。该消息也会传递到平台核心操作。
(4)插件注册
可以在核心平台操作之前或之后注册要执行的插件。前期事件注册的插件会首先接收 OrganizationRequest 消息,并且在将该消息传递到核心操作之前可以修改该消息信息。核心平台操作完成后,该消息则称为OrganizationRequest 。响应会传递到注册的后期事件插件。后期事件插件可以在响应的副本传递到任何注册的异步插件之前修改消息。最后,响应返回到调用原始 Web 服务方法调用的应用程序或工作流。
因为单个 Microsoft Dynamics CRM 服务器可以承载多个组织,所以执行管道是特定于组织的。每个组织都有一个虚拟管道。使用该管道注册的插件仅能处理单个组织的业务数据。可处理多个组织的插件必须使用每个组织的执行管道进行注册。
(5)在数据库事务中执行
插件可以在也可以不在 Microsoft Dynamics CRM 平台的数据库事务中执行。插件是否是事务的一部分取决于管道处理消息请求的方式。您可以通过读取传递给插件的IPluginExecutionContext所继承的IsInTransaction 属性,检查插件是否正在事务中执行。如果插件正在数据库事务中执行,并且允许将例外传递回到平台,则整个交易将回滚。阶段 20 和 40 一定是数据库事务的一部分,而阶段 10 可以是事务的一部分。
在数据库事务中执行并且将异常传递回平台的任何注册插件都会取消平台操作。这会导致核心操作回滚。此外,尚未执行的任何前期事件或后期事件注册插件以及为其注册插件的同一事件触发的任何工作流都不会执行。
Dynamics CRM开发学习-插件01相关推荐
- 浅谈Dynamics CRM开发转Dynamics AX开发的感受与差异
浅谈Dynamics CRM开发转Dynamics AX开发的感受与差异 一.差异对比 二.总结 今天我们来谈谈作为一个开发了N年的Dynamics CRM工程师因公司需要转战Dynamics AX的 ...
- SAP CRM 开发学习资料和教程整理
首先是SAP网站上面的相关内容 SAP Customer Relationship Management:SAP的帮助中心,里面的内容比较全面 CRM Books:相关书籍,我没有看过,因为看起来全都 ...
- 微软CRM 开发学习笔记 使用c#编写插件(plugin)的方式实现页面执行操作
使用c#编写插件(plugin)的方式实现页面执行操作 的时候需要额外做的事情 包括事件:1实体验证(pre-validation) 2方法执行之前(pre-operation) 3 post提交之后 ...
- Dynamics CRM开发 - 注册Plugin 插件
一.VS里创建类库,cs文件编写完成后,生成对应的dll,为插件注册做准备. 二.打开Plugin Registration Tool,如果没有注册文件,可以去官方下载 Download tools ...
- AndroidCamera开发学习笔记01
概述 Android框架支持设备的相机拍照和录像功能 可以直接调用系统的Camera应用来拍照或录像 也可以利用Adroid系统提供的API开发Camera应用来实现拍照和录像的功能 注意事项 需要硬 ...
- OpenStack开发学习笔记01
OpenStack概述: openstack可以说是一个开源的操作系统. Openstack的开源协议,Apache License,是一个商业化的有好的开原协议,允许其他公司对其二次修改重新发布,来 ...
- 微信小程序开发学习记录01
微信小程序结构 根目录 app.js:小程序逻辑文件(必须) app.json:小程序配置文件(必须) app.wxss:全局公共样式文件(非必须) pages 组成小程序的多个页面,每个页面都有: ...
- C#进行CAD二次开发学习笔记-01
一些基础知识 需要引用CAD的库文件 常用接口和类 与C++ ---- ObjectArx库的一些区别 需要引用CAD的库文件 accoremad.dll acdbmgd.dll acmgd.dll ...
- 微信开发学习笔记01
最近几天做了一下微信开发,总结了一些经验和教训. 首先是微信token链接,最开始连接的时候总是出现token连接失败,总以为是设置的不对,结果第二天就好了.而且发现,如果上传的代码(我用的是新浪云) ...
- 【转】Dynamics CRM 365零基础入门学习(二)Dynamics 插件注册的基本流程
插件的官方定义是:插件是可与 Microsoft Dynamics CRM 365 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标 ...
最新文章
- 和达摩院深度绑定,阿里云下一个十年,成为“云上的阿里巴巴”
- 万能系统卸载器免root_Linux umount命令:卸载文件系统
- vivado与modelsim的联合仿真(一)
- mysql 单表查询
- 新版火狐浏览器怎么调整字体 火狐浏览器字体调整技巧分享
- Android 系统性能优化(22)---dumpsys的使用
- HTML5学习总结(2)——header/nav/footer/article/section/aside
- make: 未找到命令
- Maple 教程(一)---初认识
- php目录结构 modules,目录结构
- Filter vs Listener
- 木门代理商利用微信营销让自己的事业更上一层楼
- GATK GATK best practices notes
- 电影《寒战1》中的管理知识
- 7段均衡器最佳参数_7段均衡器怎么调能达到最佳效果
- 【AI TIME PhD】东北大学NLP实验室专场来啦!
- R语言ggplot2 柱状图(条形图)xy轴翻转,及排序
- 要塞十字军东征HD for Mac(即时战略游戏)
- 易飞ERP与PDM集成方法
- UE4 SVN工程文件备份
热门文章
- 手机裁剪圆角图片_Photoshop裁剪圆角图片方法
- windows主机开启winrm端口powershell脚本
- 用Android studio 做出QQ登录界面
- word文档找不到smartart_Word2016文档中插入SmartArt图形并添加文本的方法
- w10怎样关闭对计算机更改,w10电脑定时关机怎么设置 让w10系统自动关闭的设置方法...
- Activity任务栈
- 申论公文题-评论类-1
- 笔记本WIFI无法上网(无Internet访问权限)
- 联通专线切换成移动专线问题故障解决
- python 相关系数显著检验_Python dataframe 算相关系数用corr(),算不出结果