Prise en charge d'un jeu de caractères local mixte ou d'une base de données multilingue UTF-8

Cette rubrique fournit des instructions concernant la prise en charge du déploiement d'un jeu de caractères local mixte ou d'une base de données multilingue UTF-8 (format de transformation d'Unicode 8 bits).
Si vous travaillez dans un environnement dans lequel plusieurs ordinateurs utilisant des jeux de caractères locaux différents se connectent au même ensemble de bases de données Rational ClearQuest ou si vous avez sélectionné la page de codes de données UTF-8 ClearQuest (65001) pour votre ensemble de bases de données, vous devez accorder une attention particulière aux problèmes de représentation des caractères suivants :

Configuration du jeu de caractères local

Le jeu de caractères local est celui qui est utilisé pour saisir et afficher des données dans l'interpréteur de commandes du système d'exploitation client. Sous UNIX, il est défini par la variable d'environnement LANG. Sous Windows, il est contrôlé par les paramètres sélectionnés dans l'applet Options régionales et linguistiques du panneau de configuration.

Dans les versions de Rational ClearQuest antérieures à la version 7.0, les opérations d'écriture n'étaient autorisées que si le jeu de caractères local correspondait à la page de codes ClearQuest. Dans le cas contraire, seules les opérations de lecture étaient possibles, Le mode lecture seule était nécessaire, car les applications ClearQuest utilisaient le jeu de caractères local du client ou serveur Web pour écrire des données dans la base de données et non dans la page de codes de données ClearQuest pour l'ensemble de bases de données.

Depuis la version 7.0, le logiciel Rational ClearQuest traite les données au format Unicode. Les applications utilisent la page de codes de ClearQuest pour écrire dans les bases de données. Ces applications peuvent donc se connecter à la base de données ClearQuest en mode lecture/écriture, même si le jeu de caractères local ne correspond pas à la page de codes de données ClearQuest.

Sélection et définition de la page de codes des données ClearQuest pour l'ensemble de bases de données

On désigne le jeu de caractères de base de données de fournisseur par les expressions jeu de caractères ou charset. Sous IBM® DB2, page de codes ou jeu de codes et sous SQL Server, page de codes ou classement.

Sélection et définition du jeu de caractères de la base de données fournisseur pour vos bases de données

Depuis la version 7.1.1 de Rational ClearQuest, vous pouvez sélectionner une page des codes de données UTF-8 ClearQuest pour les ensembles de bases de données Oracle et DB2. Une page de codes de données UTF-8 permet de stocker des caractères multilingues dans la base de données utilisateur. Lorsque vous sélectionnez UTF-8 comme page de codes de données, vous travaillez dans un déploiement de jeu de caractères local mixte, à moins que la page de codes de données locale du système d'exploitation soit également au format UTF-8. Ce dernier n'est pas une option sur les systèmes Windows.

Points d'ancrage et scripts de codage permettant de traiter les caractères de la page de codes de données ClearQuest qui peut ne pas être incluse dans le jeu de caractères local.

Les scripts et les points d'ancrage utilisés pour le déploiement d'un jeu de caractères local mixte ou un environnement de base de données multilingue UTF-8 doivent gérer les données de caractères ClearQuest ne faisant pas partie du jeu de caractères local. Pour bénéficier pleinement de cette possibilité dans ces environnements, ces scripts et points d'ancrage doivent être codés pour prendre en charge Unicode.

Designer dispose d'un nouveau paramètre appelé Sensible à Unicode. Les points d'ancrage écrits pour la version 7.0 peuvent indiquer si les chaînes renvoyées par les appels d'API ClearQuest doivent impérativement utiliser le jeu de caractères local (RETURN_STRING_LOCAL), ou si elles peuvent contenir des caractères Unicode (RETURN_STRING_UNICODE). Par ailleurs, de nouvelles fonctions de l'API permettent de contrôler le mode de la chaîne de retour. En mode RETURN_STRING_LOCAL, un appel d'API renvoie une exception si la chaîne de retour contient des caractères ne pouvant pas être représentés dans le jeu de caractères local. En mode RETURN_STRING_UNICODE, un appel d'API renvoie tous les caractères ne générant aucune erreur.

Pour vous assurer que les points d'ancrage et les scripts traitent toutes les données lors du déploiement d'un jeu de caractères local mixte, vous devez utiliser le mode RETURN_STRING_UNICODE et traiter de façon appropriée les caractères Unicode pouvant être renvoyés. Définir le mode RETURN_STRING_UNICODE n'est pas suffisant ; vous devez également faire en sorte que le code traite correctement les caractères Unicode. Les instructions suivantes peuvent vous être utiles, mais il est impératif d'utiliser les techniques de programmation Unicode adéquates pour le langage d'écriture de scripts.

Si vous mettez le produit à niveau vers la version 7.0, ces changements n'auront pas d'incidence sur les schémas existants, si tous les jeux de caractères utilisés dans l'environnement correspondent à la page de codes de ClearQuest, ce qui était courant dans les versions précédentes. Le mode par défaut, RETURN_STRING_LOCAL, permet aux points d'ancrage et aux scripts de continuer à fonctionner.

Si vous déployez la version 7.0 dans un environnement utilisant des jeux de caractères locaux qui ne correspondent pas à la page de codes de ClearQuest, vous devez vous assurer que les scripts pourront traiter les données du logiciel ClearQuest au format Unicode, définir le mode de retour des scripts sur RETURN_STRING_UNICODE et mettre les packages à niveau vers la version 7.0. Pour obtenir la liste des packages ClearQuest prenant en charge le jeux de caractères Unicode, voir Tableau 1. Les scripts non compatibles avec ce dernier peuvent s'exécuter, mais une erreur est générée si le système renvoie des données n'utilisant pas le jeu de caractères local. Ces scripts ne peuvent fonctionner correctement que si les données traitées lors de leur exécution contiennent uniquement des caractères issus du jeu de caractères local du client ou du serveur Web.

Tableau 1. Mode de chaîne de retour du package
Package Mode de chaîne de retour
AMWorkActivitySchedule RETURN_STRING_UNICODE
ATStateTypes RETURN_STRING_UNICODE
Attachments RETURN_STRING_UNICODE
BTStateTypes RETURN_STRING_UNICODE
Client RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
Pour développer une application destinée à un déploiement impliquant plusieurs jeux de caractères, vous devez tenir compte de différents paramètres.
  • Mode de chaîne de retour

    Le logiciel ClearQuest traite toutes les données comme des caractères Unicode. Cependant, il est possible que les points d'ancrage de schéma (Perl et Visual Basic) et d'autres applications ou intégrations de l'API ClearQuest ne reconnaissent pas les caractères Unicode. Dans la version 7.0, vous pouvez résoudre ce problème en sélectionnant la case Sensible à Unicode dans l'éditeur de script Designer. Cette option permet d'indiquer que le script doit être exécuté en mode RETURN_STRING_UNICODE. Les scripts peuvent appeler la méthode SetPerlReturnStringMode ou SetBasicReturnStringMode pour définir le mode de chaîne de retour sur RETURN_STRING_UNICODE.

    Le mode de chaîne de retour est utilisé pour limiter (RETURN_STRING_LOCAL) ou autoriser la représentation des caractères en (RETURN_STRING_UNICODE) complet lorsque les chaînes sont renvoyées par l'API de ClearQuest API pour les langages Perl ou COM.

  • Prise en charge du format Unicode dans le code des points d'ancrage ou des scripts existants

    Il est recommandé d'écrire des scripts et des points d'ancrage pouvant traiter les caractères Unicode. Le mode de chaîne de retour par défaut, RETURN_STRING_LOCAL, permet aux scripts et points d'ancrage écrits pour les versions précédentes du logiciel ClearQuest de fonctionner sans aucun changement. Même si vous n'utilisez pas le format Unicode, vous devez cependant envisager de modifier ces scripts ultérieurement pour qu'ils puissent fonctionner en mode RETURN_STRING_UNICODE.

    Vérifiez que le code des points d'ancrage et des scripts peut traiter les caractères Unicode, puis marquez le code de point d'ancrage comme étant Sensible à Unicode dans l'éditeur de scripts de Designer. Vous pouvez également inclure un appel de la méthode SetPerlReturnStringMode ou SetBasicReturnStringMode. Le point d'ancrage ou script peut ensuite être utilisé dans tout environnement ClearQuest. Par exemple :
    1. Un script Perl de l'API ClearQuest s'exécute sur un système Windows dont le jeu de caractères local est Latin 1 (1252). Ce système se connecte à une base de données ClearQuest utilisant la page de codes Shift-JIS (932).
    2. Le script extrait une valeur de zone contenant du texte en japonais. Par défaut, cette valeur est renvoyée dans le jeu de caractères local de l'ordinateur exécutant le script Perl (1252). Etant donné que les caractères japonais de la page de codes Shift-JIS (932) ne peuvent pas être représentés dans la page de codes Latin 1, une exception est générée. Pour traiter ces caractères, vous devez utiliser une application pouvant gérer les caractères Unicode, et définir le mode de chaîne de retour sur RETURN_STRING_UNICODE. Le script peut ainsi extraire tous les caractères de cette valeur au format Unicode, et aucune erreur n'est générée.

    Par défaut, une exception est générée à l'étape 2, lorsque le script de l'API ClearQuest renvoie une chaîne contenant des caractères qui ne font pas partie du jeu de caractères local. Cette exception empêche que les données ne soient altérées. Après avoir vérifié que le code est en mesure de traiter les caractères Unicode, vous pouvez définir le mode de chaîne de retour sur RETURN_STRING_UNICODE. Pour ce faire, utilisez l'API ClearQuest ou l'éditeur de scripts de ClearQuest Designer. Une fois ce changement effectué, si la chaîne renvoyée à l'étape 2 contient des données ne faisant pas partie du jeu de caractères local, l'API ClearQuest pour Perl renvoie la valeur correspondante au format UTF8 (UNICODE). L'API ClearQuest pour VBScript, Visual Basic ou COM renvoie, elle, des caractères Unicode non restreints. Les caractères ne pouvant pas être représentés dans le jeu de caractères local peuvent alors être renvoyés au point d'ancrage ou au script et traités comme étant des caractères Unicode.

    Les points d'ancrage et les scripts doivent utiliser RETURN_STRING_LOCAL s'ils réalisent une opération dans leur langage d'écriture de scripts (Perl, VBScript, Visual Basic ou COM) qui ne prend pas en charge le traitement des caractères qui ne peuvent pas être représentés dans le jeu de caractères local. Par exemple :
    • Utilisation de données ClearQuest dans un appel en Perl qui ne fonctionne pas avec des chaînes Perl en UTF8 (comme certains appels système)
    • Utilisation de données ClearQuest dans des noms de fichiers ou de répertoires, qui doivent utiliser le jeu de caractères local
    • Ecriture de données ClearQuest dans un fichier non configuré pour la prise en charge des caractères Unicode
    • Envoi de données ClearQuest à une intégration acceptant uniquement le jeu de caractère local

    En mode RETURN_STRING_LOCAL, il est possible d'exécuter des opérations (requêtes, etc.) dont le résultat contient des caractères Unicode. Une exception est générée uniquement si les données sont extraites de l'ensemble de résultats par une méthode d'API Rational ClearQuest, et si les caractères renvoyés par l'appel de l'API n'utilisent pas le jeu de caractères local. Par exemple, une intégration ou une application externe peut traiter une demande de changement si les données renvoyées à l'intégration utilisent uniquement le jeu de caractères local. Le code de l'intégration doit pouvoir gérer l'exception générée par la méthode d'API Rational ClearQuest lorsque des caractères renvoyés ne font pas partie du jeu de caractères local. Si l'API de l'intégration est en mode RETURN_STRING_UNICODE, l'exception n'est pas générée, mais l'application doit pouvoir traiter correctement tous les caractères Unicode renvoyés. En mode RETURN_STRING_LOCAL et RETURN_STRING_UNICODE, des exceptions sont également renvoyées à l'intégration ou à l'application appelante si celle-ci écrit des caractères ne pouvant pas être représentés dans la page de codes ClearQuest.

    Pour plus d'informations, voir Définition du mode de chaîne de retour pour les points d'ancrage et les scripts dans l'aide du guide de référence de l'interface de programme d'application d'IBM Rational ClearQuest.

  • Prise en charge du format Unicode dans les packages et les schémas

    Certains packages ou schémas ne sont pas conçus pour traiter le format Unicode et les jeux de caractères non locaux. La prise en charge fournie par les scripts de chaque package est indiquée dans l'éditeur de script de Designer (la case Sensible à Unicode est cochée). Les schémas DefectTracking et Common prennent en charge le format Unicode. Cependant, un schéma contenant un package non compatible avec ce format ne peut pas être utilisé dans une configuration utilisant plusieurs jeux de caractères. Voir Tableau 1.

    Vous pouvez éditer ou ajouter des points d'ancrage qui accèdent aux zones du package ; ils sont alors considérés comme en faisant partie. Ces points d'ancrage héritent de la prise en charge Unicode par défaut assurée par le package, mais Designer n'affiche pas ce paramètre pour le point d'ancrage.

Si les jeux de caractères locaux de tous les clients connectés à un ensemble de bases de données sont compatibles avec la page de codes, vous n'avez pas à vous préoccuper des points énumérés ci-dessus. Pour plus d'informations sur la représentation des caractères et les paramètres des pages de codes, consultez l'aide en ligne relative à l'administration de Rational ClearQuest.


Feedback