Une action front pouvant être appelée avec des champs variables (via une simple map champ/valeur donc sans Attributs d’action prédéfinis), un traitement avait été ajouté pour retirer les champs absents à chaque nouvel appel de l’action.
Peux-tu nous indiquer quels sont les paramètres envoyés dans le call ajax de l’action côté front ?
A mon avis, le champ est absent de la requête (si non renseigné) en front et du coup de back le retire à l’appel suivant.
Essaye de mettre l’organisation obligatoire pour voir si le champ disparait.
Si c’est ça le problème, il nous faudra corriger le front pour envoyer “vide”.
En attenant le correctif, tu pourras toujours mémoriser (au premier appel) et remettre l’attribut par code dans l’initAction via action.addConfirmField(lang, field) si absent.
D’accord en effet, on passe l’id mais pas le champ ramené lors du premier appel
Je vais appliquer le contournement que tu proposes, merci beaucoup.
[EDIT]
Le passage du champ en obligatoire ne règle pas le souci.
addConfirmField permet bien au champ d’apparaître, avec deux limites
le champ apparaît en fin de formulaire alors qu’il était en tête au premier appel
je suis obligée, je pense, d’utiliser un champ lié à un objet car la méthode demande un ObjectField (jusqu’ici j’avais créé des champs spécifiques à mon action)
En tout cas cela nous dépanne en attendant le correctif, ce n’est donc pas urgent.
Problème reproduit, le front optimise les données envoyées.
On va corriger pour ne pas retirer en back les “vrais” attributs d’action, mais bien ceux issus de l’ancienne API via Map.
Tu peux aussi insérer le champ directement dans la liste action.getConfirmFields(lang)
private ObjectField myfield = null;
public void initAction(Action action) {
// ...
ObjectField f = action.getConfirmField(lang, "myField");
if (f!=null)
myfield = f;
else if (myfield!=null) // insert at 2
action.getConfirmFields(lang).add(2, myfield);
// ...
}
Le pb est assez majeur pour qu’on relivre rapidement.