Points d'ancrage

Les points d'ancrage sont des points d'entrée, tels que des déclencheurs, pour des scripts qui s'exécutent à des moments spécifiques pour contrôler le travail des utilisateurs dans un environnement Rational ClearQuest.

Les points d'ancrage sont exécutés avec le privilège 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 History.) En outre, les zones obligatoires le restent. Pour plus d'informations, voir IBM Rational ClearQuest API Reference et ../com.ibm.rational.clearquest.apiref.doc/c_actns_access_ctrl.htm.

Quatre types de points d'ancrage sont pris en charge :

Langages de script pour les points d'ancrage

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, ce dernier exécutera uniquement les scripts écrits dans le langage approprié (voir 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.

Contexte d'utilisation des scripts de point d'ancrage

Le processus d'écriture des points d'ancrage VBScript et Perl est simplifiée, car le contexte d'utilisation 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.

Remarques sur le test des points d'ancrage

S'il n'est pas écrit correctement, le code d'un point d'ancrage peut provoquer des erreurs au moment de l'exécution. Pour tester des points d'ancrage, cliquez sur Hooks > Compile dans l'éditeur de script de Designer, puis procédez au débogage du code. Le contrôle de validité du schéma ne détecte pas les erreurs de code contenues dans un point d'ancrage et ne garantit aucunement qu'un schéma fonctionne comme vous l'attendez. Testez le schéma sur une base de données de test avant de l'archiver 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 :

Points d'ancrage dans un environnement dupliqué

De nombreux problèmes liés aux points d'ancrage exécutés dans un environnement dupliqué sont les mêmes que ceux des verrouillages de base de données de site unique. Le test fonctionnel des points d'ancrage est également le même dans un site unique ou dans un environnement dupliqué. Toutefois, l'exécution de certains points d'ancrage ClearQuest peut être différente dans un environnement dupliqué de celle dans un environnement de site unique. Par exemple, des points d'ancrage qui mettent à jour d'autres enregistrements dans un contexte d'action de l'enregistrement peuvent rencontrer des erreurs si l'autre enregistrement n'est pas géré sur le site courant et par conséquent n'est pas modifiable.

Chaque enregistrement de base de données peut être mis à jour uniquement sur le site sur lequel il est actuellement géré (qui est indiqué par le nom de 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 dupliqué, ces principes doivent être pris en compte.

Pour des applications complexes dans un environnement dupliqué avec des enregistrements liés, votre schéma doit gérer les cas suivants :
  • L'enregistrement parent n'est pas modifiable pour des raisons de maîtrise. Par exemple, l'enregistrement parent n'est pas modifiable s'il n'est pas géré sur le site courant.
  • L'enregistrement parent est modifiable (géré sur le site courant) mais un enregistrement subalterne n'est pas modifiable pour des raisons de maîtrise (non géré sur le site courant).

Voir également Verrouillage de base de données et Contrôle de validité des schémas .

Scripts installés par des packages

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.



Retour d'informations