l’objet métier CrbCrePresta a un objet lié CrbCrePrestaData.
je saisi une valeur dans l’attribut date de 1er rdv de CrbCrePresta sans enregistrer.
puis, je saisie les valeurs de l’objet lié “Données spécifiques”.
C’est un comportement normal. La logique est justement inverse car il y a de nombreux autres cas d’usages des listes embarquées et modifiables.
Le “save” de la liste fille embarquée dépend de l’intégrité des données de l’objet parent = donc sauvegarde aussi le parent, car elle peut avoir besoin des données à jour en back :
via getParentObject pour faire des contrôles de données en fonction du parent
ou faire des mises à jour de champs calculés sur le parent (somme de champs de la liste) sans perdre la saisie du parent qui serait modifié
Le save fait donc obligatoirement un save global et recharge l’objet parent = pour afficher les éventuels champs calculés/agrégés sur le parent.
Il faut donc compléter votre objet parent pour pouvoir enregistrer sa liste fille. Votre formulaire est un tout. Si vous saisissez les champs manquants comme indiqué, vous n’aurez aucune perte de données.
si l’enregistrement du père est automatique, je ne vois pas pourquoi la popup “Quitter” apparait.
c’est ça qui perturbe les utilisateurs.
ils n’ont pas cliqué sur “Quitter” mais sur “Enregistrer” dans la liste fille
ok pour la popup de confirmation
mais il reste un pb …
si je fais “Ajouter” dans la liste fille et que je fais “Fermer” je perds ce que j’ai saisi dans le père
Bonsoir,
Le bouton Fermer de la liste fille ne doit pas tenir compte du hasChanged de l’objet père.
On va vérifier, et aussi lui ajouter un “auto-save” pour ne pas perdre la saisie ou afficher des erreurs, et éviter un popup inutile de confirmation.
Je ne reproduis pas le symptome, quand on annule une liste fille dans le formulaire, cela demande bien de confirmer avant de quitter si le parent avait été modifié.
On a ajouté le même traitement que pour le “save” de la liste pour éviter ce popup et enregistrer automatiquement le formulaire parent, s’il y a des erreurs elles s’afficheront.
ok, pour le bouton fermer, c’est corrigé.
Mais j’ai quand même tjrs un pb …
Cas 1- je saisi toutes les données obligatoires du formulaire et de l’objet lié Détail. j’enregistre l’objet lié => tout le formulaire est enregistré
Cas 2 - je ne saisi pas toutes les données obligatoires de mon formulaire ni les données de l’objet Détail => message d’erreur Normal
Très étrange en effet, ça devient compliqué en terme d’UX.
A priori la UI perd son latin, car ne peut pas avoir à la fois certaines données commitées et certaines invalidées en mémoire. On va essayer de reproduire le cas et voir comment faire.
Je ne peux pas reproduire ce problème comme sur la 1ere copie d’écran où il y a le bouton enregistrer sur le parent. Seul le bouton “Save” de la liste fille est accessible si on passe en édition de liste.
L’objet père est sauvegardé automatiquement si et seulement si la liste fille n’a pas d’erreur.
Si on saisie n’importe quoi sur le parent + edit list avec erreur sur une liste liée + save sur la liste (l’autre bouton save du parent est inactif)
La UI affiche les erreurs de lignes, et reste en mode edit-list, le parent n’est pas impacté
Une fois les erreurs de liste corrigées, le save de la liste est ok et tente un auto-save du parent
Là de nouvelles erreurs sont affichées sur le père, mais aucun champ n’est jamais perdu.
Vous devez avoir une autre cinématique ou des choses spécifiques dans le save de la liste fille qui modifie l’objet parent (en back).