SearchControl
permet d'indiquer des critères de recherche.
La structure d'un objet de données SearchControl se compose des éléments suivants :
- countLimit
- nombre maximal de
résultats renvoyés par l'opération de recherche. Si le nombre actuel de
résultats de la recherche est supérieur au nombre limite indiqué,
la propriété hasMoreResults de la commande SearchResponse est définie sur True.
Remarque : La propriété countLimit ne peut être indiquée pour SearchControl,
si PageControl est également utilisé. Elles sont incompatibles.
- expression
- expression de recherche au format XPath.
- propriétés
- propriétés que vous
souhaitez recevoir des entités qui répondent aux critères de recherche. Par
exemple, vous souhaitez obtenir les attributs sn et givenName des personnes du
service marketing.
- returnSubType
- indique s'il faut renvoyer les sous-types des entités indiquées dans
l'expression. Par défaut, le paramètre est défini sur True.
- searchBases
- indique les bases de recherche permettant de limiter la recherche à celles
spécifiées dans la liste.
- searchLimit
- nombre maximal de résultats
pouvant être renvoyés par l'opération de recherche. Si les résultats de la
recherche dépassent le plus petit nombre indiqué par searchLimit dans
SearchControl ou par maxSearchResults dans le fichier wimconfig.xml, une
exception MaxResultsExceededException est émise. Si le paramètre searchLimit est
défini, alors countLimit est ignoré. Si countLimit est défini, vous
devez alors configurer searchLimit sur 0.
- timeLimit
- Si le référentiel de profil
prend en charge le délai, il indique la durée maximale de recherche en
milliseconde.
Définition de schéma XML
Vous
trouverez ci-dessous la définition du schéma XML pour l'objet de données SearchControl :
<xsd:complexType name="SearchControl">
<xsd:complexContent>
<xsd:extension base="PropertyControl">
<xsd:sequence>
<xsd:element name="searchBases" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="countLimit" type="xsd:int" />
<xsd:attribute name="searchLimit" type="xsd:int" />
<xsd:attribute name="timeLimit" type="xsd:int" default="0"/>
<xsd:attribute name="expression" type="xsd:string"/>
<xsd:attribute name="returnSubType" type="xsd:boolean" default="true"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
Objet de données exemple
Voici
un exemple d'objet de données SearchControl utilisé dans l'API de recherche. Il lance une requête sur toutes les personnes avec un nom de
famille, Doe. Il demande également à renvoyer les propriétés uid et sn, le
cas échéant.
<wim:controls xsi:type="wim:SearchControl" countLimit="1"
expression="@xsi:type='PersonAccount' and sn='Doe'">
<wim:properties>uid</wim:properties>
<wim:properties>sn</wim:properties>
<wim:searchBases>o=Sales,cn=users,dc=yourco,dc=com</wim:searchBases>
</wim:controls>