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元数据定义如下:
content是保存程序集(.dll)二进制数据;
customizationlevel是自定义组织,0是系统级,1是用户自定义级。
name 程序集名称。
path 程序集路径,当注册为磁盘形式保存时有效(即程序集位置值为1)。
sourcehash 程序集的源的哈希。
sourcetype 程序集的位置,例如,0=数据库,1=磁盘中。
呃,省点力气,直接截图说明:
Plugintype元数据定义:
有了程序集后,还得有SDK信息筛选器:
以上东西都有后,就可以创建Step了,Step的元数据定义如下:
内容挺多,该有的都有了,只要Create它就好了。
最近想在一个Plugin中做Plugin注册,尝试了一下,竟然注册不上去(在Console下跑是可以的),猜是权限问题,只能明着使用CRM部署管理员的用户名和密码进行身份验证后才行,当前默认用户哪怕是管理员,它的权限还是受限于IIS的权限。难怪微软没有把Plugin注册功能集成在系统中了,而是要通过第三方工具来注册。