Aller au contenu

$data.setFilter

Description

Définit ou modifie le filtre d'un groupe.

La méthode joue globalement le même rôle que la fonction de filtre associée à l'action `arrange'.

Syntaxe

$data.set( context , filter [ , options ] )

Paramètres

context string / map
Expression de contexte permettant d'identifier le groupe de destination
value any
Règle de filtre
options map

Map d'options relatives à la modification de champ. Les options reconnues sont:

force boolean
Flag permettant de forcer la mise à jour d'une règle d'arrangement non personnalisable, c'est-à-dire lorsque l'élément <arrangement> du groupe est défini avec customizable="false".
ignorePolicies boolean

Flag indiquant de ne pas tenir compte des policies lors du traitement.

Par défaut, les policies sont vérifiées si l'application gère des policies et si le thread courant est un thread "client", c'est-à-dire un thread initié par une requête du client (en réalité l'usage de cette méthode en-dehors d'un thread "client" ne fait pas vraiment sens).

notify boolean
Flag true/false indiquant si le moteur doit déclencher la notification doc-arrange. Par défaut le flag est false.
notificationParams map

Paramètres supplémentaires à passer lors de la notification doc-arrange. N'est pris en compte que lorsque notify est true.

Le paramètre attendu est un map de clés-valeurs. Les clés modelName, docId et groupName sont réservées et renseignées automatiquement par la méthode.

Le fait de spécifier des paramètres de notification active automatiquement l'option notify (pour autant qu'elle ne soit pas explicitement définie à false).

Retour

Retourne true si la mise à jour a réussi, sinon false

Exemple

Exemple simple de mise à jour d'un champ.

$data.set("personne[12].base[12].nom", "Dupont");

Illustration du comportement lorsque l'on tente d'inscrire une valeur inappropriée. Dans l'exemple ci-dessous, le champ "code" attend une valeur textuelle de 5 caractères max, mais nous allons tenter de lui passe une valeur plus longue.

$data.set("code", "abcdefghijkl");
$logger.info(#code);        // -> retourne null

Contexte

L'exemple part du principe que le contexte courant est celui du dossier contenant le champ, raison pour laquelle l'expression de contexte qui désigne le champ ne comporte pas d'élément relatif au modèle et au groupe.

L'expression #code retourne null car la valeur n'est pas adaptée au champ et ne peut pas y être stockée. Toutefois, la valeur "abcdefghijkl" n'est pas simplement ignorée. Elle est placée dans un buffer en mémoire et affichée à l'écran en indiquant qu'elle doit être corrigée. Ici le moteur applique une mécanique qui est également en place pour les valeurs provenant d'un formulaire HTML : une valeur inadaptée n'est pas simplement ignorée. Elle est certes non enregistrée en base de données (cela provoquerait une erreur SQL ou un troncage de valeur), mais elle reste présente en mémoire pour permettre à l'utilisateur de la corriger.

Il est possible de passer outre le contrôle de validité de la valeur au moyen de l'option ignoreValidation.

$data.set("code", "abcdefghijkl", { ignoreValidation: true });
$logger.info(#code);        // -> retourne "abcdefghijkl"