Consultar dados do Microsoft Dynamics CRM 2015 usando o ponto de extremidade OData

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Para localizar e recuperar dados com o ponto de extremidade OData, manipule o URI. Todas as ações exigem que você comece com o URI de raiz de serviço. No Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015, a raiz de serviço do URI está no exemplo a seguir.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc

Observação

A URL raiz da organização deve incluir o nome da organização. Consulte a raiz de serviço com a função getClientUrl no objeto de contexto. Se for um recurso da Web estiver hospedado em um formulário, você pode consultar o Xrm.Page.context para chamar o getClientUrl. Caso contrário, você precisa incluir uma referência à página ClientGlobalContext.js.aspx de modo que possa usar Função GetGlobalContext para obter o objeto de contexto.

Na URI raiz de serviço, você identifica recursos específicos usando um caminho de recurso e refina ainda mais a sua consulta usando opções de pesquisa do sistema.

Neste tópico

Acessando dados de entidade do Microsoft Dynamics CRM

Limitações no número de registros retornados

Propriedades de entidade

Tipos complexos do Microsoft Dynamics CRM

  • EntityReference

  • OptionSetValue

  • Dinheiro

  • BooleanManagedProperty

Entidades relacionadas

Acessando dados de entidade do Microsoft Dynamics CRM

Cada entidade do Microsoft Dynamics 365 é representada na linguagem de definição do esquema conceitual (CSDL) como um conjunto usando o elemento <EntitySet>. O nome da cada coleção acompanha a convenção de nomenclatura de [Nome de Esquema da Entidade]+ Set. Esse nome será usado na URL para acessar um conjunto de registros de entidade. Uma lista de todos os conjuntos disponíveis aparece ao exibir o URI raiz de serviço. Para criar uma consulta anexe seu critério ao caminho de recursos.

Por exemplo, em seu navegador você pode exibir registros da entidade de conta ATOM (chamados “entradas") usando o caminho no exemplo a seguir.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet

Depois de exibir a lista de registros de conta, poderá ver como cada um deles pode ser consultado individual usando a sintaxe da URL no exemplo a seguir.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

Observação

Para exibir os dados no Internet Explorer, primeiro é necessário garantir que o Internet Explorer não esteja habilitado para formatar feeds RSS. Na guia Conteúdo de Opções da Internet. selecione Configurações no grupo Feeds e Web Slices . Clique para desmarcar a opção Ativar a exibição de feeds de leitura. Feche e reabra o Internet Explorer.

<<<<<<< HEAD

=======

fe691d894f0f328d7ef70a2b278a480999857a62

Limitações no número de registros retornados

Sempre que você recupera registros, somente os 50 principais registros na sua consulta serão retornados. Se houver mais de 50 registros, haverá um nó <link rel="next" href="<url to next set of records>" > em XML ou uma propriedade JSON**__next** no final do conjunto de resultados. Você pode usar o valor da URL no nó ou na propriedade para continuar com o próximo conjunto de registros. A URL contém um parâmetro $skiptoken que fornece informações sobre o limite de paginação.

Para recuperar registros adicionais, crie um método que detecta a existência desta propriedade ou nó e use a URL fornecida para recuperar o próximo conjunto de registros. Para obter mais informações, consulte: Exemplo: Recuperar vários registros usando o ponto de extremidade OData a JavaScript,

Propriedades de entidade

Cada linguagem de definição do esquema conceitual (CSDL) <EntitySet> refere-se a um elemento <EntityType> que descreve as propriedades e os relacionamentos de uma entidade. Nos elementos do <EntityType>, os elementos <Property> correspondem aos atributos de entidade do Microsoft Dynamics 365. Cada propriedade será atribuída com um tipo de dados correspondente a um dos tipos de dados do EDM (Modelo de Dados de Entidade) primitivos ou um <ComplexType> definido especificamente para o Microsoft Dynamics 365. A tabela a seguir lista os tipos de dados.

Tipo OData

Tipo de dados do 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
EntityName

Microsoft.Crm.Sdk.Data.Services.EntityReference

EntityReference
CustomerOwner

Microsoft.Crm.Sdk.Data.Services.OptionSetValue

OptionSetValue
State
Status

Microsoft.Crm.Sdk.Data.Services.Dinheiro

Money

Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty

BooleanManagedProperty

Tipos complexos do Microsoft Dynamics CRM

Determinados tipos de dados usados pelo Microsoft Dynamics 365 não podem usar os tipos de dados EDM simples.

Observação

Para definir valores de tipo complexo do Microsoft Dynamics 365 como nulos, defina cada propriedade do tipo complexo como nula. Para obter mais informações, consulte Definindo tipos complexos como null.

<<<<<<< HEAD

=======

fe691d894f0f328d7ef70a2b278a480999857a62

EntityReference

O tipo Microsoft.Crm.Sdk.Data.Services.EntityReference representa uma pesquisa. Corresponde ao EntityReference. A tabela a seguir lista as propriedades.

Nome

Tipo

Descrição

Id

GUID

A ID exclusiva para o registro associado na pesquisa.

LogicalName

String

O nome da entidade.

Name

String

O valor do atributo primário do registro associado na pesquisa.

O exemplo a seguir é um 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>

O exemplo a seguir é um JSON EntityReference:

"PrimaryContactId" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },
    "Id": "78713858-5e81-df11-afdb-00155dba380a",
    "LogicalName": "contact",
    "Name": "Cathan Cook (sample)"}

