Recuperar metadatos por nombre o identificador de metadatos
Publicado: enero de 2017
Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Los aplicaciones pueden adaptarse a los cambios de configuración consultando los metadatos. Cuando conoce una de las propiedades clave de un elemento de metadatos, puede recuperar definiciones de metadatos mediante la API web.
En este tema
Recuperar elementos de metadatos por nombre
Recuperar elementos de metadatos por identificador de metadatos
Recuperar elementos de metadatos por nombre
Nota
Esta funcionalidad se agregó con Actualización de diciembre de 2016 para Dynamics 365 (online y local).
Todos los elementos de metadatos recuperables tienen una clave principal MetadataId que se puede usar para recuperar elementos individuales. Para los tipos de metadatos que tienen una clave alternativa definida, puede recuperarlos por nombre.
Recuperar elementos por nombre normalmente es más fácil porque probablemente tiene ya cierta referencia al nombre del elemento de metadatos en su código. La siguiente tabla enumera las propiedades de clave alternativa para recuperar elementos de metadatos por nombre
Elemento de metadatos |
Clave alternativa |
Ejemplo |
---|---|---|
Entidad |
LogicalName |
GET /api/data/v8.2/EntityDefinitions(LogicalName='account') |
Atributo |
LogicalName |
GET /api/data/v8.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='emailaddress1') |
Relación |
SchemaName |
GET /api/data/v8.2/RelationshipDefinitions(SchemaName='Account_Tasks') |
Conjunto de opciones globales |
Nombre |
GET /api/data/v8.2/GlobalOptionSetDefinitions(Name='metric_goaltype') |
Ejemplo: Recuperar elementos de metadatos por nombre
Un elemento común de metadatos que las personas desean recuperar son las opciones configuradas para un atributo determinado. El siguiente ejemplo muestra cómo recuperar las propiedades de OptionSet y GlobalOptionSet de un PicklistAttributeMetadata EntityType.
Nota
Expandir las propiedades de navegación de un solo valor OptionSet y GlobalOptionSetPicklistAttributeMetadata EntityType le permite obtener la definición de opción si el atributo está configurado para usar conjuntos de opciones globales o el conjunto de opciones “local” en la entidad. Si es un conjunto de opciones “local”, la propiedad GlobalOptionSet será nula como se muestra a continuación.
Si el atributo usó un conjunto de opciones global, la propiedad GlobalOptionSet contendría las opciones definidas y la propiedad OptionSet sería nula.
Solicitud
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
Respuesta
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 }
Recuperar elementos de metadatos por identificador de metadatos
Puesto que el MetadataId es la clave principal de los elementos de metadatos, para recuperar elementos individuales se sigue el mismo patrón usado para recuperar entidades de datos de negocio.
Elemento de metadatos |
Ejemplo |
---|---|
Entidad |
GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>) |
Atributo |
GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>)/Attributes(<Attribute MetadataId>) |
Relación |
GET /api/data/v8.2/RelationshipDefinitions(<Relationship MetadataId>) |
Conjunto de opciones globales |
GET /api/data/v8.2/GlobalOptionSetDefinitions(<OptionSet MetadataId>) |
Ejemplo: Recuperar elementos de metadatos por identificador de metadatos
Para lograr el mismo resultado que se muestra en Ejemplo: Recuperar elementos de metadatos por nombre, deberá realizar una serie de operaciones de consulta para obtener MetadataId filtrando por la entidad LogicalName y después por el atributo LogicalName.
Solicitud
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
Respuesta
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" } ] }
Solicitud
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
Respuesta
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" } ] }
Solicitud
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
Respuesta
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 }
Ver también
Usar la API web con metadatos de Dynamics 365
Consulta de metadatos utilizando la API web
Crear y actualizar definiciones de entidad mediante la API web
Crear y actualizar relaciones de entidad mediante la API web
Microsoft Dynamics 365
© 2017 Microsoft. Todos los derechos reservados. Copyright