Detection de source de création

Bonjour,

Y’a-t-il une méthode dans les hook simplicité qui permet de detecter si l’objet a été créé via UI ou API ?

Sinon quel autre moyen serait préconisé?

On peut détecter le nom de l’instance qui travaille dans les hooks
Vous pouvez tracer getInstanceName() dans le hook preCreate de l’objet.

Suivant son nom, on peut dire dans quel contexte l’objet est utilisé :

  • la UI
  • un tache cron
  • un import en masse
  • un web-service

L’instance commence par un prefix différent par contexte: the_, panel_, ref_, tmp_, cron_, job_, eai_, ws_… ce qui permet à chaque thread/ui/cron… de travailler en // en mémoire.

Vous pouvez créer un champ dans votre objet pour y stockez cette information (au preCreate).
Mais simplicité ne persiste pas le canal/instance de la création dans le timestamp.

1 Like

Super, merci beaucoup !

Il y a aussi des verbes qui testent directement le type d’instance :
isMainInstance (objet UI de mise à jour), isPanelInstance (liste fille), isBatchInstance (cron job)…

vous pouvez aussi créer vos propres instances par code

ObjectDB o = getGrant().getObject(“my_instance_0”, “MyObject”);

et détecter ailleurs que l’instance est “my_instance_0”
très pratique pour faire des traitements particuliers en dehors des instances courantes.

Sinon on peut tester le endpoint de la session courante sur le grant: getGrant().isUI/API/...Enpoint(). Cf. Grant