Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Junte tabelas usando o OData aplicando a $expand às propriedades de navegação. Essa abordagem permite controlar quais dados são retornados de registros de tabela relacionados ao consultar a API Web do Dataverse.
- Você pode incluir até 15
$expandopções em uma consulta. Cada$expandopção cria uma junção que pode afetar o desempenho. - Consultas que expandem propriedades de navegação com valor de coleção podem retornar dados armazenados em cache para essas propriedades que não refletem alterações recentes. Use o cabeçalho
If-None-Matchcom o valornullpara substituir o cache do navegador. Saiba mais sobre como usar cabeçalhos HTTP para obter mais detalhes.
A tabela a seguir descreve as opções de consulta que você pode aplicar em determinadas $expand opções:
| Opção | Description | Mais informações |
|---|---|---|
$select |
Selecione quais propriedades são retornadas. | Selecionar colunas |
$filter |
Para propriedades de navegação com valor de coleção, limite os registros retornados. | Filtrar linhas |
$orderby |
Para propriedades de navegação com valor de coleção, controle a ordem em que os registros são retornados. Não é compatível com o $expand aninhado. |
$expand aninhado em propriedades de navegação com valor de coleção |
$top |
Para propriedades de navegação com valor de coleção, limite o número de registros retornados. Não é compatível com o $expand aninhado. |
$expand aninhado em propriedades de navegação com valor de coleção |
$expand |
Expanda as propriedades de navegação no conjunto de entidades relacionadas. Usar $expand em um $expand é chamado de aninhado $expand. |
Expand aninhado de propriedades de navegação com valor único e $expand aninhado em propriedades de navegação com valor de coleção |
Essas opções são um subconjunto das opções de consulta descritas nas Opções de Expansão do OData Versão 4.0 1: Protocolo Mais Errata 02 11.2.4.2.1. As opções$skip, $count$searche $levels não têm suporte para a API Web do Dataverse.
Use essas opções adicionando-as $expand em parênteses após o nome da propriedade de navegação. Separe cada opção com um ponto-e-vírgula (;).
Por exemplo, a seguinte consulta:
Solicita a
account.namepropriedadeIngressa na propriedade de navegação com valor de coleção
AccountTaskssolicitando:- A propriedade
task.subject - Onde a
task.subjectstring contém "Task" - Ordenado pela
task.createdondata, decrescente
- A propriedade
/accounts?$select=name&$expand=Account_Tasks($select=subject;$filter=contains(subject,'Task');$orderby=createdon desc)
Limitar colunas com $select
Assim como acontece com qualquer consulta, sempre limite as colunas retornadas usando $select quando você usa $expand. Por exemplo, a solicitação a seguir retorna os valores contact.fullname e task.subject nos resultados expandidos do tipo de entidade account.
Solicitação:
GET [Organization URI]/api/data/v9.2/accounts?$select=name
&$expand=primarycontactid($select=fullname),Account_Tasks($select=subject)
Prefer: odata.maxpagesize=1
If-None-Match: null
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Resposta:
HTTP/1.1 200 OK
OData-Version: 4.0
Preference-Applied: odata.maxpagesize=1
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,primarycontactid(fullname),Account_Tasks(subject))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd"
},
"Account_Tasks": [
{
"@odata.etag": "W/\"80649460\"",
"subject": "Task 1 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "f68393c1-34cb-ed11-b597-000d3a993550"
}
],
"Account_Tasks@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/Account_Tasks?$select=subject"
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name&$expand=primarycontactid($select=fullname),Account_Tasks($select=subject)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Diferenças de propriedade de navegação com valor único e com valor de coleção
Importante
Lembre-se de que há dois tipos de propriedades de navegação. Saiba mais sobre as propriedades de navegação da API Web
As propriedades de navegação com valor único correspondem a atributos de pesquisa que dão suporte a relações muitos para um e permitem definir uma referência a outro registro.
As propriedades de navegação Valor de coleção correspondem a relacionamentos um para muitos ou muitos para muitos.
Expandir uma propriedade de navegação com valor de coleção pode tornar o tamanho da resposta grande de maneiras difíceis de prever. É importante que você inclua limites para controlar a quantidade de dados retornada. Você pode limitar a quantidade de registros utilizando técnicas de paginação. Saiba mais sobre os resultados da paginação
Há uma diferença significativa na forma como a paginação é aplicada a opções de $expand aninhadas aplicadas a propriedades de navegação com valor de coleção. Saiba mais sobre como expandir as propriedades de navegação com valor de coleção
Expandir propriedades de navegação com valor único
O exemplo a seguir demonstra como recuperar registros de contato, incluindo o contato primário e o usuário que criou os registros.
Solicitação:
GET [Organization URI]/api/data/v9.2/accounts?$select=name
&$expand=primarycontactid($select=contactid,fullname),createdby($select=fullname)
Prefer: odata.maxpagesize=2
If-None-Match: null
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Resposta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=2
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,primarycontactid(contactid,fullname),createdby(fullname))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"fullname": "Susanna Stubberod (sample)"
},
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
},
{
"@odata.etag": "W/\"80649580\"",
"name": "Adventure Works (sample)",
"accountid": "7a914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"contactid": "72bf4d48-34cb-ed11-b596-0022481d68cd",
"fullname": "Nancy Anderson (sample)"
},
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name%0A&$expand=primarycontactid($select=contactid,fullname),createdby($select=fullname)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b7A914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
A createdby propriedade de navegação com valor único retorna uma instância do systemuser EntityType. Ambas as propriedades systemuserid e ownerid são retornadas. Esse retorno ocorre porque systemuser herda do EntityType principal e compartilha a chave primária com o owneridEntityType da equipe por meio dessa herança.
No entanto, a tabela Usuário (SystemUser) tem a chave primária de SystemUserId. Ambas as propriedades systemuserid e ownerid têm o mesmo valor.
Saiba mais sobre a herança EntityType
Referências de retorno
Em vez de retornar dados, você também pode retornar referências ou links para os registros relacionados expandindo a propriedade de navegação com valor único com a opção /$ref . O exemplo a seguir retorna objetos JSON com uma @odata.id propriedade que tem uma URL para cada contato primário.
Solicitação:
GET [Organization URI]/api/data/v9.2/accounts?$select=name
&$expand=primarycontactid/$ref
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Resposta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=2
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,primarycontactid,primarycontactid/$ref())",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"_primarycontactid_value": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"@odata.id": "[Organization URI]/api/data/v9.2/contacts(70bf4d48-34cb-ed11-b596-0022481d68cd)"
}
},
{
"@odata.etag": "W/\"80649580\"",
"name": "Adventure Works (sample)",
"_primarycontactid_value": "72bf4d48-34cb-ed11-b596-0022481d68cd",
"accountid": "7a914942-34cb-ed11-b596-0022481d68cd",
"primarycontactid": {
"@odata.id": "[Organization URI]/api/data/v9.2/contacts(72bf4d48-34cb-ed11-b596-0022481d68cd)"
}
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name%0A&$expand=primarycontactid/$ref&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b7A914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Você só pode usar a opção /$ref com propriedades de navegação de valor único. Se você usá-la com uma propriedade de navegação com valor de coleção, receberá o seguinte erro:
{
"error": {
"code": "0x80060888",
"message": "Expand with $ref is only supported on lookup type navigation property."
}
}
Expansão aninhada de propriedades de navegação com valor único
Você pode expandir propriedades de navegação de valor único para vários níveis aninhando a opção $expand dentro de outra opção $expand.
A consulta a seguir retorna task registros e expande os contact relacionados, os account relacionados ao contact e o systemuser que criou o registro account:
Solicitação:
GET [Organization URI]/api/data/v9.2/tasks?$select=subject
&$expand=regardingobjectid_contact_task($select=fullname;
$expand=parentcustomerid_account($select=name;
$expand=createdby($select=fullname)))
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.maxpagesize=2
Resposta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=2
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#tasks(subject,regardingobjectid_contact_task(fullname,parentcustomerid_account(name,createdby(fullname))))",
"value": [
{
"@odata.etag": "W/\"80730855\"",
"subject": "Task 1 for Susanna Stubberod",
"activityid": "e9a8c72c-dbcc-ed11-b597-000d3a993550",
"regardingobjectid_contact_task": {
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"parentcustomerid_account": {
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
}
},
{
"@odata.etag": "W/\"80730861\"",
"subject": "Task 2 for Susanna Stubberod",
"activityid": "c206f534-dbcc-ed11-b597-000d3a993550",
"regardingobjectid_contact_task": {
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"parentcustomerid_account": {
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"createdby": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
}
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/tasks?$select=subject&$expand=regardingobjectid_contact_task($select=fullname;$expand=parentcustomerid_account($select=name;$expand=createdby($select=fullname)))&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253cactivityid%2520last%253d%2522%257bC206F534-DBCC-ED11-B597-000D3A993550%257d%2522%2520first%253d%2522%257bE9A8C72C-DBCC-ED11-B597-000D3A993550%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Propriedades de navegação de valor de coleção de expansão
Há algumas diferenças importantes na resposta que dependem se você usa $expand aninhado com uma propriedade de navegação com valor de coleção em qualquer lugar em sua consulta.
| $expand aninhado | $expand único | |
|---|---|---|
| Paginação | Paginação em linhas expandidas. | Paginação somente no recurso EntitySet.
<property name>@odata.nextLink As URLs para linhas expandidas não incluem informações de paginação. |
$top ou $orderby com suporte |
No | Yes |
| Relações N:N suportadas | Não. Consulte $expand aninhado com relacionamentos N:N | Yes |
$expand único em propriedades de navegação com valor de coleção
Se você usar apenas um nível $expand, o serviço não aplicará paginação às linhas expandidas. Se você incluir o Prefer: odata.maxpagesize cabeçalho da solicitação, o serviço aplicará paginação somente ao recurso EntitySet da consulta.
Cada propriedade de navegação de coleção de valores expandida retorna um <property>@odata.nextLink URL que não contém informações de paginação. Essa URL representa a coleção filtrada do relacionamento com as opções de consulta acrescentadas. Você pode usar essa URL para enviar uma solicitação separada GET e ela retorna as mesmas linhas que foram retornadas em sua solicitação original. Você pode aplicar a paginação a essa solicitação.
Como o serviço não aplica paginação aos registros expandidos, até 5.000 registros de tabela relacionados podem ser retornados para cada propriedade de navegação expandida com valor de coleção. Dependendo dos dados e da consulta, essa quantidade pode ser grande. Retornar muitos dados pode afetar o desempenho e, possivelmente, fazer com que sua solicitação tenha um tempo limite. Tenha cuidado com as consultas que você redigir. Use as opções $top, $filter e $orderby para controlar o número total de registros retornados.
O exemplo a seguir inclui uma única expansão dos Account_Tasks e contact_customer_accounts ao recuperar os registros de conta. O Prefer: odata.maxpagesize=1 cabeçalho da solicitação garante que apenas um registro de conta seja retornado na primeira página.
Solicitação:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,accountid
&$expand=Account_Tasks($select=subject),contact_customer_accounts($select=fullname)
Prefer: odata.maxpagesize=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Resposta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=1
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,accountid,Account_Tasks(subject),contact_customer_accounts(fullname))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"Account_Tasks": [
{
"@odata.etag": "W/\"80730894\"",
"subject": "Task 1 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "be9f6557-e2cc-ed11-b597-000d3a993550"
},
{
"@odata.etag": "W/\"80730903\"",
"subject": "Task 2 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "605dbd65-e2cc-ed11-b597-000d3a993550"
},
{
"@odata.etag": "W/\"80730909\"",
"subject": "Task 3 for Litware",
"_regardingobjectid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"activityid": "a718856c-e2cc-ed11-b597-000d3a993550"
}
],
"Account_Tasks@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/Account_Tasks?$select=subject",
"contact_customer_accounts": [
{
"@odata.etag": "W/\"80648695\"",
"fullname": "Susanna Stubberod (sample)",
"_parentcustomerid_value": "78914942-34cb-ed11-b596-0022481d68cd",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd"
}
],
"contact_customer_accounts@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/contact_customer_accounts?$select=fullname"
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name,accountid&$expand=Account_Tasks($select=subject),contact_customer_accounts($select=fullname)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b7A914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520first%253d%2522%257b78914942-34CB-ED11-B596-0022481D68CD%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Compare esta resposta com o exemplo a seguir, que inclui um $expand aninhado. Para ver que apenas a @odata.nextLink URL do resultado da consulta da conta contém informações de paginação, role a resposta de exemplo horizontalmente.
$expand aninhado em propriedades de navegação com valor de coleção
Se você usar um $expand aninhado em qualquer lugar da consulta e incluir o cabeçalho de solicitação Prefer: odata.maxpagesize, o Dataverse aplicará paginação a cada uma das coleções expandidas.
Cada propriedade de navegação com valor de coleção expandida retorna uma URL <property>@odata.nextLink que inclui informações de paginação. Você pode usar essa URL para enviar uma solicitação separada GET e ela retorna o próximo conjunto de registros que não foram incluídos em sua solicitação original.
Você não pode usar as opções $top ou $orderby para limitar o número total de registros retornados com um $expand aninhado. O serviço retornará o seguinte erro se você usar estas opções:
{
"error": {
"code": "0x80060888",
"message": "Only $select and $filter clause can be provided while doing $expand on many-to-one relationship or nested one-to-many relationship."
}
}
O exemplo a seguir baseia-se no exemplo anterior e usa os mesmos dados. A única diferença é a adição na URL deste $expand aninhado em uma propriedade de navegação de valor único para retornar o proprietário do contato: ;$expand=owninguser($select=fullname).
Solicitação:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,accountid
&$expand=Account_Tasks($select=subject),contact_customer_accounts($select=fullname;
$expand=owninguser($select=fullname))
Prefer: odata.maxpagesize=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Resposta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: odata.maxpagesize=1
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,accountid,Account_Tasks(subject),contact_customer_accounts(fullname,owninguser(fullname)))",
"value": [
{
"@odata.etag": "W/\"80649578\"",
"name": "Litware, Inc. (sample)",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd",
"Account_Tasks": [
{
"subject": "Task 1 for Litware",
"activityid": "be9f6557-e2cc-ed11-b597-000d3a993550"
}
],
"Account_Tasks@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/Account_Tasks?$select=subject,description&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%2520countOfRecords%253d%25221%2522%253e%253cactivityid%2520last%253d%2522%257bbe9f6557-e2cc-ed11-b597-000d3a993550%257d%2522%2520first%253d%2522%257bbe9f6557-e2cc-ed11-b597-000d3a993550%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E",
"contact_customer_accounts": [
{
"fullname": "Susanna Stubberod (sample)",
"contactid": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"owninguser": {
"fullname": "System Administrator",
"systemuserid": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"ownerid": "4026be43-6b69-e111-8f65-78e7d1620f5e"
}
}
],
"contact_customer_accounts@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts(78914942-34cb-ed11-b596-0022481d68cd)/contact_customer_accounts?$select=fullname&$expand=owninguser($select=fullname)&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%2520countOfRecords%253d%25221%2522%253e%253ccontactid%2520last%253d%2522%257b70bf4d48-34cb-ed11-b596-0022481d68cd%257d%2522%2520first%253d%2522%257b70bf4d48-34cb-ed11-b596-0022481d68cd%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
],
"@odata.nextLink": "[Organization URI]/api/data/v9.2/accounts?$select=name,accountid&$expand=Account_Tasks($select=subject,description),contact_customer_accounts($select=fullname;$expand=owninguser($select=fullname))&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%2520countOfRecords%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b78914942-34cb-ed11-b596-0022481d68cd%257d%2522%2520first%253d%2522%257b78914942-34cb-ed11-b596-0022481d68cd%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}
Compare essa resposta com o exemplo anterior, que não usa um elemento aninhado $expand. Nesta resposta:
- O
Prefer: odata.maxpagesize=1cabeçalho da solicitação é aplicado aostaskregistros retornados comAccount_Tasks. - A resposta retorna apenas uma tarefa em vez de três.
- A
Account_Tasks@odata.nextLinkURL retorna as duas próximas tarefas. - Role a resposta de exemplo horizontalmente para ver que as URLs
Account_Tasks@odata.nextLink,contact_customer_accounts@odata.nextLink, and@odata.nextLinkcontêm informações de paginação.
$expand aninhado com relacionamentos N:N
Quando uma propriedade de navegação com valor de coleção representa uma relação N:N, você recebe o seguinte erro ao usar instruções aninhadas $expand :
{
"error": {
"code": "0x80060888",
"message": "The navigation property '<NAME>' cannot be expanded. Only many-to-one relationships are supported for nested expansion."
}
}
Por exemplo, usando a tabela Dynamics Lead, que tem uma contactleads_association relação N:N com a tabela de contatos, a consulta a seguir retorna o erro porque inclui ;$expand=createdby.
GET [Organization URI]/contacts?$select=fullname$expand=contactleads_association($select=fullname;$expand=createdby)
Para evitar esse erro, construa a consulta usando FetchXml. Por exemplo:
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='contactleads'
from='contactid'
to='contactid'
alias='cl'>
<link-entity name='lead'
from='leadid'
to='leadid'
alias='lead'>
<attribute name='fullname' />
<link-entity name='systemuser'
from='systemuserid'
to='createdby'
alias='systemuser'>
<attribute name='fullname' />
</link-entity>
</link-entity>
</link-entity>
</entity>
</fetch>
Saiba mais sobre como unir tabelas usando relações muitos para muitos com FetchXml
Próximas etapas
Saiba como ordenar linhas.