Valeur d'un champ incohérente

Bonjour

J’ai un problème de valeur incohérente dans un champ :

J’ai un champ dans un formulaire (de type texte) dans lequel j’ai écrit la valeur “qwertz” à la main.
J’ai une action (un bouton) dans ce même formulaire qui doit changer la valeur de ce champ.

Cette action fait deux choses, il set une nouvelle valeur :
setFieldValue(“monAttribut”, “abc”);

Puis affiche la valeur de cet attibut :
return getField(“monAttribut”).getValue();

Or la valeur retournée par cette action est bien “abc”, mais la valeur affichée dans le champ du formulaire est toujours “qwertz”.
A part cette action rien n’interagit avec cet attribut (et ce problème est similaire pour tout les autres attributs du formulaire).

Que dois-je faire pour qu’ils soient identiques ?

Votre action fait-elle un save ?

Non, de quelle façon doit-je utiliser le save ? Pouvez-vous donner un exemple ?

Il suffit d’appeler save() après vos setFieldValue(...) dans la méthode de votre action…

Pour avoir une meilleure maîtrise des éventuelles erreurs de validate et/ou de save vous pouvez plutôt utiliser le wrapper BusinessObjectTool, genre:

try {
    new BusinessObjectTool(this).validateAndSave();
} catch (Exception e) {
    // Do something with exception
}

Merci, ça marche mieux maintenant.

Parfait, sinon quand vous parlez d’action il faudra nous préciser son type car le fonctionnement de Simplicité diffère:

  • Une Action de type “back” sur un formulaire commence par faire un “save” du formulaire en base afin d’avoir les données disponibles côté serveur au moment de l’appel de la méthode de l’action. Si le save ne passe pas la méthode de l’action n’est pas appelée.

  • Une Action de type “front” reste dans la page et n’interprète que l’URL ou le javascript de celle-ci.