OJS : utilisation de la fonction « get() » à l'intérieur d'un « fromobject() »

Cet article précise le comportement de la méthode "get()" sous l’instruction "fromobject()".
Thibault GONINMis à jour le 19 Déc 2012

Rappels sur lutilisation de la méthode get()

Pour rappel la méthode get() est définie sur une classe dobjet et prend comme argument lONB ou lID de lobjet recherché.

Exemple :

my_task = "OpxTASK".get(2938820);

La variable my_task représentera lobjet tâche dont lONB est 2938820.

Rappels sur lutilisation de la fonction fromobject()

La fonction fromobject(my_object) permet de restreindre les traitements réalisés sous cette fonction aux objets en relation avec my_object.

Exemple :

var my_project = "OpxPROJECT".get("PROJET01");
fromobject(my_project)
{
  for (var my_activity from "OpxACTIVITY")
  {
     writeln(my_activity.NAME);
  }
}

Ce script va, par exemple, afficher le nom de toutes les activités du projet dont lID est PROJET01.

Description du problème

Lutilisation de la méthode « get » sous un « fromobject » en OJS peut être déroutante si lon ne comprend pas le fonctionnement précis de cette méthode.  En effet une erreur fréquente est de penser que le sous un « fromobject » la méthode « get » va se limiter aux objets en relation avec lobjet du « fromobject ».

En réalité la méthode « get » permet un accès direct à lobjet recherché quelque soit lendroit où elle est utilisé. Ainsi sous un fromobjet la méthode « get » se comportera comme sil ny avait pas de fromobject.