Frage

Ist es möglich, eine einzelne FetchXML Abfrage zu schreiben, die eine Root-Entität und mehr Kinder bekommen? Alles, was ich habe in der Lage ist 1 zu tun. 1

War es hilfreich?

Lösung

Nein, es ist nicht möglich.

Andere Tipps

James Wood ist richtig . Fetch XML ist rekursiv so durch den Link Entität verwenden, können Sie die gewünschten Informationen erhalten.

Zum Beispiel folgendes gilt:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="account">
    <attribute name="name" />
    <attribute name="primarycontactid" />
    <attribute name="telephone1" />
    <attribute name="accountid" />
    <order attribute="name" descending="false" />
    <link-entity name="contact" from="parentcustomerid" to="accountid" alias="aj">
        <attribute name="firstname" />
        <attribute name="lastname" />
        <attribute name="telephone1" />
        <link-entity name="businessunit" from="businessunitid" to="owningbusinessunit" alias="ak">
            <attribute name="name" />
            <attribute name="address1_line1" />
            <attribute name="address1_line2" />
            <attribute name="address1_line3" />
            <filter type="and">
              <condition attribute="name" operator="not-null" />
            </filter>
        </link-entity>
    </link-entity>
  </entity>
</fetch>

Wenn Ihre Frage ist wirklich: „Ist es möglich, eine einzelne FetchXML Abfrage zu schreiben, die eine SINGLE Stammentität und mehrere Kinder bekommen“, dann lautet die Antwort leider nicht. Allerdings, wenn Sie in der Lage sind Duplikate von Stammdaten zu verarbeiten (zum Beispiel der Gruppierung Funktionalität eines SSRS-Berichts verwendet wird) dann, was Sie benötigen, ist durchaus möglich,

Wenn ich die Frage falsch verstanden habe dies ist sehr gut möglich.

So zum Beispiel mögen Sie ein bestimmtes Konto im Zusammenhang alle Kontakte finden. Dies wird in Crm von den Mutterkunden Lookup auf dem Kontakt auf das Konto dargestellt.

eingeben Bild Beschreibung hier

<fetch mapping="logical" count="100" version="1.0">
    <entity name="account">
        <attribute name="name" />
        <link-entity name="contact" from="parentcustomerid" to="accountid">
            <attribute name="fullname" />
        </link-entity>
    </entity>
</fetch>

Was Sie eine Ergebnismenge, die wie folgt aussieht gibt:

<resultset morerecords="0" paging-cookie="&lt;cookie page=&quot;1&quot;&gt;&lt;accountid last=&quot;{E704FAD6-2D4B-E111-9FED-00155D828444}&quot; first=&quot;{AD912122-6B3C-E111-9B37-00155D828444}&quot; /&gt;&lt;/cookie&gt;">
    <result>
        <name>RGD Mining Inc</name>
        <accountid>{E704FAD6-2D4B-E111-9FED-00155D828444}</accountid>
        <accountid.fullname>Bill Miner</accountid.fullname>
    </result>
    <result>
        <name>RGD Mining Inc</name>
        <accountid>{E704FAD6-2D4B-E111-9FED-00155D828444}</accountid>
        <accountid.fullname>Green</accountid.fullname>
    </result>
</resultset>

Ich bin froh zu berichten, dass es möglich ist. Ich habe eine Lösung, die gut für mich gearbeitet.

Der einzige Nachteil ist, dass, wenn Sie mehr Kind-Konten werden Sie mehrere Ergebnisse für die Eltern bekommen. Zum Beispiel:

parent 1: child 1
parent 2: child 1
parent 2: child 2

Das bedeutet, dass Sie würde dann die Ergebnisse durch eine Sortierfunktion ausführen müssen, um entweder alle Kinder unter Eltern in einem multidimensionalen Array zu erhalten, oder alle Konten als eindeutige Einträge in einem flachen Array erhalten.

Auch das geht nur eine Ebene tiefer. Wenn Ihre Hierarchie Multi-Level ist, würde dieser Code muß geändert werden.

<fetch distinct="false" mapping="logical"> 
   <entity name="account">     
        <attribute name="name" />
        <link-entity name="account"  alias="childaccount" to="accountid" from="parentaccountid"  link-type="outer">
            <attribute name="name" alias="childname" />
        </link-entity>
    </entity>           
</fetch>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top