Mon objectif était que l’objet vérifie d’abord que le champ n’est pas vide, puis si il n’est pas vide il change la valeur de ce champ.
Sauf que la première contrainte (ordre 100) ne fonctionne pas car pour l’objet, le champ n’est pas vide car je remplace sa valeur dans la contrainte suivante (ordre 110). La preuve est que si je rends inactif la contrainte d’ordre 110, la contrainte d’ordre 100 refonctionne.
C’est selon moi pas logique car la contrainte d’ordre 100 devrait d’abord s’exécuté puis ensuite celle d’ordre 110. Il ne devrait pas y avoir de lien entre ces 2 contraintes qui devraient être indépendante l’une de l’autre.
Avez-vous une idée du problème ?
PS : Les 2 contraintes fonctionnent séparément, mais ensemble celle d’ordre 110 ne fonctionne pas.
Je ne reproduis pas le comportement que vous décrivez.
Les contraintes s’appliquent bien dans l’ordre saisi.
Dans votre 2eme contrainte vous devez tester que l’attribut Commentaire est non vide avant de le concaténer avec login et date.
Vous avez des attributs de type Bloc-note (dans la demo sur le fournisseur l’attribut Commentaires dans la zone Autres) qui ajoute la date heure et le prénom nom de l’utilisateur pour chaque commentaire.
Justement, le but est que la contrainte 100 rende le champ obligatoire et donc non-vide.
Du coup normalement, il n’y a pas besoin de vérifier pour la contrainte 110 que le champ bloc note ne soit pas vide vu que normalement ça ne peut pas être le cas.
Ok, comme c’est ce qui se produit chez moi, cela doit venir d’un autre endroit, mais comme les contraintes fonctionnent chacune séparément, je me dis que ça ne peut pas venir de là.
On va regarder pour mettre des champs Bloc-notes à la place.
C’est ce que nous faisions au début, mais nous voulions utiliser les fonctionnalités prévu par Simplicité. Nous ne pouvons pas finalement utilisé un champ de type bloc-notes (nos utilisateurs ne veulent pas).
Vu que nous avons ce problème de contraintes qui ne veulent pas s’exécuter, nous allons effectivement repasser par code. Merci beaucoup.
PS : Le problème restera cependant toujours présent même si nous n’en connaissons pas l’origine.
Comme dit il fallait tester que votre champ n’est pas vide et cela fonctionne.
Il n’y a pas d’étoile rouge car le champ est obligatoire lors de la transition d’état.
J’ai mis un exemple sur evlValInitEvalComment
Vous pouvez tester avec l’évaluation : AIRRIA (elle se trouve dans l’état 3).
Vous pouvez aller jusqu’à l’état 5 (et le faire passer à l’état 6), pour constater le problème.
Pour clôturer ce sujet (si d’autre utilisateurs veulent la solution) :
Il fallait tester que la valeur ne soit pas null avant de remplir la valeur du champ dans la contrainte d’ordre 110.
Pour le bug, @nathalie m’a indiqué que lorsqu’on a des impacts qui s’exécutent en back uniquement il vaut mieux employer des expressions qui s’exécutent en back aussi.
Voici donc un exemple d’expression utilisé dans la contrainte d’ordre 110 (remplir les champs automatiquement) :