MSCRM4.0 Plugin相关注册信息

自己一直没去写Plugin注册的程序,这段时间感觉是该勤奋一下,补补这块内容了。下面就以MSCRM4.0的Plugin注册后保存在各相关的实体里的信息进行分析,看看Plugin注册时都存了些啥东西,如何保存的。

(*虽然开发MSCRM2011有一年时间了,但由于刚好手上有4.0版本的此类开发,就以4.0为例了)

Plugin相关的实体主要以SdkMessage及Plugin为前缀命名,主要的有:

pluginassembly 用于保存程序集信息。

sdkmessageprocessingstep 保存Step信息。

plugintype 保存程序集中的Plugin类型(继承IPlugin的类)。

sdkmessage  保存请求信息,如:Update,Create等。

sdkmessagefilter   SDK信息筛选器,保存触发的实体信息。

以sdkmessageprocessingstep 为核心来分析,创建一个Step需要干些啥。

首先,pluginassembly是必须有的。当程序集被注册后,会创建两个东西,一个是pluginassembly记录,一个是plugintype(有的话)。

pluginassembly元数据定义如下:

5Z(1S[237JZUM95BH@E5623

content是保存程序集(.dll)二进制数据;

customizationlevel是自定义组织,0是系统级,1是用户自定义级。

name 程序集名称。

path 程序集路径,当注册为磁盘形式保存时有效(即程序集位置值为1)。

sourcehash  程序集的源的哈希。
sourcetype  程序集的位置,例如,0=数据库,1=磁盘中。

呃,省点力气,直接截图说明:

Plugintype元数据定义:

IF_)%7UT9KA$NVLABH(WKHQ


有了程序集后,还得有SDK信息筛选器:

H23TNUG)DVZ[6B}TUQJ(A0F

以上东西都有后,就可以创建Step了,Step的元数据定义如下:

K@USRDTW_BMCVD~5}I)Y@[4

X(3L46I~PICF3NSFEU5S79R


内容挺多,该有的都有了,只要Create它就好了。

最近想在一个Plugin中做Plugin注册,尝试了一下,竟然注册不上去(在Console下跑是可以的),猜是权限问题,只能明着使用CRM部署管理员的用户名和密码进行身份验证后才行,当前默认用户哪怕是管理员,它的权限还是受限于IIS的权限。难怪微软没有把Plugin注册功能集成在系统中了,而是要通过第三方工具来注册。

原文地址:https://www.cnblogs.com/bcszz/p/2436511.html