C# 如何从RegardingObjectID查询实体?
我们可以这样查询web api端点:C# 如何从RegardingObjectID查询实体?,c#,dynamics-crm,dynamics-crm-2016,dynamics-crm-webapi,C#,Dynamics Crm,Dynamics Crm 2016,Dynamics Crm Webapi,我们可以这样查询web api端点: GET [Organization URI]/api/data/v8.2/accounts?$select=name&$top=3 HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 当响应包含regardingobjectid字段时,如何对该记录发出类似调用? { "@odata.context": "[Organization URI]/api/
GET [Organization URI]/api/data/v8.2/accounts?$select=name&$top=3 HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
当响应包含regardingobjectid字段时,如何对该记录发出类似调用?
{
"@odata.context": "[Organization URI]/api/data/v8.2/$metadata#accounts(name)",
"value": [
{
"@odata.etag": "W/\"501097\"",
"name": "Fourth Coffee (sample)",
"accountid": "89390c24-9c72-e511-80d4-00155d2a68d1",
"regardingobjectid":"dfdc331f-1cff-4bce-acd7-4815b2e87a30"
},
]
}
是否有odata方式查询regardingobjectid,例如:
GET [Organization URI]/api/data/v8.2/Entity?regardingobjectid eq 'dfdc331f-1cff-4bce-acd7-4815b2e87a30'
如果我们想使用相关记录进行筛选,那么这应该是可行的
GET [Organization URI]/api/data/v8.2/accounts?$select=name&$filter=_regardingobjectid_value eq guid
注意:不带单引号的guid
要从相关实体(单个记录)中查询列值,请使用展开
。例如-要在帐户记录中获取主要联系人详细信息,请执行以下操作:
?$select=name&$expand=primarycontactid($select=fullname,jobtitle,annualincome)
我建议您进行构建查询
Ref:另一种方法是检索关于对象id的值
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.1/emails(B8345099-6074-E711-810F-00155D6FD705)?$select=_regardingobjectid_value", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var result = JSON.parse(this.response);
var _regardingobjectid_value = result["_regardingobjectid_value"];
var _regardingobjectid_value_formatted = result["_regardingobjectid_value@OData.Community.Display.V1.FormattedValue"];
var _regardingobjectid_value_lookuplogicalname = result["_regardingobjectid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
*请注意标题包含odata注释
应返回以下内容:
{
"@odata.context": "http://xxxx/api/data/v8.1/$metadata#emails(_regardingobjectid_value)/$entity",
"@odata.etag": "W/\"633069\"",
"_regardingobjectid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "regardingobjectid_account_email",
"_regardingobjectid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
"_regardingobjectid_value@OData.Community.Display.V1.FormattedValue": "Coho Winery (sample)",
"_regardingobjectid_value": "b3cc84f2-be0d-e711-8104-00155d6fd705",
"activityid": "b8345099-6074-e711-810f-00155d6fd705"
}
\u关于对象_value@Microsoft.Dynamics.CRM.lookuplogicalname
为我们提供实体名称和
\u关于objectid\u值
为我们提供了查询相关记录所需的id:
/api/data/v8.1/accounts(b3cc84f2-be0d-e711-8104-00155d6fd705)
对不起,也许我需要更新我的问题。我想知道是否可以查询链接记录?例如,如果regardingobjectid引用了一条opportunity记录,那么我希望能够查询该opportunity记录。是,您可以使用expand