$data.set
¶
Alias: $data.setData
Description¶
Enregistre la valeur d'un champ d'un dossier ouvert.
Attention, la méthode enregistre la valeur en mémoire uniquement.
L'enregistrement en base de données n'est pas immédiat. Il est effectué soit
en invoquant $data.flush
, soit à la fermeture du dossier par
$doc.close
ou $doc.closeAll
,
soit lors de l'enregistrement du dossier par l'utilisateur après l'exécution
du script, c'est-à-dire lorsque l'utilisateur cliquera sur "Enregistrer" ou
"Fermer" lors de sa prochaine requête "POST" (à condition bien sur que ce
"POST" porte sur le bon dossier).
Syntaxe¶
$data.set( context , value [ , options ] )
Paramètres¶
context
string / map- Expression de contexte permettant d'identifier le champ à mettre à jour
value
any- Valeur à enregistrer
options
map-
Map d'options relatives à la modification de champ. Les options reconnues sont:
ignoreValidation
boolean- Flag
true
/false
demandant de ne pas effectuer les contrôles de validation de la valeur, c'est-à-dire de ne pas appliquer les contrôles de validation définis dans la descript pour le champ. Par défaut ce flag estfalse
. checkPolicies
boolean- Flag indiquant de vérifier les policies avant traitement. Par défaut
le flag est à
false
. Est sans effet si l'application n'utilise pas de policies.
Retour¶
Retourne true
si la mise à jour a réussi, sinon false
Exemple¶
Exemple simple de mise à jour d'un champ.
1 |
|
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.
1 2 |
|
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
.
1 2 |
|