Use una combinación externa izquierda en FetchXML para consultar los registros "no en"

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Puede usar una combinación externa izquierda en FetchXML para realizar una consulta que aplica un filtro a la tabla combinada, por ejemplo, para buscar todos los contactos que no han tenido ninguna actividad de campaña en los últimos dos meses. Otro uso común de este tipo de una consulta es buscar los registros que "no están en" un conjunto, como en estos casos:

  • Buscar todos los clientes potenciales que no tienen ninguna tarea

  • Buscar todas las cuentas que no tienen ningún contacto

  • Buscar todos los clientes potenciales que tienen una o varias tareas

Una combinación externa izquierda devuelve todas las filas que satisfacen la combinación de la primera entrada con la segunda entrada. También devuelve las filas de la primera entrada que no tenían ninguna fila coincidente en la segunda entrada. Las filas no coincidentes de la segunda entrada se devuelven como valores nulos.

Puede realizar una combinación externa izquierda en FetchXML mediante el atributo entityname como un operador de condición. El atributo entityname es válido en condiciones, filtros y filtros anidados.

Puede crear una consulta con una combinación externa izquierda mediante programación y ejecutar las consultas mediante RetrieveMultipleRequest y puede guardar la consulta creando un registro de SavedQuery. Puede abrir una consulta guardada que contiene una combinación externa izquierda de los editores de búsqueda avanzada o consulta guardada y ejecutar y ver los resultados, pero parte de la funcionalidad del editor está deshabilitada. Los editores permitirán modificaciones de la consulta, como cambiar las columnas devueltas, pero el editor no admite cambiar la combinación externa izquierda.

Ejemplo: buscar todas las cuentas que no tienen ningún cliente potencial

A continuación se muestra cómo crear la consulta de 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>

Ejemplo: buscar todos los clientes potenciales que no tienen ninguna tarea, con un alias

A continuación se muestra cómo crear la consulta de 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/>

Esto equivale al código SQL siguiente.

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

Ver también

Crear consultas con FetchXML
Ejemplo: uso de agregación en FetchXML
Usar FetchXML para crear una consulta
Ejemplo: validar y ejecute una consulta guardada

© 2017 Microsoft. Todos los derechos reservados. Copyright