Recuperar metadados por nome ou por MetadataId

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Os aplicativos podem adaptar às alterações de metadados consultando configuração. Quando você sabe propriedades de uma de um item de metadados é possível recuperar, definições dos metadados da API.

Neste tópico

Recuperar itens de metadados por nome

Recuperar itens de metadados por MetadataId

Recuperar itens de metadados por nome

Observação

Esse recurso foi adicionado no Atualização de dezembro de 2016 para Dynamics 365 (online e local).

Todos os itens de metadados recuperáveis têm uma chave primária MetadataId que pode ser usada para recuperar itens individuais. Para os tipos de metadados que possuem uma chave alternativa definida, você pode recuperá-los por nome.

A recuperação de itens por nome é normalmente mais fácil porque provavelmente você já tem alguma referência feita ao nome do item de metadados em seu código. A tabela a seguir lista as propriedades da chave alternativa para a recuperação de itens de metadados por nome

Item de metadados

Chave alternativa

Exemplo

Entidade

LogicalName

GET /api/data/v8.2/EntityDefinitions(LogicalName='account')

Atributo

LogicalName

GET /api/data/v8.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='emailaddress1')

Relação

SchemaName

GET /api/data/v8.2/RelationshipDefinitions(SchemaName='Account_Tasks')

Conjunto de opções global

Nome

GET /api/data/v8.2/GlobalOptionSetDefinitions(Name='metric_goaltype')

Exemplo: recuperar itens de metadados por nome

Um item de metadados comum que as pessoas desejam recuperar é composto pelas opções configuradas para um determinado atributo. O exemplo a seguir mostra como recuperar as propriedades OptionSet e GlobalOptionSet de um PicklistAttributeMetadata EntityType.

Observação

A expansão das propriedades de navegação de valor único OptionSet e GlobalOptionSet de PicklistAttributeMetadata EntityType permite que você obtenha a definição de opção se o atributo será configurado para usar conjuntos de opções globais ou o conjunto de opções 'local' na entidade.. Se for um conjunto de opções 'local', a propriedade GlobalOptionSet será nula, como mostrado abaixo.

Se o atributo tiver usado um conjunto de opções global, a propriedade GlobalOptionSet conteria as opções definidas e a propriedade OptionSet seria nula.

  • Solicitação

    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
    
  • Resposta

    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 itens de metadados por MetadataId

Como MetadataId é a chave primária dos itens de metadados, a recuperação de itens individuais segue o mesmo padrão usado para recuperar as entidades de dados corporativos.

Item de metadados

Exemplo

Entidade

GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>)

Atributo

GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>)/Attributes(<Attribute MetadataId>)

Relação

GET /api/data/v8.2/RelationshipDefinitions(<Relationship MetadataId>)

Conjunto de opções global

GET /api/data/v8.2/GlobalOptionSetDefinitions(<OptionSet MetadataId>)

Exemplo: recuperar itens de metadados por MetadataId

Para obter um resultado igual ao mostrado em Exemplo: recuperar itens de metadados por nome, será necessário executar uma série de operações de consulta para obter a MetadataId por meio de filtragem pela entidade LogicalName e então pelo atributo LogicalName.

  • Solicitação

    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
    
  • Resposta

    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"
        }
      ]
    }
    
  • Solicitação

    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
    
  • Resposta

    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"
        }
        ]
    }
    
  • Solicitação

    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
    
  • Resposta

    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
    }
    

Confira Também

Use o API da Web com metadados do Dynamics 365
Consultar metadados usando a API da Web
Criar e atualizar definições de entidade usando API da Web
Criar e atualizar relacionamentos de entidade usando API da Web

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais