CRM 2013 - 插件在错误的时间执行

时间:2014-07-31 14:11:36

标签: plugins dynamics-crm-2013

我已经为实体联系人创建了一个插件,但是当将潜在客户设置为“Qualify”并创建新帐户并选择了联系人时,我的插件会被触发,导致出现错误消息

在我的插件中,我确实包含以下内容

if (entity.LogicalName == "contact")

我相信会阻止这种情况发生

有没有人有任何建议/建议采取措施来防止这种情况,因为将我的联系人插件切换为仅在Update上执行不是一个选项

1 个答案:

答案 0 :(得分:2)

如您所述,您收到错误The given key is does not exist in the current context。我建议你调试插件以检查哪个密钥丢失,如果情况可能,请将该代码放入if情境中。

if(!entity.Contains("keyName"))
{
     entity.AddAttibute("keyname");
} 

或者您可以检查originatingleadid是否为空。如果Messagename为Createoriginatingleadid具有值,则会从lead创建联系人。

If (context.MessageName.ToLower() == "create" 
    && entity.Contains("originatingleadid") && entity["originatingleadid"] != null)
{
    // Do Nothing
    return;
}
else
{
    // Run your plugin code
}