OptionSetValue

O tipo Microsoft.Crm.Sdk.Data.Services.OptionSetValue representa um atributo de lista de seleção. Corresponde ao OptionSetValue. A tabela a seguir lista as propriedades.

Nome

Tipo

Descrição

Value

Number

O valor selecionado do atributo OptionSet.

O exemplo a seguir é um ATOMXMLOptionSetValue.

<d:PreferredContactMethodCode m:type="Microsoft.Crm.Sdk.Data.Services.OptionSetValue">
   <d:Value m:type="Edm.Int32">1</d:Value>
</d:PreferredContactMethodCode>

O exemplo a seguir é um JSON OptionSetValue:

"PreferredContactMethodCode" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.OptionSetValue" },
    "Value": 1}

Dinheiro

O tipo Microsoft.Crm.Sdk.Data.Services.Money representa um atributo Money. Corresponde ao Money. A tabela a seguir lista as propriedades.

Nome

Tipo

Descrição

Value

Number

O valor da quantia.

O exemplo a seguir é um ATOMXMLMoney.

<d:CreditLimit m:type="Microsoft.Crm.Sdk.Data.Services.Money">
  <d:Value m:type="Edm.Decimal">500.0000</d:Value> 
</d:CreditLimit>

O exemplo a seguir é um JSON Money:

"CreditLimit" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },
    "Value": 500.0000}

BooleanManagedProperty

Certas entidades da organização têm registros que podem ser incluídos em uma solução, por exemplo, WebResource. Exemplos de propriedades gerenciadas incluem IsCustomizable, IsHidden e CanBeDeleted. Corresponde ao BooleanManagedProperty. Essas propriedades Boolean controlam o comportamento dos componentes de solução gerenciada. Para obter mais informações, consulte Usar propriedades gerenciadas. A tabela a seguir lista o BooleanManagedProperty.

Nome

Tipo

Descrição

Value

Boolean

Indica se a propriedade gerenciada está em vigor.

CanBeChanged

Boolean

Indica se o valor da propriedade gerenciada pode ser alterado.

ManagedPropertyLogicalName

String

Especifica o nome da propriedade gerenciada.

Essa propriedade é somente leitura.

O exemplo a seguir é um 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>

O exemplo a seguir é um JSON BooleanManagedProperty:

"IsCustomizable" :{
    "__metadata": { "type": "Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty" },
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "iscustomizableanddeletable",
    "Value": true}

Entidades relacionadas

A linguagem de definição de esquema conceitual (CSDL) elemento <NavigationProperty> inclui todos os relacionamentos 1:N e N:N para a entidade. Se o relacionamento representa um relacionamento autorreferencial, há dois elementos do <NavigationProperty> para este relacionamento. O nome do relacionamento usa o prefixo Referenced e Referencing para diferenciar a função que um registro específico tem no relacionamento. Para obter mais informações, consulte Tipos de relacionamentos de entidade.

Use <NavigationProperty> quando quiser criar uma consulta para recuperar registros relacionados. No exemplo a seguir, para recuperar uma lista de oportunidades onde uma conta específica é o cliente, use o relacionamento de entidade opportunity_customer_accounts no contexto de uma conta específica:

/AccountSet(guid'[GUID value]')/opportunity_customer_accounts

Se você precisar apenas dos endereços da URL relativos aos registros relacionados, poderá usar a opção de consulta $links mostrada no exemplo a seguir.

/AccountSet(guid'[GUID value]')/$links/opportunity_customer_accounts

Isso retornará somente as URLs para os dados de cada registro relacionado. Os resultados quando exibidos no navegador serão semelhantes ao exemplo a seguir.

<?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>

Se quiser incluir dados de registros relacionados ao recuperar um registro, use a opção de consulta do sistema $expand.

Confira Também

Usar o ponto de extremidade do OData com os recursos da Web
Opções de consulta do sistema OData usando o ponto de extremidade do OData
Executar operações de dados básicas usando o ponto de extremidade OData
Executar operações de dados adicionais usando o ponto de extremidade OData
Usar o ponto de extremidade do OData com os recursos da Web JScript e Ajax
Exemplo: Criar, recuperar, atualizar e excluir usando o ponto de extremidade OData com o JavaScript e jQuery
Exemplo: Criar, recuperar, atualizar e excluir usando o ponto de extremidade OData com JavaScript
Amostra: Editor de contato jQuery do ponto de extremidade OData
Protocolo Open Data (OData)
Artigo técnico: Using Option Set Options with the REST Endpoint - JScript

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais