Limitações de API Web do Microsoft Dynamics 365
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
A Microsoft Dynamics 365 API Web proporcionará paridade completa com os recursos do serviço de organização. Para o Microsoft Dynamics 365 (online e local), este tópico descreve algumas limitações.
Neste tópico
Limitações em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local)
Limitações abordadas em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local)
Limitações abordadas em Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Limitações abordadas em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016
Limitações em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local)
Esta seção fornece informações sobre limitações na Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
Algumas ações personalizadas não estão disponíveis na API Web.
Funções e ações ausentes para algumas mensagens de serviço da organização
Algumas ações personalizadas não estão disponíveis na API Web.
Se você definir uma ação personalizada que inclui um valor de retorno complexo e um valor de retorno simples, uma ação correspondente não estará disponível na API Web, mas estará disponível com o ponto de extremidade 2011 SOAP. Um valor de retorno complexo é uma EntityReference, Entity ou EntityCollection. Você pode ter qualquer combinação de valores de retorno simples ou um valor de retorno complexo.Para obter mais informações:Criar suas próprias ações
Funções e ações ausentes para algumas mensagens de serviço da organização
A tabela a seguir lista as mensagens que não têm uma função ou uma ação correspondente depois que Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local) são aplicados.
Para obter uma lista de funções e ações ausentes na versão inicial, combine esta lista com a lista em Funções e ações adicionadas em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016 e Funções e ações adicionadas em Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.
Limitações abordadas em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local)
Esta seção fornece informações sobre limitações abordadas no Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
A API Web não é habilitada para Microsoft Dynamics 365 para Outlook com Acesso Offline quando o usuário está offline
Não é possível consultar valores de data
Ao chamar ações com parâmetros de coleção de entidade e outros parâmetros, é preciso passar um parâmetro de coleção como o último parâmetro no corpo
Não é possível criar um atributo de pesquisa do cliente
Não foi possível recuperar metadados não publicados
Novas operações adicionadas
As seguintes operações foram adicionadas à API Web para Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
A API Web não é habilitada para Microsoft Dynamics 365 para Outlook com Acesso Offline quando o usuário está offline
Observação
Esse problema é abordado em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
JavaScript o código em execução em scripts de formulário, comandos de faixa ou recursos da Web em HTML não podem usar a API Web. Agora é habilitado no servidor local usado quando o usuário fica offline.
Não é possível consultar valores de data
Na verdade, esse problema não é uma limitação; é apenas um problema de sintaxe. Não use aspas simples ao especificar uma data como valor para um filtro.
Para consultar uma propriedade de dados, como a data de nascimento de um contato, a seguinte sintaxe de consulta funcionará:
/contacts?$select=fullname,birthdate&$filter=birthdate eq 1990-01-01
A seguinte sintaxe não funcionará:
/contacts?$select=fullname,birthdate&$filter=birthdate eq '1990-01-01'
Ao chamar ações com parâmetros de coleção de entidade e outros parâmetros, é preciso passar um parâmetro de coleção como o último parâmetro no corpo
Observação
Esse problema é abordado em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
As ações a seguir contêm um parâmetro de coleção de entidade, além de outros parâmetros.
Antes da Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local), quando você usa essas ações, o parâmetro que inclui a coleção de entidades deve ser passado como o parâmetro mais recente no JSON; caso contrário, o sistema retorna um erro. Por exemplo, você receberá um erro quando usar a QualifyMemberList Action e passar os valores de parâmetro da seguida maneira.
{
"ListMember": [
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "483F8080-6976-E511-9172-0024E8436263"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "4D3F8080-6976-E511-9172-0024E8436263"
}
],
"OverrideorRemove": true
}
Mas o seguinte deve ter êxito.
{
"OverrideorRemove": true,
"ListMember": [
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "483F8080-6976-E511-9172-0024E8436263"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "4D3F8080-6976-E511-9172-0024E8436263"
}
]
}
Não é possível criar um atributo de pesquisa do cliente
Observação
Esse problema é abordado em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
Não há suporte para a criação de atributo de pesquisa de cliente usando a API Web no Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.
Para criar um atributo de pesquisa de cliente com a API Web usando a Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local), consulte Criar um atributo de pesquisa de cliente.
Não foi possível recuperar metadados não publicados
Observação
Esse problema é abordado em Atualização de dezembro de 2016 para Microsoft Dynamics 365 (online) e Service Pack de dezembro de 2016 para Microsoft Dynamics 365 (local).
As mensagens de serviço da organização que recuperam metadados incluem um RetrieveAsIfPublished parâmetro que oferece a opção de retornar definições de metadados que ainda não foram confirmadas por meio de publicação. Esse recurso é útil quando você está criando um aplicativo a ser usado para editar os metadados e precisa permitir que alterações não confirmadas sejam salvas. Na Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1, todas as operações de recuperação de metadados retornam apenas metadados publicados.Para obter mais informações:Use o API da Web com metadados do Dynamics 365 e Publicar personalizações.
Limitações abordadas em Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1 adicionaram funções e ações e abordaram os seguintes problemas com API Web.:
Funções e ações adicionadas em Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Não é possível filtrar consultas com base no valor de uma propriedade de navegação de valor único
Funções e ações adicionadas em Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
A tabela a seguir lista as funções e as ações adicionadas para Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.
Não é possível filtrar consultas com base no valor de uma propriedade de navegação de valor único
Observação
Esse problema é parcialmente abordado em Atualização 1 do Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1. Agora você pode filtrar consultas na propriedade de navegação de valor único se a propriedade de navegação fizer referência ao valor de atributo principal da entidade referenciada.Para obter mais informações:Filtrar registros com base na propriedade de navegação de valor único
Se você usar a propriedade de uma propriedade de navegação de valor único como filtro em uma consulta, você verá o erro 501. Por exemplo, a consulta a seguir tenta retornar todas as contas em que o valor da propriedade firstname do contato principal é "Renee".
Solicitação
GET [Organization URI]/api/data/v8.0/accounts?$select=name&$filter=primarycontactid/firstname eq 'Renee' HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta
HTTP/1.1 501 Not Implemented Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "error": { "code": "", "message": "The query node (0) is not supported", "innererror": { "message": "The query node (0) is not supported", "type": "Microsoft.Crm.CrmHttpException", "stacktrace": <stacktrace value removed for brevity> } } }
Limitações abordadas em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016
Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM Online 2016 adicionaram funções e ações e abordaram os seguintes problemas com a API Web.
Funções e ações adicionadas em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016
Erro ao consultar relações muitos-para-muitos autorreferenciais
$select em algumas expressões $expand pode ser ignorada
Não é possível retornar propriedades de navegação de valor único a partir de uma consulta $expand se elas tiverem um valor null
As consultas FetchXML vinculadas a activitypointer podem não incluir campos vinculados
Não é possível retornar propriedades de valor null em resultados de propriedade de navegação expandida
Funções e ações adicionadas em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016
A tabela a seguir lista as funções e as ações adicionadas a Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e a Atualização 0.1 do Microsoft Dynamics CRM 2016.
Erro ao consultar relações muitos-para-muitos autorreferenciais
Observação
Esse problema é abordado em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016.
Há duas entidades de sistema com relações muitos-para-muitos autorreferenciais: connectionrole EntityType tem connectionroleassociation_association e campaign EntityType tem campaigncampaign_association. Se você tentar uma consulta que use essas propriedades de navegação de valor de coleção, é esperado que ocorra HTTP Status 400 o seguinte erro: Reflexive relationship must specify direction using ReflexiveManyToManyRelationship.
Se precisar consultar dados usando essas relações muitos para muitos, você poderá usar as entidades de interseção em vez disso. Para a propriedade de navegação de valor de coleção campaigncampaign_association, a entidade campaignitem EntityType é uma entidade de interseção especial que define as relações. Para connectionroleassociation_association, connectionroleassociation é a entidade de interseção ordinária que contém os dados que definem esta relação muito para muitos. As entidades de interseção ordinárias não estão incluídas na documentação de referência, mas estão disponíveis na API Web. Você pode acessar a entidade connectionroleassociation usando este URI: /api/data/v8.0/connectionroleassociations.Para obter mais informações:Propriedades de navegação avaliadas por coleção
$select em algumas expressões $expand pode ser ignorada
Observação
Esse problema é abordado em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016.
Ao recuperar duas propriedades de navegação, se a última propriedade de navegação não tiver $select a opção de consulta, todas as propriedades da propriedade da primeira navegação serão retornadas. Por exemplo, se você construir a consulta a seguir:
GET
[Organization URI]/api/data/v8.0/accounts(0495779B-F67F-E511-80C2-00155DB09B03)$select=name&$expand=contact_customer_accounts($select=lastname),opportunity_customer_accounts
Você está esperando a propriedade name da conta, a lastname dos contatos associados usando contact_customer_accounts e todas as propriedades das oportunidades associadas usando opportunity_customer_accounts.
Entretanto, você obterá todas as propriedades dos contatos, bem como todas as propriedades das oportunidades relacionadas. É uma prática recomendada usar sempre $select para limitar as propriedades em qualquer operação de recuperação; portanto, seguir esta prática recomendada garantirá a você obter o melhor desempenho e não recuperar mais dados do que você precisa.
Não é possível retornar propriedades de navegação de valor único a partir de uma consulta $expand se elas tiverem um valor null
Observação
Esse problema é abordado em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016.
De acordo com a especificação OData, quando você expande uma propriedade de navegação única e ela não contém um valor, a propriedade deve ser incluída com um conjunto null. O comportamento atual é o de que a propriedade não será incluída na resposta JSON. No exemplo a seguir, a propriedade primarycontactid de navegação de valor único da conta é solicitada, mas, como não há nenhum contato associado à propriedade de navegação, o valor é null.
Solicitação
GET [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)?$select=name&$expand=primarycontactid($select=fullname) HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta Esperada
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4", "primarycontactid": null }
Resposta Real
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4" }
As consultas FetchXML vinculadas a activitypointer podem não incluir campos vinculados
Observação
Esse problema é abordado em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016.
Ao criar uma consulta usando FetchXML, que inclui activitypointer como uma entidade vinculada, os valores da propriedade serão null. Por exemplo, se você usar o seguinte fetchXML:
<fetch version="1.0"
output-format="xml-platform"
mapping="logical"
distinct="true">
<entity name="account">
<attribute name="name" />
<link-entity name="activitypointer"
from="regardingobjectid"
to="accountid"
link-type="inner">
<attribute name="subject" />
</link-entity>
</entity>
</fetch>
Você está solicitando o activitypointerrelacionado.subject valor a ser retornado. É devolvido com um valor null quando existe um valor real.
Solicitação
GET [Organization URI]/api/data/v8.0/accounts?fetchXml=%3Cfetch%20version=%221.0%22%20output-format=%22xml-platform%22%20mapping=%22logical%22%20distinct=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20/%3E%3Clink-entity%20name=%22activitypointer%22%20from=%22regardingobjectid%22%20to=%22accountid%22%20link-type=%22inner%22%3E%3Cattribute%20name=%22subject%22%20/%3E%3C/link-entity%3E%3C/entity%3E%3C/fetch%3E HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta Esperada
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name)", "value": [ { "name": "A. Datum Corporation (sample)", "activitypointer1.subject": "Task Subject Value" } ] }
Resposta Real
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name)", "value": [ { "name": "A. Datum Corporation (sample)", "activitypointer1.subject": null } ] }
Para obter mais informações:Usar FetchXML personalizado
Não é possível retornar propriedades de valor null em resultados de propriedade de navegação expandida
Observação
Esse problema é abordado em Atualização 0.1 do Microsoft Dynamics CRM Online 2016 e Atualização 0.1 do Microsoft Dynamics CRM 2016.
Quando uma das propriedades expandidas em uma propriedade de navegação de valor de coleção é null, a propriedade expandida não será incluída nos resultados. O primeiro exemplo mostra os dados quando um dos contatos relacionados a uma conta tem um valor null para a propriedade emailaddress1 expandida. A propriedade emailaddress1 não é retornada mesmo para o contato em que há um valor.
Solicitação
GET [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)?$select=name&$expand=contact_customer_accounts($select=emailaddress1,lastname,firstname) HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta Esperada
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,contact_customer_accounts,contact_customer_accounts(emailaddress1,lastname,firstname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4", "contact_customer_accounts": [ { "@odata.etag": "W/\"504749\"", "emailaddress1": null, "lastname": "Valdes (sample)", "firstname": "Rene", "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4" }, { "@odata.etag": "W/\"503647\"", "emailaddress1": someone_l@example.com, "lastname": "Burk (sample)", "firstname": "Susan", "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4" } ] }
Resposta Real
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,contact_customer_accounts,contact_customer_accounts(emailaddress1,lastname,firstname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4", "contact_customer_accounts": [ { "@odata.etag": "W/\"504749\"", "lastname": "Valdes (sample)", "firstname": "Rene", "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4" }, { "@odata.etag": "W/\"503647\"", "lastname": "Burk (sample)", "firstname": "Susan", "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4" } ] }
O consulta direta por meio da propriedade de navegação de valor de coleção sem expansão contact_customer_accounts retorna os dados esperados.
Solicitação
GET [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)/contact_customer_accounts?$select=emailaddress1,lastname,firstname HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#contacts(emailaddress1,lastname,firstname)", "value": [ { "@odata.etag": "W/\"504749\"", "emailaddress1": null, "lastname": "Valdes (sample)", "firstname": "Rene", "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4" }, { "@odata.etag": "W/\"503647\"", "emailaddress1": "someone_l@example.com", "lastname": "Burk (sample)", "firstname": "Susan", "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4" } ] }
Confira Também
Use a API da Web do Microsoft Dynamics 365
Autentique Microsoft Dynamics 365 com API da Web
Tipos de API da Web e operações
Executar operações usando A API
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais