插件的官方定义是:插件是可与 Microsoft Dynamics CRM 365 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为。也可以将插件认为是针对 Microsoft Dynamics CRM 触发的事件的处理程序。您可以让插件订阅或注册已知事件集,以便在事件发生时运行您的代码。实际上插件的作用就是通过代码灵活实现我们想要的逻辑。
本文介绍内容:
插件注册工具下载以及连接dynamics
插件注册的基本流程
(一) 插件注册工具下载
首先要下载插件注册工具Plug-in Registration,官方SDK文件包中提供了现成的注册工具,但是最大的问题就是SDK自带的registration tool版本太低了,现在最新版的都通过NuGet发布。
Download tools from NuGet可以从下面的连接下载,不明白的可以留言问我。
https://docs.microsoft.com/zh-cn/dynamics365/customer-engagement/developer/download-tools-nuget
打开registration tool。我们可以选On-premises和Office 365。本地注册开发可以选On-premises,Online可以选择Office 365。Office 365中正确填写username和Password既可连接到dynamic平台。
(二) 插件注册的基本流程
1.在VS中实现自己的逻辑代码。具体如何写插件,我们会在下一章节介绍。新建一个c#工程,类库框架使用FrameWork 4.5.2版本,输出类型选择类库。
2.写完插件代码,生成解决方法,在工程目录我们可以得到工程的Dll文件,以ProductSearch为例。
3.在注册之前,我们还需要完成签名的操作。如果没有签名,在注册插件的时候会发生报错。以下是我在google上搜到的一种签名方式,实际操作如下:
1.打开SDK Command Prompt或者VS2017中的Visual Studio 2017 Command Prompt.而不是windows的cmd
2.输入sn -k aspnetpager.snk,得到的文件在命令提示符的当前文件夹下
3.输入sn -p aspnetpager.snk aspnetpagerPublic.snk (从aspnetpager.snk中提取公匙存入aspnetpagerPublic.snk文件)
4.输入sn -t aspnetpagerPublic.snk 得到public key token
打开VS2017,找到项目,然后右击”项目名”找到”属性”,”属性”里面有个”Signing”(签名)的选项卡,然后钩上 “Sign the assembly”(为程序集签名),再Choose a strong name key file(选择强名称密钥文件).做完了操作,然后记得保存,编译这样你的DLL才能拖到GAC,GAC就是”全局程序集缓存”,这就是为什么你的项目的bin文件夹下没有System.Data,你都能引用的原因,因为程序会自动去找GAC,GAC的位置在win 2017中是”c:\windows\assembly”.
4.打开registration tool,点击Register->Register New Assembly,选中要注册的Dll文件,step2中可以选择要注册的方法,step3选Sandbox,step4选Database。
5.第3步完成了注册插件,然后点击Register->Register New Step.Message选择Creat。Primary Entity选择Account。最后是选择PostOperation 和Synchronous。
这一步我们可以将插件绑定到实体也可以是工作流上。以下是我们将实体绑定到Account上,Message是Creat。就是在Creat一个Account的时候,我们将会触发插件,将会执行插件代码。
这样插件注册的流程就到此结束了,如果过程中出现错误和疑问,还请大家留言讨论,谢谢!下一章将分享如何写插件代码的。