Modèle

Rechercher des composants à travers l’API JS

Pour rechercher des composants via l’API JS, la fonction search des différentes API de services est à disposition ici.

Les requêtes, filtres et critères

Objets :

  • SearchRequest
Fonction Description
addSelect(field) Ajoute un champ à remonter
addFilterClause(filterClause) Ajoute un critère supplémentaire
getFilters() Récupère un tableau contenant l’ensemble des FilterClause
addOrderClause(orderClause) Ajoute un champ sur lequel trier les résultats de recherche
setMax(max) Définit le nombre maximum de résultats à retourner
getMax(max) Récupère le nombre maximum de résultats à retourner
setStart(start) Définit le début de la page de recherche
getStart(start) Récupère le début de la page de recherche
  • AndClause
Fonction Description
addCriterion(criterion) Ajoute un critère de recherche
getCriteria() Récupère un tableau contenant l’ensemble des critères de la clause
  • Criterion
Fonction Description
getName() Récupère le nom du critère
setName(name) Définit le nom du critère
getOperator() Récupère l’opérateur du critère
setOperator(operator) Définit l’opérateur du critère. Les valeurs possibles sont : EQUALS_TO, CONTAINS, LESS_THAN, GREATER_THAN, STARTS_WITH, ENDS_WITH, DISPLAY, DIFFERENT, BETWEEN
getType() Récupère le type du critère
setType(type) Définit le type du critère. Les valeurs possibles sont : STRING, TIMESTAMP, BOOLEAN, INTEGER, CURRENCY
getValues() Récupère les valeurs du critère
addValue(value) Ajoute une valeur au critère
addValues(values) Ajoute un tableau de valeur au critère


Les opérateurs EQUALS_TO et DIFFERENT sont sensibles à la casse (font une différence entre les majuscules et les minuscules).

Les tris

  • OrderClause
Fonction Description
setName(name) Définit le nom du champ utilisé
setType(type) Définit le type du champ : STRING, TIMESTAMP, BOOLEAN, INTEGER, CURRENCY
setAscending(isAscending) Définit si le tri est ascendant ou descendant

Construction d’une requête :

var request = new SearchRequest();
request.setMax(20);
request.setStart(0);

var orderClause = new OrderClause();
orderClause.setName("creationDate");
orderClause.setType("TIMESTAMP");
orderClause.setAscending(true);
request.addOrderClause(orderClause);

var filters = new AndClause();
request.addFilterClause(filters);

var criterion = new Criterion(); 
criterion.setName("Matricule");
criterion.setType("STRING");
criterion.addValue("P0002095");
filters.addCriterion(criterion);

JSAPI.get().document().search(request, function(results)
	{
		// Simple dump of all results
		console.log("results.length=" + results.length);
		for (var i = 0; i < results.length; i++) 
		{
			var result = results[i];
			console.log("id=" + result.getId() + ", name=" + result.getFieldValue("name"));
		}
		// Jump to first document found
		if ( results.length > 0 )
		{
			var result = results[0];
			var id = result.getId();
			JSAPI.get().getNavigationAPI().goToComponentPlace("DOCUMENT", id);
		}
	},
	function(error){
		console.error("Error on document search: " + error);
	});

Il est possible d’obtenir les valeurs d’un résultat de recherche de deux façons différentes :

  • getFieldValue(fieldName) : Récupère toutes les valeurs existantes pour ce champ sous forme de chaîne de caractères. Si le champ contient plusieurs valeurs, celles-ci sont séparées par le caractère §.

  • getFieldValues(fieldName) : Récupère toutes les valeurs existantes pour ce champ sous forme d’un tableau de chaîne de caractères.