Skip to content

$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ées modelName et docId.

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