Abfragen von hierarchischen Daten

Sie können bestimmte selbstreferenzierende 1:N-Tabellenbeziehungen als hierarchisch definieren. Sie können Abfragen schreiben, die verknüpfte in diesen Hierarchien zurückgeben.

Sie können die neuen Abfrage-Bedingungsoperatoren nutzen, um Tabellen mit expliziten hierarchischen Beziehungen abzufragen. Diese Operatoren gelten nur für die Tabellenbeziehung, die explizit als hierarchische Beziehung definiert ist. Sie können neue Bedingungsoperatoren verwenden, um diese hierarchischen Daten zu verwenden, wenn Sie mit QueryExpression oder FetchExpression abfragen.

Bedingungsoperatoren für hierarchische Daten

Verwenden Sie die folgenden Poeratoren, um Bedingungen festzulegen, wenn Sie hierarchische Daten abfragen.

FetchXML ConditionOperator Beschreibung
above Above Gibt alle Datensätze in der Vorfahrenlinie des referenzierten hierarchischen Datensatzes zurück.
eq-or-above AboveOrEqual Gibt den referenzierten Datensatz und alle Datensätze über diesem in der Hierarchie zurück.
under Under Gibt alle untergeordneten Datensätze in dem referenzierten Datensatz in der Hierarchie zurück.
eq-or-under UnderOrEqual Gibt den referenzierten Datensatz und allle untergeordneten Datensätze in in der Hierarchie zurück.
not-under NotUnder Gibt alle untergeordneten Datensätze nicht unter dem referenzierten Datensatz in der Hierarchie zurück.
eq-useroruserhierarchy OwnedByMeOrMyReports Wenn hierarchische Sicherheitsmodelle verwendet werden, ist dies dem aktuellen Benutzer oder desse°n Berichterstellungshierarchie gleich
eq-useroruserhierarchyandteams OwnedByMeOrMyReportsAndTeams Wenn hierarchische Sicherheitsmodelle verwendet werden, ist dies dem aktuellen Benutzer und seinen Teams oder seiner Berichterstellungshierarchie und deren Teams gleich

Rekursion begrenzt, wann hierarchisch Daten abgefragt werden

Da das Abfragen von Daten ressourcenintensiv sein kann, gibt es ein Standardlimit von 100 rekursionenszulässigen Bedingungen für hierarchische Abfragen mithilfe von Above, AboveOrEqual, Under, UnderOrEqual und NotUnder-Bedingungsoperatoren.

OwnedByMeOrMyReports und OwnedByMeOrMyReportsAndTeams sind hierarchische Sicherheitszustandsoperatoren, die von der Hierarchytiefe-Einstellung anhängen, die in Einstellungen > Sicherheit > Hierarchiesicherheit abhängen. Der Wert dieser Einstellung wird in der Spalte Organization.MaxDepthForHierarchicalSecurityModel gespeichert.

Verwenden Sie die Spalte rowaggregate in einer FetchXML-basierten Abfrage, um die Anzahl der hierarchisch verbundenen untergeordneten Datensätze abzurufen. Wenn der Wert auf CountChildren festgelegt ist, wird ein Wert ist, der die Gesamtanzahl von untergeordneten Datensätzen für den Datensatz enthält, in die Datei EntityCollection eingeschlossen. Zum Beispiel schließt die folgende Abfrage einen der AccountChildren-Gesamtwert ein, der die Anzahl von untergeordneten Firmendatensätzen in der hierarchischen Beziehung darstellt, in der der Parameter {0} den AccountId des übergeordneten Datensatzes darstellt.

<fetch distinct='false' no-lock='false' mapping='logical'>  
  <entity name='account'>  
    <attribute name='name' />  
    <attribute name='accountid' />  
    <attribute name='accountid' rowaggregate='CountChildren' alias='AccountChildren'/>  
    <filter type='and'>  
      <condition attribute='accountid' operator='under' value='{0}' />  
    </filter>  
  </entity>  
</fetch>  
  

Hinweis

Der zurückgegebene Gesamtwert enthält alle untergeordneten Datensätze, einschließlich solcher, für die der Benutzer möglicherweise keinen Lesezugriff hat.

Siehe auch

Über Schnellsuche-Abfragen

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).