我正在尝试创建在发送电子邮件时触发的插件。
首先,当状态更改为已完成时,我尝试使用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"];
答案 0 :(得分:2)
所以你提到的方式是获取电子邮件记录的唯一正确方法。总计:
以下文章包含与CRM 4.0相关的说明 - http://www.patrickverbeeten.com/Blog/2008/01/25/CRM-40-Plug-in-message-input-parameters没有看到与CRM 2011/2013/2015/2016相似的内容。