Nous avons trois objets A, B et B’ (B’ hérite de B) et une relation N-N (simple) entre A et B’.
L’affichage Pillbox des B’ depuis A fonctionne bien.
L’affichage Pillbox des A depuis B’ ne fonctionne pas (affichage d’une liste simple + warning dans les logs system Unsupported pillbox rendering in object BCSIMajorDomainEA, the link is not a simple N,N relationship => Forced to list rendering).
Nous avons utilisé un modèle d’héritage pour une raison assez simple initialement: le hook getUserKeyLabel de B n’a pas connaissance du parent (objet A) -> getParentObject() est null. Si nous avions connaissance depuis B que c’est A qui l’instancie (dans une Pillbox), alors nous n’aurions pas besoin de passer par B’ (héritant de B).
Une pillbox ne fonctionne que si c’est une relation N,N simple = exactement 2 foreign keys clés fonctionnelles obligatoires, je ne vois pas trop le rapport avec un héritage sur A ou B mais il doit y avoir un cas non géré.
Peut on avoir la définition exacte de votre relation N,N “simple” ?
On pourra peut être gérer d’autres cas à partir du moment où la création du lien ne dépend pas d’autres champs obligatoires ou clés non valorisables dans ce genre d’affichage.
Que donne la requête suivante en remplaçant le nom de objetNN :
select o2.obj_name, f.fld_name, o2.obj_dbtable, f.fld_dbname
from m_object o, m_objfield l, m_field f, m_object o2
where o.row_id = l.obf_object_id
and f.row_id = l.obf_field_id
and l.obf_ref_object_id = o2.row_id
and l.obf_ref_field_id is null
and f.fld_dbname is not null
and f.fld_fonctid = '1'
and f.fld_required = '1'
and o.obj_name = 'objetNN'
Qui cherche toutes les FK de la relation et les objets liés.
Si ce n’est pas exactement 2 lignes vers A et B’ alors Simplicité considère que ce n’est pas une N,N simple, et interdit le rendering pillbox (le message dans les logs).