注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

Dynamics CRM插件开发教程之插件开发准备之二  

2013-12-10 08:51:37|  分类: CRM插件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

      关注本人微信公众订阅号: 微软动态CRM专家罗勇 ,回复78或者20131210可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 

     知道插件的辅助开发和部署工具以后,你可能很想知道,怎么触发插件的运行呢?前面已经说过了,插件就像触发器,它是基于事件运行的,这和Windows Form或者ASP.NET编程都有些类似。值得一提的是,在Dynamics CRM中,事件被称之为消息,message,后文我将用消息来代替你可能更加熟悉的事件这个名称。

     哪些消息可以触发插件的运行呢?分两方面来说,我先说自己新增的实体默认情况下有哪些消息。我们知道实体分为组织拥有的实体(organization-owned entity)和用户拥有的实体(User-owned entity),他们比较明显的区别就是组织拥有的实体没有负责人字段,也不能共享和分派,而用户拥有的实体则可以。所以默认情况下,用户拥有的实体会比组织拥有的实体多出一些消息,这些消息也支持触发插件的运行。下表则是说明了新建实体默认情况下支持触发插件运行的消息:

消息名称

实体类型

消息可用性

实体支持的部署方式

Assign

User-owned entities only

Server

Server

Create

User-owned and organization-owned entitiesentity

Both

Server

Delete

User-owned and organization-owned entities

Both

Server

GrantAccess

User-owned entities only

Server

Server

ModifyAccess

User-owned entities only

Server

Server

Retrieve

User-owned and organization-owned entities

Both

Server

RetrieveMultiple

User-owned and organization-owned entities

Both

Server

RetrievePrincipalAccess

User-owned entities only

Both

Server

RetrieveSharedPrincipalsAndAccess

User-owned entities only

Both

Server

RevokeAccess

User-owned entities only

Server

Server

SetState

User-owned and organization-owned entities

Both

Server

SetStateDynamicEntity

User-owned and organization-owned entities

Both

Server

Update

User-owned and organization-owned entities

Both

Server

我对上面的消息做个简要说明:

1. Assign 消息是对实体记录执行分派,将会改变实体的负责人字段的值。

2. Create消息是新建实体的记录。

3. Delete消息是删除实体的记录。

4. GrantAccess 消息是对实体的记录执行共享操作。

5. ModifyAccess消息是对实体的记录的共享情况做出修改。

6. Retrieve消息则是通过实体记录的主键来查询唯一一条实体记录。

7. RetrieveMultiple消息则是通过非主键查询一条记录以外的其他方式来查询实体记录的查询。

8. RetrievePrincipalAccess 消息则是查询某个用户或者团体对实体的某条记录的访问权限。

9. RetrieveSharedPrincipalsAndAccess消息则是实体某条记录的共享情况,含共享对象,共享的权限详情。

10. RevokeAccess 则是取消某个用户或者团队对实体某条记录所有访问权限。

11.SetState  截至2015年10月13日,我没有见过任何操作会触发注册在这个消息上的插件。

12.SetStateDynamicEntity  通过界面上的 停用或者激活 图标来改变实体记录的状态和状态说明 两个字段的值会触发注册在本消息上插件的运行,当然,对于标准实体,可能还会有一些其他操作会触发,比如案例实体的 取消案例、重新激活案例 按钮

13.Update消息则是对实体记录的更新操作。

前面叙说可能比较模糊,后续文章我会用实际的例子来演示这些实体消息的发生及执行插件的例子。

对于那些系统自带的实体,支持的消息则多一些,详细列表可以参考sdk中的Supported messages and entities for plug-ins 的 Supported messages for default entities 部分,当然你也可以在sdk目录下的 Message-entity support for plug-ins.xlsx 这个文件中查看,下面是打开这个文件的截图:

Dynamics CRM插件开发教程之插件开发准备之二 - 罗勇 - 罗勇的博客
 
比如商机实体(Opportunity)就支持Win 和 Lose 消息,订单(SalesOrder)实体就支持 LockSalesOrderPricing 消息,客户实体(Account)就支持 Merge 消息,发票实体(Invoice)就支持 LockInvoicePricing 消息,潜在顾客实体(Lead)就支持QualifyLead 和 Merge消息 等来触发插件运行。

值得说明的是,2011版本不支持自定义消息,所有实体的消息是固定的,2013版本则支持自定义消息,他是通过操作来实现的,具体可以参考我的博文: 微软Dynamics CRM 2013介绍系列之二十三:操作(Action)的开发与配置 .

素格格新疆特产店--做最好新疆特产的搬运工。
本店由博主的新疆老婆开设,搬运各种最好的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选!
Dynamics CRM插件开发教程之插件开发准备之二 - 罗勇 - 罗勇的博客
 
  评论这张
 
阅读(1286)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018