Interroger les données hiérarchiques

Vous pouvez définir les relations de table un-à-plusieurs à auto-référencement spécifiques comme hiérarchiques. Vous pouvez entrer des requêtes qui renvoient 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 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 utilisez QueryExpression ou FetchExpression.

Opérateurs de condition des données hiérarchiques

Utilisez les opérateurs suivants pour définir des conditions lors de l’interrogation des données hiérarchiques.

FetchXML ConditionOperator Description
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 Renvoie 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 la récursivité lors de l’interrogation des données hiérarchiques

Du fait que l’interrogation des données hiérarchiques peut entraîner l’utilisation intensive des ressources,une limite par défaut est définie sur 100 conditions de récursivité 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 Détail de la hiérarchie qui se trouve dans Paramètres > Sécurité > Sécurité de la hiérarchie. La valeur de ce paramètre est stockée dans la colonne Organization.MaxDepthForHierarchicalSecurityModel.

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 valeur d’AccountChildren globale représentant le nombre d’enregistrements de comptes enfants dans les relations hiérarchiques où le paramètre {0} représente l’AccountId de l’enregistrement parent.

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

Notes

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.

Voir aussi

À propos des requêtes de recherche rapide

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).