2013-03-20 30 views
0

我正在尝试更新帐户实体的所有关联联系人上的电话号码。以下是我使用的代码,关联联系人上的电话号码未被更新 - 客户关系管理2011在线

public class Plugin:IPlugin 
{ 
    public void Execute(IServiceProvider serviceProvider) 
    { 
     IPluginExecutionContext context = (IPluginExecutionContext) 
     serviceProvider.GetService(typeof(IPluginExecutionContext)); 

     Entity entity; 


     if (context.InputParameters.Contains("Target") && 
     context.InputParameters["Target"] is Entity) 
     { 

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

      if (entity.LogicalName != "account") { return; } 
     } 
     else 
     { 
      return; 
     } 

     try 
     { 
      string telephoneNum = string.Empty; 
      IOrganizationServiceFactory serviceFactory =(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); 
      IOrganizationService service =serviceFactory.CreateOrganizationService(context.UserId); 

      var id = (Guid)context.OutputParameters["id"]; 
      telephoneNum = entity.GetAttributeValue<string>("telephone1"); 
      UpdateContact(service, id,telephoneNum); 
     } 
     catch (FaultException<OrganizationServiceFault> ex) 
     { 
      throw new InvalidPluginExecutionException(
      "An error occurred in the plug-in.", ex); 
     } 
    } 

    private static void UpdateContact(IOrganizationService service, Guid id,string telephoneNUm) 
    { 
     using (var crm = new XrmServiceContext(service)) 
     { 

      var res = from c in crm.CreateQuery("contact") 
         where c["parentcustomerid"].Equals(id) 
         select c; 

      foreach (var c in res) 
      { 
       Entity e = (Entity)c; 
       e["telephone1"] = telephoneNUm; 
       crm.UpdateObject(e); 
      } 


      crm.SaveChanges(); 
     } 
    } 
} 

我登记上更新的插件,并且主要实体“账户”,但每当我试图挽救该帐户的形式在电话场数变化之后我看到一个弹出错误。我错过了什么吗?谢谢你们!

+1

您能指定弹出哪个错误。如果是通用错误,请激活[trace](http://exploringxrm.wordpress.com/2012/01/12/enabling-trace-in-microsoft-dynamics-crm-2011/)或使用此[工具](http ://crmdiagtool2011.codeplex.com/)获取完整的错误信息。 – 2013-03-20 18:12:40

回答

0

只是hunch..but我觉得你得到的Id错way..try用得到它:

Guid Id = context.PrimaryEntityId 

但随着佩德罗suggested..you需要看到什么是确切的错误或尝试使用附加进程来调试插件..

+0

谢谢你们!我猜想我正在合作的“CRM实例”出现了问题。当我添加我的插件到一个新的实例工作。再次感谢大家。 – Jaya 2013-03-25 17:45:37

相关问题