Boucle infinie dans getTargetObject sur un objet inliné

Request description

Bonjour,
J’ai un cas très particulier qui génère une boucle infinie à l’affichage d’un form :

  • avoir un business objet A
  • avoir un business objet B inliné attaché à A
  • dans getTargetObject de B, pointer vers A
    → à l’affichage du form de A, B s’affiche en mode “inception”

J’ai contourné en vérifiant le nom de l’instance pour que getTargetObject ne se déclenche qu’en “vraie” liste, donc ce n’est pas urgent pour nous.

Merci d’avance pour votre aide !
Emmanuelle

	@Override
	public String[] getTargetObject(String rowId, String[] row) {
	    
	    String target = "DemoMain";
	    
	    AppLog.info("getTargetObject getinstance " + getInstanceName(), getGrant());
		
	    String t[] = new String[3];
	    t[0] = target; // target object
	    t[1] = "the_ajax_"+target; // target instance
	    t[2] = getFieldValue("demoInlinedDemoMainId"); // target id
	    return t;

	}

[Platform]
Status=OK
Version=6.3.7-preview
Variant=full
BuiltOn=2026-04-01 18:33

Bonjour,

C’est joli. Je ne comprends pas le comportement attendu puisque ton paramétrage est par construction une boucle infinie.

Le formulaire de A affiche la liste B en relation 0,1 inliné, donc la UI refait un get du record de B dont le getTargetObject redirige vers l’affichage de A…

Fut un temps la UI ne permettait pas de parcourir/afficher récursivement les liens de l’objet inliné. Mais on avait du faire cette évolution pour adresser des besoins de voir dans la boite de pandore les “objets inlinés d’objets inlinés” ou de “panels en liste d’objets inlinés”.

Bref sortir de la boucle ne peut effectivement se faire que par code au niveau du getTargetObject pour qu’à un moment donné B soit B.

D’accord je comprends, je pensais bêtement que le getTargetObject se déclenchait via le clic sur la ligne et pas via le get :sweat_smile: c’est pourtant logique.
Mon paramétrage vise à afficher le père lorsqu’on clique sur un des inlined présentés en liste (on ne veut pas afficher l’inlined en form seul)
Par contre, si on accède directement au père, l’inlined doit bien s’afficher en form dans l’onglet.
Mon contournement n’est donc pas un contournement mais la façon correcte d’implémenter ça.

Je clos ce ticket, bonne journée !

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.