Modèle

Rechercher des composants à travers l'API JS

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

Les requêtes, filtres et critères

Objets :

  • SearchRequest
Fonctions Description
addSelect(place) Ajoute un champ à remonter
addFilterClause(filterClause) Ajoute un critère supplémentaire
getFilters() Retourne un tableau contenant l’ensemble des FilterClause
addOrder(orderClause) Ajoute un champ sur lequel trier les résultats de recherche
setMax(max) Défini le nombre maximum de résultats à retourner
setStart(start) Défini le début de la page de recherche
  • AndClause
Fonctions Description
addCriterion(criterion) Ajoute un critère de recherche
getCriteria() Retourne un tableau contenant l’ensemble des critères de la clause
  • Criterion
Fonctions Description
getName() Retourne le nom du critère
setName(name) Défini le nom du critère
getOperator() Retourne l’opérateur du critère
setOperator(operator) Défini 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() Retourne le type du critère
setType(type) Défini 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 tris

  • OrderClause
Fonctions Description
setName(name) Défini le nom du champ utilisé
setType(type) Défini le type du champ : STRING, TIMESTAMP, BOOLEAN, INTEGER, CURRENCY
setAscending(isAscending) Défini 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);

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) : Retourne toutes les valeurs existantes pour ce champ sous forme de chaine de caractère. Si le champ contient plusieurs valeurs, celles-ci sont séparées par le caractère §.

  • getFieldValues(fieldName) : Retourne toutes les valeurs existantes pour ce champ sous forme d’un tableau de chaine de caractère.