Get avant première création pour un objet inliné

Request description

Bonjour,
Je constate une différence de comportement entre la 6.3.9 et la 6.3.10 : lors de la création d’un objet inliné, on passe dans le get avant que celui ci ne soit effectivement créé.

Mode opératoire :

  • avoir un objet A avec un objet B inliné
  • surcharger le getTargetObject de B et mettre un log
  • créer une instance de A
    → dans getTargetObject, on constate qu’on passe avant la création de B. Le rowId de B = 0 et ses valeurs sont nulles.

J’ai contourné en testant le rowId avant de faire la suite du getTargetObject, mais le problème s’est déplacé dans isUpdateEnable, puis dans un autre hook non identifié car pas surchargé chez moi.
Dans tous les cas, la création finit en erreur.

Si je refais le même test, je n’ai plus le souci.

Merci d’avance pour votre aide !
Emmanuelle

Bonjour,

Il n’y a pas eu de changement à ce niveau ou alors c’est un effet indirect d’une autre cause.

$ui.saveForm
Suite à un autre de tes posts, on avait juste revu l’algo il y a qq mois pour ne pas sauver les objets inlinés si le parent avait une erreur mais pour conserver quand même les données saisies à l’écran.

La création de l’objet inliné, si l’objet parent a bien été créé, ne passe pas par un getForCreate préalable, ça fait juste un readValues + save. Ce qui a changé ce sont les appels de hooks

  • pour séparer le nouveau form.onread dans readForm
  • de form.beforesave dans saveObject

Il faudrait mettre un point d’arrêt sur ce get pour voir qui l’appelle. Vérifier ce que font ces hooks s’il y en a.

En soit, le getTargetObject peut être appelé même en création et sans valeur pour savoir depuis lequel “target” on fera la création quand row_id=0. Donc plutôt à l’ouverture du formulaire de création.

Bonjour François,

Je viens de voir en faisant un pull de mon module sur une 6.3.9 que ce n’est pas la version de Simplicité mais celle de mon projet qui fait la différence.
C’est peut-être une bêtise de mon côté, je regarde plus précisément et je reviens !

Emmanuelle

J’ai trouvé la cause du problème, c’était moi :grin:

J’avais mis la clé vers le père en lecture seule pour éviter que les utilisateurs puissent le modifier en Edit list. Je ne sais pas pourquoi ça ne posait problème qu’à la première création, j’ai sûrement quelque chose qui le remet en édition par la suite.
En tout cas c’est ce qui faisait faire n’importe quoi à mes hooks derrière.

Je m’auto solutionne, toutes mes excuses pour le dérangement !

Emmanuelle