我正在尝试从 CRM 安装中提取信息,到目前为止,使用默认字段没有问题。但是我在检索自定义字段时遇到困难,例如联系人有一个名为 web_username 的自定义字段。
我目前的代码是
QueryExpression query = new QueryExpression();
query.EntityName = "contact";
ColumnSet cols = new ColumnSet();
cols.Attributes = new string[] { "firstname", "lastname" };
query.ColumnSet = cols;
BusinessEntityCollection beReturned = tomService.RetrieveMultiple(query);
foreach (contact _contact in beReturned.BusinessEntities)
{
DataRow dr = dt.NewRow();
dr["firstname"] = _contact.firstname;
dr["lastname"] = _contact.lastname;
dt.Rows.Add(dr);
}
如何在查询中包含自定义字段?我尝试四处搜索,但还没有成功,但我可能搜索不正确,因为我不习惯 CRM 术语。
提前干杯!
最佳答案
我已经能够解决这个问题。如果它对其他人有用,这就是我所做的。除了我已将自定义字段添加到 ColumnSet 之外,查询设置与之前一样。
cols.Attributes = new string[] { "firstname", "lastname", "new_web_username" };
然后使用 RetrieveMultipleResponse 和将 ReturnDynamicEntities 设置为 true 的 Request
RetrieveMultipleResponse retrived = new RetrieveMultipleResponse();
RetrieveMultipleRequest retrive = new RetrieveMultipleRequest();
retrive.Query = query;
retrive.ReturnDynamicEntities = true;
retrived = (RetrieveMultipleResponse)tomService.Execute(retrive);
如果我有更好的方法,请继续评论。
编辑 如果您转换为联系人,请使用我原来问题中的示例
contact myContact = (contact)myService.Retrieve(EntityName.contact.ToString(), userID, cols);
然后您可以访问对象的属性
phone = myContact.telephone1;
password = myContact.new_password;
如果您更新您在 CRM 中添加的自定义字段,您的 CRM webreference 将可用。
关于c# - 使用 Web 服务查询检索 Dynamics CRM 自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1062704/