Erreur lors d'une tentative de fusion de deux records si les informations "clés" sont reprises dans une colonne différente de la première

Bonjour,

Un utilisateur tente de fusionner deux records en voulant garder les informations “clés” du deuxième.
La fusion s’arrête sur une erreur de clé en doublon.

Si l’utilisateur sélectionne les valeurs de clé dans la première colonne, la fusion est correctement effectuée.

La fusion ramène toujours tout dans le premier objet (le row_id de gauche) puis supprime les autres.

Normalement la clé fonctionnelle est grisée et on ne peut pas choisir une autre colonne que la première. Quelle est la clé fonctionnelle de votre objet ? c’est bizarre d’avoir 2 noms suivant la langue en clé.

Il y a un hook qui permet de dire qui est le master isMergeMaster si vous souhaitez forcer qui sera le 1er objet (parmi tous les obj.getSelectedIds()), sinon l’utilisateur doit d’abord sélectionner le master en premier puis les autres au niveau de la liste, on peut fusionner jusqu’à 5 objets en même temps.

Après analyse :

La contrainte de rendre la clé “non sélectionnable” a bien disparu en V4 (le merge est encore en UI legacy dans une iframe).

Je ne sais pas pourquoi mais de toute évidence ça n’est pas compatible avec le fonctionnement de la fusion qui ramène tout sur le premier objet. Là le save tombera systématiquement en erreur puisque les autres colonnes n’ont pas encore été supprimées (duplicate key).

En V5, cet écran a été refait (en responsive) et les radios buttons ne sont pas sélectionnables au niveau de la clé fonctionnelle (on garde la clé fonctionnelle de la 1ere colonne).

Je vais fouiller dans les archives pour voir pourquoi la contrainte a sauté ou si c’est un vieux bug jamais identifié.

Bonjour François,
merci beaucoup pour ton analyse et ton support.
Dans l’immédiat, nous avons deux solutions de contournement (en agissant sur l’ordre d’apparition des éléments de la liste ou en sélectionnant la première valeur de clé et en corrigeant après).
Bruno

Ok tant mieux, mais il y a bien un problème à ce niveau à corriger dans le merge.