亲爱的智能开发人员,
当我想通过网络服务在Microsoft Dynamics CRM 2013中创建属于某个组织的联系人时遇到问题
client = new OrganizationServiceClient("CustomBinding_IOrganizationService");
var newContactProperties = new Dictionary<string, object> {
{ "lastname", "TestContact"},
{ "firstname", "A"},
{ "fullname", "A TestContact"}
};
/* organizationType is a CRM.CRMWebServices.OptionSetValue
* with ExtensionData null, PropertyChanged null and a valid Value
*
* orgReference is a CRM.CRMWebServices.EntityReference
* with a valid Id
*/
newContactProperties.Add("parentcustomeridtype", organizationType);
newContactProperties.Add("parentcustomerid", orgReference);
var entity = new Entity();
entity.LogicalName = "contact";
entity.Attributes = new AttributeCollection();
entity.Attributes.AddRange(newContactProperties);
client.Create(entity);
这给了我错误&#39; 如果属性parentcustomerid不为NULL,则parentcustomeridtype不能为NULL &#39;
我很困惑为什么会发生这种情况以及如何解决这个问题。如果可以,请帮助我。
谢谢你, AllWorkNoPlay
答案 0 :(得分:2)
您不需要设置&#34; parentcustomeridtype&#34;属性分开。它是一个系统字段,将由平台设置,并且由于遗留原因而存在于parentcustomerid中,当它是早期版本的Dynamics CRM中的客户类型时。
您只需在查找字段中指定EntityReference
newContactProperties.Add("parentcustomerid", new EntityReference("account", new Guid("{accountid guid}")));
此外,还不清楚你在&#34; orgReference&#34;中使用了什么类型。领域。对于联系人,有效的实体类型应为&#34; account&#34;或者&#34;联系&#34;。
答案 1 :(得分:0)
感谢您的回答,我无法以这种方式使用网络服务。
我尝试使用Early Bound访问成功:
现在我设法创建一个联系人并将其分配给一个组织(如下所示):
var contact = new Contact()
{
FirstName = "Bob",
LastName = "Dobalina",
Address1_Line1 = "123 Strasse",
Address1_City = "Berlin",
Address1_PostalCode = "32254",
Telephone1 = "425-555-5678",
EMailAddress1 = "bob.dobalina@germany.de"
};
var account = new Account()
{
Name = "Siemens Germany",
};
context.AddObject(contact);
context.AddObject(account);
context.AddLink(account, "contact_customer_accounts", contact);
context.SaveChanges();
}