ERR_ENUM dans le changement d'un champ enum via code java

Bonjour,

J’ai un probleme lors de ma modification de mon champ enumeration via code java
Cela marchait très bien au début, la modification était bien prise en compte et ne me renvoyait pas de message
Puis sans changement, ni modification de code, je reçois maintenant des
Error||Event: ERR_ENUM: Status

J’ai clear cache, j’ai fais plusieurs tentative mais je reçois toujours ce message,
Sauriez-vous pour quelle raison ? Ou du moins comment corriger ce probleme ?

[Platform]
Status=OK
Version=4.0.P24
BuiltOn=2020-10-14 23:22 (revision 3c63448f648587d9a89ec04d597946d26e4f7937)
DBPatchLevel=4.0;P24;ea6f43842a6d36e31dbdd451f58ac210

Cordialement,
KWu

Est-ce que votre attribut énuméré porte un state model ?

Merci de votre réponse,
Comment voit-on si le champ a un state model ?
On cherchant la config de mon champ, je ne vois où mettre cette info

Vous n’aurez pas l’info au niveau de l’attribut.

Un state model est associé à une liste de valeur au niveau du menu “Business process” (objets “State” et “State transition”).

Si votre liste de valeur a un state model associé les seuls changements de valeurs possibles sont ceux prévus par le state model = transition définie et habilitée au user qui fait l’update.

Si elle n’a pas de de state model c’est simplement que vous essayez de valoriser votre attribut avec une valeur qui n’est pas dans la liste (on parle ici bien du code, pas du libellé traduit)

Ah oui les state transition, oui j’ai fais toute la configuration qu’il faut pour les transitions, et ca marchait au début puis au bout d’un moment, je reçois ce genre d’erreur

Je ne suis pas sûr de comprendre ce que vous voulez dire exactement par “au début” et “au bout d’un moment”…

En fait je pense que ça dépend du record et/ou que vous avez du code ou des contraintes qui altère la définition de votre objet (sans avoir implémenté la logique “par defaut” qui remet l’objet dans son état initial, pour mémoire une instance d’objet reste dans le cache dans l’état où on l’a mis, il n’y a pas de reload implicite) et/ou que vous ne valorisez pas les old values (si on parle de code), etc.

Dans “au début” et “au bout d’un moment” je veux dire que le code pour faire le changement dans la liste énuméré a été fait il y a 1 à 2semaines auparavant et fonctionnait bien puis aujourd’hui, j’ai reçu une information m’indiquant que la modification ne se faisait plus et en voyant les logs, j’ai le message ERR_ENUM: Status

et je ne sais pas pourquoi et un clear cache ne semble pas corrigé le soucis

Si ça “revient à la normale” avec un clear cache ça semble confirmer les pistes que j’indique.

Un check de transition d’état a besoin des old values, si on parle de code, selon la manière dont ce code est écrit ça peut marcher parfois (genre la 1ère fois) pour des raisons purement miraculeuses.

Sinon la piste de l’objet modifié par du code ou des contraintes mais sans la logique inverse (genre un changement conditionnel sur la liste de valeur mais rien qui fait revenir sur la liste par défaut dans un “else”) ça peut marcher certaines fois et pas d’autres, comme dans le cas précédent quand ça marche ça relève du miracle.

Sinon des effets liées à des héritages subtils ou des isStateTransitionEnable subtils ?

Etc.

Si on parle de code mettez des traces avant/après (ou mettez vous au debugger) pour comprendre pourquoi ce message est légitime dans les cas où il se produit

Sinon inhibez vos contraintes / code / state model de votre objet et réactivez les un par un pour voir à quel moment votre problème apparait

Etc.