Verwenden einer linken äußeren Verknüpfung in FetchXML für Abfragen nach Datensätzen, die „nicht in“ sind.

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Sie können eine linke äußere Verknüpfung in FetchXML verwenden, um eine Abfrage auszuführen, die auf der Verknüpfungstabelle filtert, wie zum Beispiel alle Kontakte zu suchen, bei denen in den letzten beiden Monaten keine Kampagnenaktivitäten stattfanden. Eine weitere allgemeine Verwendung dieses Abfragetyps ist das Suchen von Datensätzen, die „nicht in“ sind, wie in folgenden Fällen:

  • Suchen aller Leads, die über keine Tasks verfügen.

  • Suchen aller Firmen, die über keine Kontakte verfügen

  • Suchen aller Leads, die mindestens eine Task verfügen.

Eine linke äußere Verknüpfung gibt jede Zeile zurück, die der Verknüpfung der ersten Eingabe mit der zweiten Eingabe entspricht. Es werden auch alle Zeilen aus der ersten Eingabe zurückgegeben, die in der zweiten Eingabe keine Übereinstimmung haben. Die nicht übereinstimmenden Zeilen in der zweiten Eingabe werden als Nullwerte zurückgegeben.

Sie können eine linke äußere Verknüpfung in FetchXML ausführen, indem Sie das Attribut entityname als Bedingungsoperator verwenden. Das Attribut entityname ist auch für die Bedingungen, Filter und geschachtelte Filter gültig.

Sie können eine Abfrage mithilfe einer linken, äußeren Verknüpfung programmatisch erstellen und die Abfrage mithilfe von RetrieveMultipleRequest ausführen, und Sie können die Abfrage speichern, indem Sie einen SavedQuery-Datensatz erstellen. Sie können eine gespeicherte Abfrage öffnen, die eine linke, äußere Verknüpfung in den Editoren für die Erweiterte Suche oder Gespeicherte Abfrage in der Webanwendung enthält, und Sie können die Ergebnisse anzeigen. Manche Funktionen des Editors sind aber deaktiviert. Diese Editoren lassen Änderungen der Abfrage zu, wie beispielsweise die zurückgegebenen Spalten zu ändern. Der Editor unterstützt jedoch nicht das Ändern der linken, äußeren Verknüpfung.

Beispiel: Suchen Sie alle Firmen, die über keine Leads verfügen.

Nachfolgend wird veranschaulicht, wie die Abfrage in FetchXML erstellt wird:

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

Beispiel: Suchen Sie alle Leads, die keine Aufgaben haben, mithilfe eines Alias

Nachfolgend wird veranschaulicht, wie die Abfrage in FetchXML erstellt wird:

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

Dies ist äquivalent zu folgendem SQL:

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

Siehe auch

Abfragen erstellen mit FetchXML
Beispiel: Verwendung von Aggregation in FetchXML
Verwenden von FetchXML zum Erstellen einerAbfrage
Beispiel: Überprüfen und ausführen einer gespeicherten Abfrage

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright