Dynamics CRM 2011 插件:在完成旧的 Phone 调用后创建新的 Phone 调用

Dynamics CRM 2011 Plugin : Create New Phone Call After Complete An Old Phone Call

我想创建一个新插件以在最后一个 phone 调用状态即将完成时创建新的 phone 调用。

我正在编写下面的代码,但它创建了重复键异常...

if (entity.Attributes.ContainsKey("statuscode") &&
   ((OptionSetValue)entity.Attributes["statuscode"]).Value == 2)
    {
        if (preTarget != null)
        {
            try
            {

                 var newCall = new Entity("phonecall");

                 newCall.Attributes.Add("to", preTarget.Attributes["to"]); 

                 newCall.Attributes.Add("from", preTarget.Attributes["from"]);

                 newCall.Attributes.Add("subject", preTarget.Attributes["subject"]);

                 newCall.Attributes.Add("ownerid", preTarget.Attributes["ownerid"]);

                 organizationService.Create(newCall);

        }
        catch (Exception exception)
        {

           throw new InvalidPlugiExecutionException(exception.Message, exception);
        }
    }
}

您将不得不更改进出字段的方法。尝试对往返字段使用以下代码:

if (preTarget.Contains("to"))
{
Entity to1 = new Entity("activityparty");
to1["partyid"] = preTarget.getAttributeValue<EntityCollection>("to").Entities[0]["partyid"];

newCall["to"] = new Entity[] { to1 };
}