使用 OData 端點查詢 Microsoft Dynamics CRM 2015 資料
發佈日期: 2016年11月
適用對象: Dynamics CRM 2015
若要使用 OData 端點尋找和擷取資料,請使用 URI。 所有動作需要使用 服務根 URI啟動。 在 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 中,服務根 URI 在以下範例中。
[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc
備註
組織根 URL 都必須包含組織名稱。 參照服務根使用 getClientUrl 內容物件的函數。 如果 Web 資源會在表單中託管,您可以參照 Xrm.Page.context 來呼叫 getClientUrl。 否則,您必須包含 ClientGlobalContext.js.aspx 頁面的參照,您才能使用 GetGlobalContext 函數 取得內容物件。
使用服務根 URI 您可以使用資源路徑識別特定資源,並進一步使用系統查詢選項改善您的查詢。
本主題內容
存取 Microsoft Dynamics CRM 實體資料
紀錄回傳限制數目
實體屬性
Microsoft Dynamics CRM 複雜類型
EntityReference
OptionSetValue
金額
BooleanManagedProperty
相關實體
存取 Microsoft Dynamics CRM 實體資料
每個 Microsoft Dynamics 365 實體會用一種概念式的結構定義語言 (CSDL) 呈現為集合,使用 <EntitySet> 元素。 每個集合的名稱依照 [實體的資料結構名稱] + Set 命名慣例。 此用於 URL 的名稱,存取實體記錄的集合。 在您檢視服務根 URI時,會列出可使用的集合清單。 若要建立查詢,您附加準則新增至資源路徑。
例如,您可以在瀏覽器中檢視 ATOM 客戶實體記錄 (稱為「選項」),使用下列範例中的路徑。
[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet
在檢視客戶記錄清單之後,就可以查看每個方式可個別參照使用 URL 下列範例的語法。
[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
備註
若要檢視 Internet Explorer 資料,必須先確定 Internet Explorer 未啟用格式 RSS 摘要。 在 [網際網路選項] 的 [內容] 索引標籤中。 選取 [摘要與網頁快訊] 群組中的 [設定]。 然後,按一下清除 [開啟摘要讀取檢視表] 選項。 關閉並重新開啟 Internet Explorer。
紀錄回傳限制數目
每次您在擷取記錄時,查詢中只有前五十筆紀錄會回傳。 如果超過記錄超過 50 筆,查詢結果尾端的 XML 或 JSON**__next** 屬性中會有 <link rel="next" href="<url to next set of records>" > 節點。 您可以在該節點或屬性使用 URL 直繼續下一組紀錄。 URL 包含提供的分業範圍資訊的 $skiptoken 參數。
若要擷取其他記錄,必須建立偵測此節點或屬性的顯示方式及使用提供的 URL 擷取的下一組記錄。 如需詳細資訊,請參閱:範例:使用 OData 端點和 JavaScript 擷取多筆記錄
實體屬性
每個概念結構定義語言 (CSDL) <EntitySet> 參照一個 <EntityType> 元素,描述了實體的屬性和關聯。 在 <EntityType> 元素中 <Property> 元素 對應 Microsoft Dynamics 365 實體屬性。 每個屬性指派一個資料類型,對應到其中一個主要的 實體資料模型 (EDM) 資料類型或是 <ComplexType>,尤其針對 Microsoft Dynamics 365 定義。 下表列出資料類型。
OData 類型 |
Microsoft Dynamics 365 資料類型 |
---|---|
Edm.Boolean |
Boolean |
Edm.DateTime |
DateTime |
Edm.Decimal |
Decimal |
Edm.Double |
Double |
Edm.Guid |
UniqueIdentifier |
Edm.Int32 |
Integer |
Edm.Int64 |
BigInt |
Edm.String |
String |
Microsoft.Crm.Sdk.Data.Services.EntityReference |
EntityReference |
Microsoft.Crm.Sdk.Data.Services.OptionSetValue |
OptionSetValue |
Microsoft.Crm.Sdk.Data.Services.金額 |
|
Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty |
Microsoft Dynamics CRM 複雜類型
Microsoft Dynamics 365 使用的部分資料類型無法使用簡單 EDM 資料類型。
備註
若要將 Microsoft Dynamics 365 複雜類型的值設定為 null,請將複雜類型的每一個屬性設為 null。 如需詳細資訊,請參閱將複雜類型設定為 null。
EntityReference
Microsoft.Crm.Sdk.Data.Services.EntityReference 類型表示查詢。 它會對應 EntityReference。下表會列出其屬性。
名稱 |
類型 |
描述 |
---|---|---|
Id |
GUID |
在查詢中相關聯記錄的唯一識別碼。 |
LogicalName |
String |
實體的名稱。 |
Name |
String |
在查詢建立關聯記錄的主要屬性值。 |
以下範例為 ATOM XML EntityReference:
<d:PrimaryContactId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
<d:Id m:type="Edm.Guid">76713858-5e81-df11-afdb-00155dba380a</d:Id>
<d:LogicalName>contact</d:LogicalName>
<d:Name>Cat Francis (sample)</d:Name>
</d:PrimaryContactId>
以下範例為 JSON EntityReference:
"PrimaryContactId" :{
"__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },
"Id": "78713858-5e81-df11-afdb-00155dba380a",
"LogicalName": "contact",
"Name": "Cathan Cook (sample)"}
OptionSetValue
Microsoft.Crm.Sdk.Data.Services.OptionSetValue 類型代表 picklist 屬性。 資料對應 OptionSetValue。 下表列出屬性
名稱 |
類型 |
描述 |
---|---|---|
Value |
Number |
OptionSet 屬性中選取的值。 |
以下範例為 ATOMXMLOptionSetValue。
<d:PreferredContactMethodCode m:type="Microsoft.Crm.Sdk.Data.Services.OptionSetValue">
<d:Value m:type="Edm.Int32">1</d:Value>
</d:PreferredContactMethodCode>
以下範例為 JSON OptionSetValue:
"PreferredContactMethodCode" :{
"__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.OptionSetValue" },
"Value": 1}
金額
Microsoft.Crm.Sdk.Data.Services.Money 類型代表金額屬性。 它會對應 Money 下表會列出其屬性。
名稱 |
類型 |
描述 |
---|---|---|
Value |
Number |
金額。 |
以下範例為 ATOMXMLMoney。
<d:CreditLimit m:type="Microsoft.Crm.Sdk.Data.Services.Money">
<d:Value m:type="Edm.Decimal">500.0000</d:Value>
</d:CreditLimit>
以下範例為 JSON Money:
"CreditLimit" :{
"__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },
"Value": 500.0000}
BooleanManagedProperty
某些組織擁有的實體擁有可以包含在解決方案中的紀錄,例如 WebResource。 受管理的屬性包括 IsCustomizable, IsHidden、以及 CanBeDeleted。 它對應這些 Boolean 受管理屬性控制解決方案元件 BooleanManagedProperty 的行為。 如需詳細資訊,請參閱使用受管理的屬性。 下表列出 BooleanManagedProperty。
名稱 |
類型 |
描述 |
---|---|---|
Value |
Boolean |
表示受管理的屬性是否有效。 |
CanBeChanged |
Boolean |
表示受管理屬性的值是否可以變更。 |
ManagedPropertyLogicalName |
String |
指定受管理屬性的名稱。 這是唯讀屬性。 |
以下範例為 ATOMXMLBooleanManagedProperty。
<d:IsCustomizable m:type="Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty">
<d:Value m:type="Edm.Boolean">true</d:Value>
<d:CanBeChanged m:type="Edm.Boolean">true</d:CanBeChanged>
<d:ManagedPropertyLogicalName>iscustomizableanddeletable</d:ManagedPropertyLogicalName>
</d:IsCustomizable>
以下範例為 JSON BooleanManagedProperty:
"IsCustomizable" :{
"__metadata": { "type": "Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty" },
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizableanddeletable",
"Value": true}
相關實體
概念結構定義語言 (CSDL) <NavigationProperty> 元素 內含所有一對多和多對多關聯實體。 若關聯是自我參考關聯,則會有兩個此關聯的 <NavigationProperty> 元素。 關聯的名稱使用首碼 Referenced 而 Referencing 用於使角色有指定關聯內的紀錄。 如需詳細資訊,請參閱實體關聯的類型。
當您想要建立查詢擷取相關紀錄時,請使用 <NavigationProperty>。 在下列範例中,若要擷取特定商機的清單,而特定帳戶又是客戶的話,請使用特定客戶中的 opportunity_customer_accounts 實體關聯記錄:
/AccountSet(guid'[GUID value]')/opportunity_customer_accounts
如果您只需要 URL 位址來關聯紀錄,您可以使用以下範例中的 $links 查詢選項。
/AccountSet(guid'[GUID value]')/$links/opportunity_customer_accounts
這會僅會為每筆相關紀錄傳回的 URL 至資料。 在瀏覽器中檢視的結果,會類似以下範例。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<links xmlns="https://schemas.microsoft.com/ado/2007/08/dataservices">
<uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'a6713858-5e81-df11-afdb-00155dba380a')</uri>
<uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'1224342F-D024-4B47-A3F5-FB22D236E655')</uri>
<uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'7AF675A8-4FBE-42E7-8279-C32605D2B49B')</uri>
<uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'2DD9BA88-2A37-4F53-8946-68ABBDC73FC1')</uri>
</links>
當您擷取紀錄時,如果要包含相關記錄的資料,請使用 $expand 系統查詢選項。
另請參閱
使用 OData 端點搭配 Web 資源
使用 OData 端點的 OData 系統查詢選項
使用 OData 端點執行基礎資料作業
使用 OData 端點執行其他資料作業
使用 OData 端點搭配 AJAX 和 JScript Web 資源
範例:使用 OData 端點和 JavaScript 及 jQuery,建立、擷取、更新及刪除
範例:使用 OData 端點和 JavaScript 建立、擷取、更新及刪除
範例:OData 端點 JQuery 連絡人編輯器
開放資料通訊協定 (OData)
技術文章:使用選項組選項與 REST 端點 - JScript
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權