$doc.isLinked
¶
Description¶
Indique si le dossier est "lié" au thread courant. Cette méthode est essentiellement destinée au debug.
Un dossier lié au thread courant ne peut pas être détaché du thread courant car ce dernier conserve une référence mémoire sur le dossier. Cela arrive dans certains cas très particuliers où le moteur autorise l'évaluation d'un script, mais a besoin de conserver une référence sur l'espace mémoire occupé par le dossier. Or si le script en question ferme le dossier, cela aurait pour effet de délier le dossier du thread et ce dernier référencerait des champs ou des tuples qui ne sont plus liés à un dossier.
Pour comprendre, prenons le cas d'un script évalué via l'événement onenter
associé à un état. Le moteur doit pouvoir assurer un rollback du changement
d'état dans le cas où le script invoque
$thread.abortNotifiedAction()
. Or si
dans le même temps le script ferme le dossier, la référence mémoire du champ
ne sera plus liée au dossier et le rollback ne pourra pas se faire. C'est
pourquoi le moteur force le dossier à être lié au thread pendant
l'évaluation du script. Lorsque celui-ci ferme le dossier, ce dernier est
bien retiré de la liste des dossiers ouverts, mais il reste conservé en
mémoire afin de pouvoir procéder aux éventuels corrections post exécution.
Syntaxe¶
$doc.isLinked( context )
Paramètres¶
context
string / map- Object décrivant le contexte. Le paramètre peut désigner soit un
contexte (exprimé en tant que string en clair, p.ex.
"vendeur[123]"
ou sous forme de hash) ou un map décrivant le contexte. Dans ce cas, le map doit a minima contenir une valeur pour les entréesmodelName
etdocId
.
Retour¶
Retourne true
si le dossier référencé par le contexte est lié au thread,
false
s'il n'est pas lié, ou null
si le dossier n'est pas ouvert ou si
le contexte n'est pas valide.
Exemple¶
Non disponible