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 | Eigenschaft |
---|---|---|
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.
Rufen Sie die Anzahl von hierarchisch verknüpften untergeordneten Datensätzen ab
Verwenden Sie die rowaggregate
Spalte in einer FetchXML basierten Abfrage, um die Anzahl der hierarchisch verknüpften 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
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).