按名称或 MetadataId 检索元数据
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
您的应用程序可通过查询元数据适应配置更改。 当您知道元数据项目的其中一个重要属性时,您可以使用 Web API 检索元数据定义。
本主题内容
按名称检索元数据项
按 MetadataId 检索元数据项
按名称检索元数据项
备注
此功能是使用 适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 添加的。
所有可检索元数据项都有一个可用于检索单个项的 MetadataId 主键。 对于为其定义了备用键的元数据类型,可以按名称检索这些元数据类型。
按名称检索项通常更轻松,因为您的代码中可能有了对元数据项名称的某个引用。 下表列出了用于按名称检索元数据项的备用键属性
元数据项 |
备用键 |
示例 |
---|---|---|
实体 |
LogicalName |
GET /api/data/v8.2/EntityDefinitions(LogicalName='account') |
属性 |
LogicalName |
GET /api/data/v8.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='emailaddress1') |
关系 |
架构名称 |
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 检索元数据项
要存档 示例:按名称检索元数据项 中显示的相同结果,您将需要执行一系列查询操作,才能通过按实体 LogicalName,然后按属性 LogicalName 筛选来获取 MetadataId。
请求
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 }
另请参阅
使用具有 Dynamics 365 元数据的 Web API
使用 Web API 查询元数据
使用 Web API 创建更新实体定义
使用 Web API 创建和更新实体关系
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权