使用插件

时间:2017-12-12 09:39:51

标签: c# plugins dynamics-crm dynamics-crm-365

我在为Dynamics CRM 365执行插件时遇到问题。 我有2个实体,帐户和网站,帐户实体有一个名为网站的文本字段和一个与网站实体相关的子网格。 我的任务是在帐户表单的子网格中创建一个新网站实体后创建的插件。该插件应将文本字段从新创建的网站记录复制到帐户表单中的网站文本字段。

我将网站实体的插件注册为主要实体, 代码读取帐户的guid和新创建的网站所需的文件,我的问题是我无法更新帐户中的网站字段。

我的代码:

var AccountId = entity.GetAttributeValue<EntityReference>("new_accountid");
var WebsiteDomain = entity.Attributes["new_url"].ToString();
   if (WebsiteDomain != null && WebsiteDomain != "" && AccountId != null && AccountId.Id!=null)
   {                    
      try
       {
          Entity obj = new Entity("account", new 
          Guid(AccountId.Id.ToString()));
          obj["websiteurl"] = WebsiteDomain;
          service.Update(obj);  
       }
       catch (Exception e)
       {                  
          throw;
       }
   }

到达更新语句时出错: error

1 个答案:

答案 0 :(得分:1)

我忽略了它。

var WebsiteDomain = entity.Attributes["new_url"].ToString();

在上面这一行中,您假设new_url键始终存在&amp;转换.ToString()。这很容易出错,因为密钥可能是错误的,或者可能是空的。

如果没有空检查或验证Attributes.Contains,请不要使用这样的属性键。

安全地,您至少可以使用GetAttributeValue。阅读Tips