2017-06-19 3 views
1

我々はそうのようなウェブAPIエンドポイントを照会することができます応答がregardingobjectidフィールドが含まれている場合RegardingObjectIDからエンティティをクエリする方法は?

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 

、どのように我々はそのレコードに対して同様の呼び出しを発行していますか?

{ 
"@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" 
    }, 
] 
} 

regardingobjectid照会するODATA方法は、次のような、あります:私たちは、関連レコードにフィルタ処理する場合、これは動作するはず

GET [Organization URI]/api/data/v8.2/Entity?regardingobjectid eq 'dfdc331f-1cff-4bce-acd7-4815b2e87a30' 

答えて

2

GET [Organization URI]/api/data/v8.2/accounts?$select=name&$filter=_regardingobjectid_value eq guid 

:関連エンティティ(単一のレコード)から、expandを使用する単一引用符

なしGUIDが列の値を照会します。たとえば - Accountレコードのプライマリ連絡先の詳細を取得するには:

?$select=name&$expand=primarycontactid($select=fullname,jobtitle,annualincome) 

私は建物のクエリにCRM REST Builderをお勧めします。

参考:https://community.dynamics.com/crm/b/mscrmcustomization/archive/2016/10/18/ms-crm-2016-web-api-operations-retrieve-single-or-multiple-records

+0

私はおそらく私が必要ごめんなさい私の質問を更新するリンクされたレコードを照会することが可能かどうかを知りたいですか?たとえば、オブジェクトオブジェクトが機会レコードを参照している場合、その機会レコードを照会できるようにしたいと考えています。 –

+1

はい使用できます。 –

+0

https://community.dynamics.com/crm/b/joegilldynamicscrm/archive/2016/03/23/web-api-querying-with-expand –

1

別のアプローチは、ODATA注釈を含めるために、ヘッダーに注意してください*に関するオブジェクト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["[email protected]ue"]; 
      var _regardingobjectid_value_lookuplogicalname = result["[email protected]e"]; 
     } else { 
      Xrm.Utility.alertDialog(this.statusText); 
     } 
    } 
}; 
req.send(); 

を取得することです。この返す必要があり

{ 
"@odata.context": "http://xxxx/api/data/v8.1/$metadata#emails(_regardingobjectid_value)/$entity", 
"@odata.etag": "W/\"633069\"", 
"[email protected]tionproperty": "regardingobjectid_account_email", 
"[email protected]e": "account", 
"[email protected]ue": "Coho Winery (sample)", 
"_regardingobjectid_value": "b3cc84f2-be0d-e711-8104-00155d6fd705", 
"activityid": "b8345099-6074-e711-810f-00155d6fd705" 
} 

[email protected]e私たちにエンティティ名を与え、 _regardingobjectid_valueは、私たちがに関する記録を照会する必要がIDを与える:

/api/data/v8.1/accounts(b3cc84f2-be0d-e711-8104-00155d6fd705) 
関連する問題