发送电子邮件时发起的CRM插件

时间:2015-12-28 20:27:23

标签: email plugins crm

我正在尝试创建在发送电子邮件时触发的插件。

首先,当状态更改为已完成时,我尝试使用SetState和SetStateDynamicEntity。但是,当发送电子邮件时,插件永远不会被触发。

所以我尝试使用OnExecute方法使用“发送”消息。是否可以检索发送的电子邮件实体信息?我很难过尝试归还实体。下面的代码一直返回“给定的密钥不存在于字典中”错误消息。

我尝试使用“Entity”或“EntityReference”,但没有运气。

我知道发送消息会返回EmailId。是从这个EmailId返回实体的唯一方法吗?

public override void OnExecute(IServiceProvider serviceProvider,IPluginExecutionContext context)         {             var trace =(ITracingService)serviceProvider.GetService(typeof(ITracingService));

        if (!context.InputParameters.Contains("EmailId"))
        {
            return;               
        }

        var emailId = (Guid)context.InputParameters["EmailId"];

        Entity emailEntity = (Entity)context.InputParameters["Target"];

1 个答案:

答案 0 :(得分:2)

所以你提到的方式是获取电子邮件记录的唯一正确方法。总计:

  1. 从上下文中检索电子邮件的标识符。
  2. 使用crm端点检索电子邮件记录。
  3. 以下文章包含与CRM 4.0相关的说明 - http://www.patrickverbeeten.com/Blog/2008/01/25/CRM-40-Plug-in-message-input-parameters没有看到与CRM 2011/2013/2015/2016相似的内容。