Compartir por


Consultar datos jerárquicos

Puede definir relaciones de tabla de uno a varios específicas con autorreferencia como jerárquicas. Puede escribir consultas que devuelvan datos relacionados en estas jerarquías.

Puede aprovechar los nuevos operadores de condición de consulta para consultar tablas con relaciones jerárquicas explícitas. Estos operadores solo se aplican a la relación de tabla definida específicamente como una relación jerárquica. Puede usar nuevos operadores de condición para recuperar estos datos jerárquicos al consultar mediante QueryExpression o FetchExpression.

Operadores de condición para datos jerárquicos

Use los operadores siguientes para establecer condiciones al consultar datos jerárquicos.

FetchXML ConditionOperator Description
above Above Devuelve todos los registros en la línea de ascendencia jerárquica del registro al que se hace referencia.
eq-or-above AboveOrEqual Devuelve el registro al que se hace referencia y todos los registros sobre éste en la jerarquía.
under Under Devuelve todos los registros secundarios por debajo del registro al que se hace referencia en la jerarquía.
eq-or-under UnderOrEqual Devuelve el registro al que se hace referencia y todos los registros secundarios por debajo de éste en la jerarquía.
not-under NotUnder Devuelve todos los registros que no están por debajo del registro al que se hace referencia en la jerarquía.
eq-useroruserhierarchy OwnedByMeOrMyReports Cuando se usan modelos de seguridad jerárquicos, es igual al usuario actual o la jerarquía de subordinados del usuario
eq-useroruserhierarchyandteams OwnedByMeOrMyReportsAndTeams Cuando se usan modelos de seguridad jerárquicos, es igual al usuario actual y sus equipos o la jerarquía de subordinados del usuario y sus equipos

Límites de recursividad al consultar datos jerárquicos

Dado que la consulta de datos jerárquicos puede consumir muchos recursos, hay un límite predeterminado de 100 recursiones permitidas para las consultas jerárquicas mediante los operadores de condición Above, AboveOrEqual, Under, UnderOrEqual y NotUnder.

OwnedByMeOrMyReports y OwnedByMeOrMyReportsAndTeams son operadores de condición de seguridad jerárquicos que dependen de la configuración Profundidad de jerarquía que se puede encontrar en Ajustes>Seguridad>Seguridad de la Jerarquía. El valor de esta configuración se almacena en la Organization.MaxDepthForHierarchicalSecurityModel columna .

Utilice la columna rowaggregate de una consulta basada en FetchXML para recuperar el número de registros secundarios relacionados jerárquicamente. Cuando este valor se establece en CountChildren un valor que incluye el número total de registros secundarios para el registro se incluye en la EntityCollection. Por ejemplo, la siguiente consulta incluirá un valor de agregado de AccountChildren que representa el número de registros de cuentas secundarios en la relación jerárquica donde el parámetro {0} representa el AccountId del registro primario.

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

Nota:

El valor agregado devuelto representa todos los registros secundarios, incluidos aquellos a los que el usuario no tenga acceso de lectura.

Véase también

Acerca de las consultas de búsqueda rápida