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.