Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Vous pouvez définir des relations de table spécifiques de type une-à-plusieurs, qui se référencent elles-mêmes, comme hiérarchiques. Vous pouvez écrire des requêtes qui retournent des données associées dans ces hiérarchies.
Vous pouvez tirer parti des nouveaux opérateurs de condition de requête pour interroger des tables avec des relations hiérarchiques explicites. Ces opérateurs s’appliquent uniquement à la relation de table spécifiquement définie comme une relation hiérarchique. Vous pouvez utiliser de nouveaux opérateurs de condition pour récupérer ces données hiérarchiques lorsque vous interrogez à l’aide QueryExpression ou FetchExpression.
Opérateurs de condition pour les données hiérarchiques
Utilisez les opérateurs suivants pour définir des conditions lors de l’interrogation de données hiérarchiques.
| FetchXML | ConditionOperator | Descriptif |
|---|---|---|
above |
Above |
Renvoie tous les enregistrements de la ligne hiérarchique de l’ascendance de l’enregistrement référencé. |
eq-or-above |
AboveOrEqual |
Renvoie l’enregistrement référencé et tous les enregistrements supérieurs dans la hiérarchie. |
under |
Under |
Renvoie tous les enregistrements enfants inférieurs à l’enregistrement référencé dans la hiérarchie |
eq-or-under |
UnderOrEqual |
Renvoie l’enregistrement référencé et tous les enregistrements enfants inférieurs à lui dans la hiérarchie |
not-under |
NotUnder |
Retourne tous les enregistrements non inférieurs à l’enregistrement référencé dans la hiérarchie |
eq-useroruserhierarchy |
OwnedByMeOrMyReports |
Lorsque les modèles de sécurité hiérarchique sont utilisés, équivaut à l’utilisateur actuel ou sa hiérarchie directe |
eq-useroruserhierarchyandteams |
OwnedByMeOrMyReportsAndTeams |
Lorsque les modèles de sécurité hiérarchique sont utilisés, équivaut à l’utilisateur actuel et ses équipes ou sa hiérarchie directe et ses équipes |
Limites de récursivité lors de l’interrogation de données hiérarchiques
Étant donné que l’interrogation de données hiérarchiques peut être gourmande en ressources, il existe une limite par défaut de 100 itérations de récursion autorisées pour les requêtes hiérarchiques utilisant les opérateurs de condition Above, AboveOrEqual, Under, UnderOrEqual et NotUnder.
OwnedByMeOrMyReports et OwnedByMeOrMyReportsAndTeams sont des opérateurs de condition de sécurité hiérarchique qui dépendent du paramètre Profondeur de Hiérarchie que l'on trouve dans Paramètres>Sécurité>Sécurité Hiérarchique. La valeur de ce paramètre est stockée dans la Organization.MaxDepthForHierarchicalSecurityModel colonne.
Extraction du nombre d’enregistrements enfants associés de manière hiérarchique
Utilisez la colonne rowaggregate dans une requête basée sur FetchXML pour récupérer le nombre d’enregistrements enfants liés hiérarchiquement. Lorsque cette valeur est définie sur CountChildren, une valeur incluant le nombre total d’enregistrements enfants pour l’enregistrement est incluse dans EntityCollection. Par exemple, la requête suivante inclut une AccountChildren valeur d’agrégation représentant le nombre d’enregistrements de compte enfant dans la relation hiérarchique où le {0} paramètre représente l’enregistrement AccountId parent.
<fetch>
<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>
Note
La valeur globale renvoyée représente tous les enregistrements enfants, y compris ceux auxquels l’utilisateur peut ne pas avoir accès en lecture.