Skip to content

$doc.isLinked

Description

Cette méthode est essentiellement destinée au debug.

Indique si le dossier est "lié" au thread courant.

Un dossier est lié au thread courant lors des notifications et des événements (scripts déclenchés par le modèle d'état). Un dossier lié au thread reste lié au thread, même en cas de fermeture (dans ce cas, il est placé dans le buffer des dossiers temporaires). Cela est nécessaire pour que les références d'objets (dossier, groupes, tuples et champs) restent valides, même en cas de fermeture de dossier, car le traitement est susceptible de devoir agir sur les objets même si ces derniers ont été fermés par le script.

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 serait plus liée au dossier et le rollback ne pourrait 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 éventuelles 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.

Si non défini, le moteur se rabat sur le contexte du dossier courant.

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