2012-05-01 24 views
2

我有一个HTML表单,它向使用SOAP Web服务连接到CRM的aspx页面发布信息。该页面后面的代码在CRM中创建一个实体。我在后面的代码中使用IOrganizationService。创建一个字段为optionset的新实体

代码看起来像

IOrganizationService service = (IOrganizationService)serviceProxy;      
Entity lead = new Entity("lead"); 
string fieldValue = string.Empty; 

foreach (string key in Request.Form.AllKeys) 
{ 
    if (key.Equals(SubmitKey, StringComparison.InvariantCultureIgnoreCase) == false && 
     key.Equals(CRMHostKey, StringComparison.InvariantCultureIgnoreCase) == false && 
     key.Equals(redirectErrorURLKey, StringComparison.InvariantCultureIgnoreCase) == false && 
     key.Equals(redirectSuccessURLKey, StringComparison.InvariantCultureIgnoreCase) == false) 
    { 
     if (!string.IsNullOrEmpty(Request.Form[key])) 
     { 
      fieldValue = Request.Form[key].Trim(); 
     } 
     else 
     { 
      fieldValue = string.Empty; 
     } 

     if (key.Equals("new_contacttypechoices", StringComparison.InvariantCultureIgnoreCase)) 
     { 
      lead[key] = new KeyValuePair<string, int>("Email", 100000000); 
      //OptionMetadata objOM = GetOptionMetadata("lead", "new_contacttypechoices", fieldValue, service); 
      //lead[key] = objOM; 
      //lead[key] = 100000000; //Incorrect attribute value type System.Int32 
      //lead[key] = fieldValue; //Incorrect attribute value type System.String 
     } 
     else 
     { 
      lead[key] = fieldValue; 
     } 
    } 
    newLeadID = service.Create(lead); 
} 

截图领域的enter image description here

我得到一个错误,当我尝试

lead[key] = fieldValue 

我得到一个错误,当我尝试

lead[key] = 100000000 

我得到一个错误,当我尝试

lead[key] = new KeyValuePair<string, int>("Email", 100000000); 

我得到一个错误,当我得到了OptionMetaData并将其设置为实体。有关如何使用选项集创建实体的任何想法?

感谢

+0

你会得到什么错误? – glosrob

+0

糟糕 - 我的apols,刚刚注意到内嵌评论 – glosrob

回答

3

取决于你所得到的错误,但如果铅是Microsoft.Xrm.Sdk.Entity型的,它可能是你需要或者替换现有值或添加一个新的。

if (lead.Attributes.Contains(key)) 
{ 
    lead[key] = new OptionSetValue(100000000);   
} 
else 
{ 
    lead.Attributes.Add(key, new OptionSetValue(100000000));   
} 

重读我注意到你已经把(可能是)错误放在注释中。在这种情况下,我建议的问题是,你需要指定一个值类型OptionSetValue

相关问题