Rechercher

Tous les beans avec navigation dans l'arborescence prennent en charge des commandes de recherche identiques, mais les critères de recherche disponibles sont différents pour chaque bean.

Les exemples génériques utilisent le bean Content. Les recherches effectuées dans les arborescences sont sectorisées. La portée de la recherche correspond à la sous-arborescence située sous le noeud sélectionné, le noeud y compris. Si aucun élément n'est sélectionné, la recherche s'étend à l'ensemble de l'arborescence, racine comprise.

Il existe deux commandes de recherche : search et find.La commande search renvoie une liste de correspondances, alors que la commande find génère un résultat s'il existe une seule et unique correspondance dans le cadre de la recherche. En cas de correspondances multiples ou d'absence de correspondance, cette commande échoue. La commande find est utilisée lorsqu'un script doit cesser si le résultat de la recherche ne renvoie pas une correspondance unique. Si le mot clé select est défini sur find, le résultat de la recherche correspond alors au nœud sélectionné.

Exemple Jython :
Content.search(type)
Content.search(type), "by", (value)

Content.find(type)
Content.find(type), "by", (value)

Content.find(type, "select")
Content.find(type, "by", (value, "select")
Exemple Jacl :
$Content search type
$Content search type by value

$Content find type
$Content find type by value

$Content find type select
$Content find type by value select

Le premier argument pour toutes les recherches est le type des noeuds à rechercher. Le type est spécifié par un mot clé, qui ne dépend pas de la casse. Les types disponibles et les mots clés correspondants dépendent du bean. Dans tous les beans, les mots clés all et any sont utilisés dans le cadre des recherches, quel qu'en soit le type. Il existe une rubrique d'aide dédiée aux types de recherche.

Exemple Jython :
# example: return all nodes in the search scope
Content.search all

# example: get help on the available type keywords
Content.help search-types
Exemple Jacl :
# example: return all nodes in the search scope
$Content search all

# example: get help on the available type keywords
$Content help search-types

La sélection de type peut être associée à un critère de recherche supplémentaire, spécifié par un mot clé (by) et une valeur à utiliser pour la comparaison (value). Les critères de recherche disponibles et les mots clés correspondants dépendent du bean. Il existe une rubrique d'aide dédiée aux critères de recherche.

Exemple Jython :
# example: get help on the available by keywords
Content.help("search-criteria")
Exemple Jacl :
# example: get help on the available by keywords
$Content help search-criteria
Les critères de recherche suivants sont courants. D'autres mots clés plus courts sont décrits dans le texte de l'aide sur les critères de recherche du bean concerné.
Tableau 1. Description des critères de recherche communs
Valeur Description
id La valeur est un ID. La recherche porte sur l'objet doté de cet ID.
uniquename Cette valeur est une chaîne. La recherche porte sur l'objet dont la chaîne représente son nom unique.
commonnamehas Cette valeur est une chaîne. La recherche porte sur des objets dont la chaîne représente une sous-chaîne au sein de leur nom commun. La comparaison est insensible à la casse.
commonnameis Cette valeur est une chaîne. La recherche porte sur des objets dont la chaîne représente leur nom usuel. La comparaison est sensible à la casse.
Exemple Jython :
# example: find and select by unique name
Content.find("any", "uniquename", "ibm.portal.Portlets", "select")
Exemple Jacl :
# example: find and select by unique name
$Content find any uniquename "ibm.portal.Portlets" select