Bonjour,
J’ai une contrainte basée sur la condition CONTEXTE:CREATE et elle ne s’applique pas.
En debuggant je vois que le contexte est toujours égal à UPDATE.
Il y avait une raison historique pour simplifier le nombre de contextes du formulaire à créer/tester pour signifier une mise à jour au sens large. Le contexte ne gère pas la combinatoire creation en formulaire ou en liste par exemple. Le contexte aurait dû être pensé séparément de l’affichage mais la UI a évolué pour permettre des creations/mises à jour dans des contextes de liste, popup, pillbox…
En général il suffit juste de tester obj.isNew() ou obj.isCopy() pour savoir s’il s’agit d’une création.
Ou d’utiliser les hooks initCreate/Copy/Update avant affichage, ou preValidate/Create/Update au save.
Désolée François j’ai quand même un comportement bizarre :
j’ai mis mon champ en Invisible
j’ai une contrainte avec expression !obj.isNew() qui le rend Visible
→ mon champ est visible en update (ok) mais aussi en création (pas ok)
→ dans le get metadata je vois que le back renvoie visible = 3
Où est la contrainte inverse qui remet en invisible si isNew() ?
Une contrainte n’a pas de “else”, il faut nécessairement remettre l’objet dans son état d’origine ou implémenter une contrainte “else”.