CRM 4.0: How to Write and Deploy a Plug-In

  CRM4.0里放弃了使用CRM3.0常用的Callout功能,取而代之的是Plug-In。Plug-In是一个外部的Assembly被置入到CRM内部用来截取事件并可以和CRM进行交互,处理一些复杂逻辑。常见的可以截取的事件有一个实体的created, updated, or deleted等。Plug-In支持多重租赁,同步和异步运行,离线支持以及统一事件框架等。Plug-in通常会被应用于以下场景:

  l执行一个复杂的业务逻辑-在无法使用或很难使用Javascript和Workflow来处理时

  l在创建/更新实体时从其它系统获取数据

  l从CRM中更新其它系统

  创建CRM4.0的Plug-In通常需要创建一个类库(Class Library)类型的项目。Microsoft Dynamics CRM 4.0是基于.NET Framework 2.0的,所以我们需要创建基于.NET Framework 2.0的项目,但是你可以用Visual Basic或者C#. Microsoft Dynamics CRM 3.0 是基于.NET Framework 1.1的,所以对于CRM 3.0的Callout我们必须创建基于.NET Framework 1.1的项目。

  Develop A Custom Plug-in

  以下步骤演示了如何创建一个简单的CRM 4.0 plug-in 项目。

  1.    创建C# Class Library类型项目,命名为myPlugIn。

  2.    添加对”Microsoft.Crm.Sdk.dll”和”Microsoft.Crm.SdkTypeProxy.dll”的引用。这两个DLL在SDK"Bin目录中。

  3.    在类文件中添加对Microsoft.Crm.Sdk和Microsoft.Crm.SdkTypeProxy命名空间的应用,并且将类继承于IPlugin接口。

using System;using System.Collections.Generic;using System.Text;using Microsoft.Crm.Sdk;using Microsoft.Crm.SdkTypeProxy;namespace myPlugIn{  public class Class1 : IPlugin  {  }}

  4.    实现IPlugin接口的方法-如果你的类继承了IPlugin接口,那么Execute方法是必须被实现的。

  作为演示我们让这个Plugin在创建一个Account时(后)将它的Unique Identifier(AccountID)更新到Account Description字段里。

#region IPlugin Members  public void Execute(IPluginExecutionContext context){  DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties["Target"];    if (entity.Name == EntityName.account.ToString())    {      Guid id = (Guid)context.OutputParameters.Properties["Id"];      Key myKey = new Key(id);      if (!entity.Properties.Contains("accountid"))      {        entity.Properties["accountid"] = myKey;      }      if (!entity.Properties.Contains("description"))      {        entity.Properties["description"] = "GUID = " + id.ToString();        ICrmService service = context.CreateCrmService(true);        service.Update(entity);      }    }  }  #endregion

  5.    程序功能的实现就算完成了。但作为可以部署的DLL(为了安全的缘故)我们必须对这个项目实行强命名。

  对项目进行强命名,在Solution Explorer中右键点击项目名称然后选择Properties -> Signing. 选择”Sign the assembly”复选框并通过”New…”下拉选项来添加新的SNK文件。保存各种更改,Build项目,下一步就是部署了。

  编译PluginRegistration工具

  为了部署我们的Plugin,我们需要注册它。两种方法可以选择:编程方式或者用PluginRegistratin工具。PluginRegistration看起来有点奇怪,说是个工具,实际上提供的是源代码,它也是由SDK提供的,地址在:CrmSdk4"SDK"Tools"PluginRegistration. 因为是源码,所以我们首先需要用Visual Studio 2005打开PluginRegistration.sln解决方案文件。

  打开解决方案后,首先需要添加两个丢失的Web References.

  http://<servername>/MSCRMServices/2007/CrmServiceWsdl.aspx

  http://<servername>/MSCRMServices/2007/AD/CrmDiscoveryService.asmx

  并且将Web Reference的URL Behavior设置为Static. 最终完成的结果类似如下图所示:

  现在我们可以成功的编译项目了,当编译完项目后我们可以在CrmSdk4"SDK"Tools"PluginRegistration"bin"Debug目录下找到PluginRegistration.exe文件,为了更方便的使用,你可以将这个工具集成到Visual Studio IDE中,这里我们就不讲这个了,可以直接通过运行PluginRegistration.exe来启动我们的注册过程。

时间: 2024-08-02 13:26:26

CRM 4.0: How to Write and Deploy a Plug-In的相关文章

微软CRM 4.0 最新版安装详细图解!

什么是 Microsoft Dynamics CRM? Microsoft CRM 是微软根据客户关系管理软件的多行业特性开发出来的最新版本的CRM产品,基于微软Dynamics 专业版,结合多年的客户关系管理经验,为企业提供了一个完整的客户关系管理解决方案,帮助企业管理与客户的第一次接触到实现交易到售后服务的整个客户管理过程,更好的理解客户需求,并对客户需求做出及时地响应,最终改善客户关系,提高企业竞争力. 通过微软CRM的销售.市场.客户服务三大功能模块,帮助企业构建统一的客户资料平台,建立

