Partilhar via


Usar uma junção externa à esquerda no FetchXML para consultar registros “não incluídos”

 

Publicado: janeiro de 2017

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

Você pode usar uma junção externa à esquerda no FetchXML para realizar uma consulta que filtre a tabela de junção, como para localizar todos os contatos que não tiveram atividades de campanha nos últimos dois meses. Outro uso comum para este tipo de consulta é localizar os registros que “não estão incluídos” em um conjunto, como nesses casos:

  • Localizar todos os clientes potenciais que não tenham tarefas

  • Localizar todas as contas que não tenham contatos

  • Localizar todos os clientes potenciais que tenham uma ou mais tarefas

Uma junção externa à esquerda retorna cada linha que atende à junção da primeira entrada com a segunda entrada. Ela também retorna todas as linhas da primeira entrada que não tenham linhas correspondentes na segunda entrada. As linhas sem correspondência da segunda entrada são retornadas como valores nulos.

É possível executar uma junção externa à esquerda no FetchXML usando o atributo entityname como um operador de condição. O atributo entityname é válido em condições, filtros e filtros aninhados.

Você pode criar uma consulta usando uma junção externa à esquerda programaticamente e executar a consulta usando o RetrieveMultipleRequest e pode salvar a consulta criando um registro SavedQuery. Você pode abrir uma consulta salva que contenha uma junção externa à esquerda nos editores de Localização Avançada ou Consulta Salva no aplicativo Web e executar e exibir os resultados, mas algumas funcionalidades do editor são desabilitadas. Esses editores permitirão alterações na consulta, como alterar as colunas retornadas, mas não oferece suporte à alteração da junção externa à esquerda.

Exemplo: Localizar todas as contas que não tenham clientes potenciais

O exemplo a seguir mostra como criar a consulta no FetchXML:

<fetch mapping='logical'>
 <entity name='account'>
  <attribute name='name'/>
  <link-entity name='lead'
               from='leadid'
               to='originatingleadid'
               link-type='outer'/>
  <filter type='and'>
   <condition entityname='lead'
              attribute='leadid'
              operator='null'/>
  </filter>
 </entity>
</fetch>

Exemplo: Localizar todos os clientes potenciais que não tenham tarefas usando um alias

O exemplo a seguir mostra como criar a consulta no FetchXML:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="lead">
    <attribute name="fullname" />
    <link-entity name="task" from="regardingobjectid" to="leadid" alias="ab" link-type="outer">
       <attribute name="regardingobjectid" />
    </link-entity>
    <filter type="and">
        <condition entityname="ab" attribute="regardingobjectid" operator="null" />
    </filter>
  </entity>
<fetch/>

Isto é equivalente ao seguinte SQL:

SELECT lead.FullName
FROM Leads as lead
LEFT OUTER JOIN Tasks as ab
ON (lead.leadId  =  ab.RegardingObjectId)
WHERE ab.RegardingObjectId is null

Confira Também

Criar consultas com FetchXML
Amostra: Use a agregação em FetchXML
Use FetchXML para criar uma consulta
Exemplo: Validar e executar uma consulta salva

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais