Identification du field FK de recherche

Bonjour,

Nous avons sur un de nos objets, deux liens FK qui pointe vers le même objet.

Des RG différentes s’appliquent pour la recherche (filtre sur un millésime différent).

Pouvez-vous m’indiquer une méthode pour déterminer quel lien est sélectionné, afin de conditionner ma searshSpec ?

Merci d’avance
Jean-Baptiste

Simplicité aliase les tables jointes en t_<nom logique de la FK> dans ses requêtes SQL
Donc comme vos deux FK ont des noms différents il n’y a pas d’ambiguité si vous utilisez l’alias (ce qu’il convient de faire de toute façon dans tous les cas, l’alias de la table de l’objet courant étant t)

ex:

ObjectField fk = ...;
setSearchSepc("t_" + fk.getName() + ".my_linked_object_column_name = '" + Tool.toSQL(...) +  "'");

Dans le initRefSelect qui est appelé lord de la recherche d’une référence, on peut ajouter des filtres en utilisant :’

  • getParentObject() qui pointe sur l’objet parent qui contient les FK références
  • getParentObjectRefField() qui est le nom de la foreign-key de cet objet à l’origine de la recherche

Cette méthode devrait vous permettre de différencier les 2 FK.

Merci pour vos réponses