依名稱或 MetadataId 擷取中繼資料
發行︰ 2017年1月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
您的應用程式可藉由查詢中繼資料調整組態變更。 如果您知道中繼資料項目的主要屬性之一,可以使用 Web API 擷取中繼資料定義。
本主題內容
依名稱擷取中繼資料項目
依 MetadataId 擷取中繼資料項目
依名稱擷取中繼資料項目
注意
此功能已在 Dynamics 365 (Online 和內部部署) 的 2016 年 12 月更新 新增。
所有可擷取的中繼資料項目都有 MetadataId 主索引鍵,可用來擷取個別項目。 這些類型的中繼資料有定義的其他索引鍵,您可以依名稱擷取它們。
依名稱擷取項目通常較為簡單,因為您的程式碼中可能已有一些中繼資料項目名稱的參考。 下表列出依名稱擷取中繼資料項目的其他索引鍵屬性
中繼資料項目 |
其他索引鍵 |
範例 |
---|---|---|
實體 |
LogicalName |
GET /api/data/v8.2/EntityDefinitions(LogicalName='account') |
屬性 |
LogicalName |
GET /api/data/v8.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='emailaddress1') |
關聯 |
SchemaName |
GET /api/data/v8.2/RelationshipDefinitions(SchemaName='Account_Tasks') |
全域選項組 |
名稱 |
GET /api/data/v8.2/GlobalOptionSetDefinitions(Name='metric_goaltype') |
範例:依名稱擷取中繼資料項目
一般想要擷取的中繼資料項目是針對特定屬性設定的選項。 下列範例顯示如何擷取 PicklistAttributeMetadata EntityType 的 OptionSet 和 GlobalOptionSet 屬性。
注意
展開 PicklistAttributeMetadata EntityType 的 OptionSet 和 GlobalOptionSet 單一值導覽屬性,可讓您取得選項定義,了解屬性設定為使用全域選項組,或實體內的「本機」選項組。 如果是「本機」選項組,GlobalOptionSet 屬性將會是 null,如下所示。
如果屬性使用全域選項組,GlobalOptionSet 屬性會包含定義的選項,且 OptionSet 屬性會是 null。
要求
GET cc_WebAPI_ServiceURI/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='accountcategorycode')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json Content-Type: application/json; charset=utf-8
回覆
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions('account')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet,GlobalOptionSet,OptionSet(Options),GlobalOptionSet(Options))/$entity", "LogicalName": "accountcategorycode", "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad", "OptionSet@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions('account')/Attributes(118771ca-6fb9-4f60-8fd4-99b6124b63ad)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata/OptionSet(Options)/$entity", "OptionSet": { "Options": [{ "Value": 1, "Label": { "LocalizedLabels": [{ "Label": "Preferred Customer", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null }], "UserLocalizedLabel": { "Label": "Preferred Customer", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null } }, "Description": { "LocalizedLabels": [ ], "UserLocalizedLabel": null }, "Color": null, "IsManaged": true, "MetadataId": null, "HasChanged": null }, { "Value": 2, "Label": { "LocalizedLabels": [{ "Label": "Standard", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null }], "UserLocalizedLabel": { "Label": "Standard", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null } }, "Description": { "LocalizedLabels": [ ], "UserLocalizedLabel": null }, "Color": null, "IsManaged": true, "MetadataId": null, "HasChanged": null }], "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407" }, "GlobalOptionSet": null }
依 MetadataId 擷取中繼資料項目
因為 MetadataId 是中繼資料項目的主索引鍵,擷取個別項目依照用來擷取商務資料實體的相同模式。
中繼資料項目 |
範例 |
---|---|
實體 |
GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>) |
屬性 |
GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>)/Attributes(<Attribute MetadataId>) |
關聯 |
GET /api/data/v8.2/RelationshipDefinitions(<Relationship MetadataId>) |
全域選項組 |
GET /api/data/v8.2/GlobalOptionSetDefinitions(<OptionSet MetadataId>) |
範例:依 MetadataId 擷取中繼資料項目
若要獲得範例:依名稱擷取中繼資料項目中所示的相同結果,您需要執行一連串查詢作業以取得 MetadataId,藉由依實體 LogicalName 篩選,然後依屬性 LogicalName 篩選。
要求
GET cc_WebAPI_ServiceURI/EntityDefinitions?$filter=LogicalName%20eq%20'account'&$select=MetadataId HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json Content-Type: application/json; charset=utf-8
回覆
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#EntityDefinitions(MetadataId)","value":[ { "MetadataId":"70816501-edb9-4740-a16c-6a5efbc05d84" } ] }
要求
GET cc_WebAPI_ServiceURI/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes?$filter=LogicalName%20eq%20'accountcategorycode'&$select=MetadataId HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json Content-Type: application/json; charset=utf-8
回覆
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes(MetadataId)","value":[ { "@odata.type": "#Microsoft.Dynamics.CRM.PicklistAttributeMetadata", "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad" } ] }
要求
GET cc_WebAPI_ServiceURI/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes(118771ca-6fb9-4f60-8fd4-99b6124b63ad)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json Content-Type: application/json; charset=utf-8
回覆
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet,GlobalOptionSet,OptionSet(Options),GlobalOptionSet(Options))/$entity", "LogicalName": "accountcategorycode", "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad", "OptionSet@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes(118771ca-6fb9-4f60-8fd4-99b6124b63ad)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata/OptionSet(Options)/$entity", "OptionSet": { "Options": [{ "Value": 1, "Label": { "LocalizedLabels": [{ "Label": "Preferred Customer", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null }], "UserLocalizedLabel": { "Label": "Preferred Customer", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null } }, "Description": { "LocalizedLabels": [ ], "UserLocalizedLabel": null }, "Color": null, "IsManaged": true, "MetadataId": null, "HasChanged": null }, { "Value": 2, "Label": { "LocalizedLabels": [{ "Label": "Standard", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null }], "UserLocalizedLabel": { "Label": "Standard", "LanguageCode": 1033, "IsManaged": true, "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd", "HasChanged": null } }, "Description": { "LocalizedLabels": [ ], "UserLocalizedLabel": null }, "Color": null, "IsManaged": true, "MetadataId": null, "HasChanged": null }], "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407" }, "GlobalOptionSet": null }
另請參閱
使用 Web API 搭配 Dynamics 365 中繼資料
使用 Web API 查詢中繼資料
使用 Web API 建立和更新實體定義
使用 Web API 建立和更新實體關聯
Microsoft Dynamics 365
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權