Dolibarr ERP &amp; CRM 3.0.1发布 ERP和CRM系统

Dolibarr是一个为中http://www.aliyun.com/zixun/aggregation/9348.html">小型企业.自由职业者或基金会设计的简单的ERP和CRM系统.它基于web应用,可以用来处理所有需要的事务,包括管理产品.库存.发票.订单.基金会的成员管理.邮件,等等.它包括不同的功能例如企业资源计划 (ERP) 和客户关系管理 (CRM),以及应用于其它不同活动的功能.无需专业的技术知识,就可以简单的安装在服务器和数据库上运行. Dolibarr ERP &am

悟空CRM 5.0 升级发布

亲爱的小伙伴们:新的一年已经到来,惜别2014,又迎来了充满希望.机遇和挑战的2015年!悟空软件全体员工在此深深感谢您长期以来对我们的支持与信赖.在此,致以最诚挚的祝福和问候,在新的一年里,我们会更加努力,给您提供更优质更全面的服务! 做具有灵魂的系统! 悟空CRM开源版0.5今日正式发布体验:1.优化了导航栏的展示效果 2.优化了工作动态页面3.优化了客户详情页"编辑客户"."修改客户"."放入客户池"等操作的便捷性4.优化了数据统计页面的展

展望CRM 2.0: 复杂性与新体验的结合

2008年转瞬即逝.在这一年中,我们见证了SOA和CEM(客户体验管理)的高速成长,以及Web2.0技术的快速崛起.那么,CRM2.0时代是否也会随之到来,它与现在的CRM有多大的不同? 众所周知,Web2.0(包括博客.社交网络等技术)正在将互联网逐步转变为一种双向互动的媒介.从基本层面看,Web2.0将以往集中化的IT控制转向分散化,其中,社交网络在产品选择.市场接受.内容消费上所扮演的角色越来越重要,从另一个角度说,公司对客户思想与行为的控制力与影响力正在逐渐变小. 这会对CRM产生哪些影

【CRM Tips】如何在CRM 4.0中更换数据库

有的时候我们可能需要将某个Organization 数据库更改,或者由于某种原因我们需要将数据库指向另外一个已经存在的数据库.你可能知道数据库的结构,CRM将Organization的相关信息包括其连接串,数据库服务器名,Reporting Server的名称等都记录在MSCRM_CONFIG数据库的Organization表中,但你简单的修改这里边的信息可能并不管用.如果你的CRM服务器没有改变,数据库更改也只是在同一台数据库服务器上更改的话,不会有太大问题,只是你更改了连接串后却是假的,CR

Dynamics CRM 2013不再被支持的功能

每当我们升级新版系统的时候都需要调查哪些功能在升级后是不能使用的,毕竟系统的版本升级存在巨大 的风险:自定义开发,数据库数据都可能会面临丢失的风险.本文主要来说说自定义开发这块,看新版本的系 统对旧代码的兼容性. Dynamics CRM 2011 新系统完全支持用Support技术开发的自定义功能, 以Unsupport方式开发的功能并不支持.本人基本不会用unsupport这类hack技术来进行自定义开发,要知道这 类开发不但难以维护,而且一旦随着版本的升级而不再被支持后将会变的束手无策.

Dynamics CRM 2013新增加的功能

新系统除了修补系统历史漏洞外当然还会添加些比较有意思的新功能,至于这些新功能是否好用那就得看 它是否能经过咱们这些使用者的考验了.Dynamics CRM 2013系统将不再支持Dynamics CRM 4.0的客户端脚本 库,这样很多用hack技巧开发出来的功能都将面临不能使用的风险,相信这会给我们带来很多问题. 今天来讨论dynamics crm 2013 系统添加了一些什么样的功能,以及这些功能旨在解决哪类场景的问 题.对于这些新功能的具体分析,我会陆续的更新博客,希望能帮助大家更快的对新

《SAP CRM管理与实施指南》一一2.1 SAP CRM基础数据管理

2.1 SAP CRM基础数据管理 本节介绍SAP CRM的基础数据,包括业务合作伙伴.产品.组织结构.服务对象及知识库等.合作伙伴.产品.组织结构可以用于营销.销售及服务管理等模块中:对象.安装点.质保.计数器及知识库一般用于服务管理流程中.定价数据也是重要的基础数据,在2.2.3节中与定价的条件技术一起介绍.2.1.1 SAP CRM业务合作伙伴管理 和企业的业务相关的任何单位.人员均统称为业务合作伙伴(Business Partner),比如正式的有交易往来的正式客户(也常称为交易客户),

AS2.0大步更新 Google强势逆天

AS2.0大步更新 Google强势逆天 就在不久前,Google高调发布了Android Studio 2.0,是的,他19号才发布了Android Studio 1.5,才过了一个礼拜,很多人都是昨天才更新了1.5,一看今天就2.0了,步子跨的太大,不会疼嘛.不过没事,程序员还怕死嘛,马上更新. New Features in Android Studio 2.0 Instant Run: Faster Build & Deploy 逆天吗?你还在羡慕iOS的playground吗?Andr