Les points d'ancrage constituent des points d'entrée, des déclencheurs, pour des scripts qui s'exécutent aux heures indiquées pour régir la façon dont les utilisateurs travaillent dans un environnement Rational ClearQuest.
Les points d'ancrage sont exécutés avec les droits utilisateur de super-utilisateur et ne sont donc pas soumis aux restrictions habituelles de contrôle d'accès ou de comportement de zone. Vous pouvez utiliser des points d'ancrage pour redéfinir la valeur de zones qui sont habituellement en lecture seule. (En revanche, vous ne pouvez pas réinitialiser des zones système, telles que la zone Historique.) En outre, les zones obligatoires le restent. Pour plus d'informations, voir IBM Rational ClearQuest - Référence de l'API et Actions et contrôle d'accès.
Quatre types de points d'ancrage sont pris en charge :
Les points d'ancrage de zone permettent de vérifier la valeur d'une zone au moment de l'exécution et de redéfinir celle d'autres zones, si besoin est. Vous pouvez, par exemple, vérifier le contenu d'une zone ou lui affecter une valeur par défaut.
Les points d'ancrage d'action permettent d'exécuter des tâches à certains points cruciaux du cycle de vie d'un enregistrement. En général, les points d'ancrage d'action sont associés à des événements qui s'appliquent à l'enregistrement complet. Vous pouvez, par exemple, contrôler la validité d'un enregistrement dans sa totalité et envoyer des notifications lorsque l'action est terminée.
Les scripts d'enregistrement permettent d'effectuer des tâches spécifiques en cours d'exécution. Ils sont liés à un type d'enregistrement spécifique et sont généralement associés à des contrôles de formulaires.
Les scripts globaux permettent de définir des bibliothèques de routines pouvant être partagées par tous les types d'enregistrement du schéma. Par exemple, vous pouvez écrire une sous-routine (notification par courrier électronique, etc.) pouvant être appelée à partir de n'importe quel point d'ancrage faisant partie de tout type d'enregistrement.
Vous pouvez écrire les points d'ancrage en langage VBScript (pour Windows) et en langage Perl (pour les systèmes UNIX et Windows). Par défaut, les points d'ancrage s'exécutent en VBScript sous Windows. Pour des informations sur l'exécution des points d'ancrage dans le langage Perl pour Windows, voir Langages de script.
Vous pouvez ajouter des scripts écrits en langage VBScript ou Perl aux points d'ancrage de zone et d'action. Si vous créez des scripts globaux ou des scripts d'enregistrement, vous devez utiliser l'un de ces langages.
S'il peut s'avérer pratique d'écrire à la fois des scripts en VBScript et en Perl dans un même schéma, Toutefois, un schéma exécute uniquement des scripts dans le langage approprié. Pour obtenir plus d'informations, consultez Langages de script).
Pour écrire ou éditer des scripts, utilisez l'éditeur de script. Lorsque vous définissez un nouveau script, Designer ajoute la syntaxe d'appel de ce point d'ancrage à la fenêtre de l'éditeur de Script. La syntaxe d'appel ne peut pas être éditée. Designer fournit également des exemples de lignes de texte, que vous pouvez éditer au besoin. (Le texte initial est mis en commentaire et ne s'exécute que si vous supprimez les marques de mise en commentaire.)
Designer fournit un éditeur de script différent pour VBScript et Perl. Le type de l'éditeur apparaît dans la barre de titre de la fenêtre. Vérifiez que vous avez ouvert l'éditeur approprié avant d'écrire votre code.
La procédure d'écriture des points d'ancrage en VBScript et Perl est simplifiée, car le contexte d'exploitation est cohérent. Avant qu'un point d'ancrage n'appelle un script VBScript ou Perl, le logiciel Rational ClearQuest crée un objet Session et connecte l'utilisateur. Tous les points d'ancrage (scripts globaux compris) s'exécutant à partir de l'enregistrement en cours, vous disposez d'un objet Entity qui correspond à cet enregistrement. (Un script global partage l'objet Entity associé au point d'ancrage l'ayant appelé).
Dans un script, il est possible d'appeler les méthodes Entity sans indiquer d'identifiant principal. Par exemple, pour appeler la méthode GetSession d'Entity, vous pouvez utiliser le code suivant :
set curSession = GetSession
Lorsque vous procédez de cette manière, le logiciel Rational ClearQuest suppose que vous appelez une méthode de l'objet Entity implicite transmis au point d'ancrage. Si vous souhaitez inclure une référence explicite à cet objet Entity, vous pouvez utiliser le nom du type d'enregistrement comme identificateur de l'objet. Cela permet d'améliorer la lisibilité du code lorsque celui-ci gère plusieurs objets Entity en même temps. C'est le cas dans l'exemple suivant, où l'un des objets Entity est marqué comme étant un double d'un autre :
set curSession = GetSession idName = GetFieldValue("id").GetValue set currentObj = curSession.GetEntity("defect", idName) 'Marquer l'entité avec ID="SAMPL00000031" comme un double de cette entité. ' Utiliser l'action nommée "duplicate". set dupEntityObj = curSession.GetEntity("defect", "SAMPL00000031") curSession.MarkEntityAsDuplicate dupEntityObj, currentObj, "duplicate"
Les scripts pouvant influencer le comportement d'une zone, vous devez concevoir et tester le code de vos points d'ancrage avec soin. Par exemple, si un point d'ancrage impose qu'une zone donnée contienne une valeur, cette zone devient obligatoire même si son comportement n'est pas défini sur MANDATORY.
S'il n'est pas écrit correctement, le code d'un point d'ancrage peut provoquer des erreurs au moment de l'exécution. Un point d'ancrage sera compilé lors de la validation du schéma et toute erreur de syntaxe ou de grammaire sera indiquée.Testez le schéma sur une base de données de test avant de le restituer et sauvegardez la base de données utilisateur avant d'appliquer les changements apportés au schéma. Pour plus d'informations, voir Création d'une base de données de test.
Lorsque vous planifiez vos points d'ancrage, tenez compte des éléments suivants :
Nombre de problèmes liés aux points d'ancrage exécutés en environnement répliqué sont les mêmes qui concernent le verrouillage des bases de données de site unique. Le test fonctionnel des points d'ancrage est également identique sur un site unique ou en environnement répliqué. Toutefois, l'exécution de certains points d'ancrage ClearQuest peut être différente en environnement répliqué et en environnement sur site unique. Par exemple, les points d'ancrage qui mettent à jour d'autres enregistrements dans le contexte d'action d'un enregistrement peuvent rencontrer des erreurs si l'autre enregistrement n'est pas régi sur le site en cours, l'empêchant d'être modifié.
Chaque enregistrement de base de données peut être mis à jour uniquement sur le site sur lequel il est actuellement régi (qui est signalé par le nom du site de réplique dans la zone ratl_mastership de l'enregistrement). Dans des applications complexes, il se peut que plusieurs enregistrements soient mis à jour en tant qu'éléments d'une transaction complexe. Lors de la conception et du test des points d'ancrage d'un environnement répliqué, ces principes doivent être pris en compte.
Voir également Verrouillage d'enregistrement et Contrôle de validité des schémas .
Lorsque vous installez un package, des points d'ancrage de zone ou des scripts d'enregistrement peuvent être ajoutés au schéma. Ces scripts font partie du package et non du code des points d'ancrage.
Les scripts intégrés à des packages ne peuvent être ni supprimés ni modifiés ; ils ne font pas partie du code d'un schéma. Il n'existe donc aucun lien entre le langage par défaut que vous avez choisi pour vos points d'ancrage et celui qui est utilisé pour l'implémentation des points d'ancrage intégrés à des packages.