$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¶
contextstring / 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éesmodelNameetdocId.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