time 
设为首页】【收藏本站
当前位置: 主页 > ERP > CRM > 【Dynamics CRM插件开发教程】2、插件开发准备之二

【Dynamics CRM插件开发教程】2、插件开发准备之二

时间:2014-10-17 15:59 点击:590次 字体:[ ]




     知道插件的辅助开发和部署工具以后,你可能很想知道,怎么触发插件的运行呢?前面已经说过了,插件就像触发器,它是基于事件运行的,这和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则是通过界面上的 停用或者激活 图标来改变实体记录的状态和状态说明 两个字段的值,它的效果通过代码执行SetStateRequest是一样的。

12.SetStateDynamicEntity消息,我从来没有用过,2011版本的SDK中也搜索不到这个消息,据朋友 路人甲 的说法,该消息是为了兼容4.0版本的,效果和SetState是一样的

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插件开发教程】2、插件开发准备之二_www.fengfly.com
 
比如商机实体(Opportunity)就支持Win 和 Lose 消息,订单(SalesOrder)实体就支持 LockSalesOrderPricing 消息,客户实体(Account)就支持 Merge 消息,发票实体(Invoice)就支持 LockInvoicePricing 消息,潜在顾客实体(Lead)就支持QualifyLead 和 Merge消息 等来触发插件运行。

 
值得说明的是,2011版本不支持自定义消息,所有实体的消息是固定的,2013版本则支持自定义消息,他是通过操作来实现的,具体可以参考http://www.fengfly.com/plus/view-215391-1.html


本文地址 : http://www.fengfly.com/plus/view-215414-1.html
标签: Dynamics CRM 插件开发
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: