如何允许CRM插件处理多个事件消息

时间:2015-05-11 06:51:36

标签: dynamics-crm-2011 dynamics-crm-2013 dynamics-crm-online

我需要创建一个插件来启动机会实体的创建,更新和删除事件。

我可以在一个插件中执行这些操作吗?如果是的话,我该怎么办呢?

2 个答案:

答案 0 :(得分:3)

您的插件必须实现$('button').on('click', function(){ $('img').parents('div').prevAll().wrapAll('<div class="p-tags"></div>'); $('img').parents('div').nextAll().wrapAll('<div class="p-tags"></div>'); }); 接口,该接口只有一个方法可以实现,Microsoft.Xrm.Sdk.IPlugin。在Execute方法中,您需要检查IPluginExecutionContext的Execute属性,并检查触发插件的事件类型。您还需要通过插件注册工具为每种消息类型(创建/更新/删除)注册插件。

以下是我要与MessageName进行比较的个人OOB消息类型列表:

MessageName

答案 1 :(得分:2)

是的,您可以使用相同的插件在创建,更新和删除

上执行它

按如下方式编写插件..

    public void Execute(IServiceProvider serviceProvider)
    {
          IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
           IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
           IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

           if (context.MessageName == "Create") 
           {
             //write the logic what you want this plugin to do on Create
           }
           if (context.MessageName == "Update") 
           {
            //write the logic what you want this plugin to do on Update
           }
           if (context.MessageName == "Delete") 
           {
            //write the logic what you want this plugin to do on Delete
           }  
}
  

使用插件注册在Oppertunity实体的创建,更新,删除上注册您的插件   工具

它应该有用