J’ai une action qui sert de transition d’état entre l’état 1 et 2.
Lorsque je clique dessus, j’affiche dans les logs les valeurs contenues dans les champs de mon formulaire, mais le problème, c’est que même si je rentre des valeurs et que j’appuie sur l’action, la valeur affichée dans les logs est vide.
J’affiche la valeur de mon champ dans les logs pour vérifier si l’action prend bien en compte mon formulaire
C’est vide et aucune valeur n’est affichée. J’ai l’impression que mon action prend en compte uniquement la valeur enregistrer dans le champ mais pas la valeur actuelle (celle qui n’a pas encore été enregistrer). La preuve est que si je sauvegarde mon formulaire avant d’appuyer sur l’action, ma valeur est bien prise en compte. Mais si j’essaye de la modifier par une autre valeur et que j’appuie sur l’action avant de cliquer sur le bouton “Enregistrer”, j’ai toujours l’ancienne valeur, mais pas la nouvelle.
Je voudrais vraiment ne pas avoir à cliquer sur “enregistrer” avant de cliquer sur mon action et que ce soit l’action qui enregistre pour moi. Avez-vous une idée ?
On parle bien d’une action de transition d’état ou d’une action custom ?
Car une action de transition d’état standard enregistre bien le formulaire avant de faire la transition.
A nouveau cf. la demo sur l’objet DemoOrder ou DemoContact => celle-ci est conçue pour servir d’exemple pour les mécanismes standards usuels de la plateforme => comparez vos paramétrages avec ceux de la demo.
J’ai déjà comparé avec une autre transition d’état qui de mon coté fonctionne bien comme je voudrais.
(PS: j’ai même copié la transition d’état qui fonctionne en changeant juste les états et l’action pour être sûr que tout fonctionne. Mais rien n’y fait).
J’ai passé pas mal de temps à les comparer pour savoir pourquoi l’une fonctionne et pas l’autre. Par contre je ne pense pas que le problème vient de l’enregistrement mais plutôt du fait que quand je clique sur l’action qui ne fonctionne pas, je récupère pas la valeur actuelle renseigner dans le champ, mais plutôt la valeur enregistrer en base de données.
Pour être plus précis :
1 - J’écris Paris dans le champ “Ville”
2 - Je clique sur mon action
3 - La valeur du champs retourner est nulle au lieu de Paris
4 - Je recharge la page
5 - J’écris Paris dans le champ “Ville”
6 - J’enregistre
7 - Je supprime la valeur dans le champ “Ville”
8- Je clique sur mon action
9 - La valeur du champ retourner est Paris au lieu de nulle.
Votre action a un type d’exécution “Front” (i.e. coté UI donc appel d’une URL ou execution d’un traitement JavaScript custom avant sauvegarde du formulaire)
Une action de transition d’état doit avoir un type d’exécution “None” (i.e. ni traitement custom coté UI ni traitement custom coté serveur).
Vérifiez que vous n’avez pas du JS ou un nom de méthode résiduel en la repassant temporairement en “Front” puis “Back”
Un action de transition d’état nominale est nécessairement de type “Aucun” sans méthode ou traitement JS.
Ensuite, vous avez peut être des contraintes ou du code qui rend votre attribut non modifiable à un “mauvais” moment = trop tôt (un attribut non modifiable au moment de l’enregistrement n’est - légitimement - pas pris en compte à l’enregistrement). Dans ce cas essayez d’inhiber votre code (en le mettant en commentaires) et/ou vos contraintes (avec un ordre négatif) pour cerner ce qui pose pb.
Ok mais des contraintes en négatif ne s’exécutent plus du tout => il faut donc plutôt revoir les conditions d’exécution de ces contraintes pour au ça fasse ce que vous voulez