Soporte de un juego de caracteres local mixto o una base de datos multilingüe en UTF-8

Este tema facilita directrices para dar soporte al despliegue de un juego de caracteres local mixto o a una base de datos multilingüe en UTF-8 (8-bit Unicode Transformation Format).
Si trabaja en un entorno en el que se conectan sistemas diferentes con juegos de caracteres locales distintos al mismo conjunto de bases de datos de Rational ClearQuest, o si ha seleccionado la página de códigos de datos UTF-8 (65001) de ClearQuest, entonces debe tener en cuenta los siguientes problemas de representación de caracteres:

Configuración del juego de caracteres local

El juego de caracteres local es el juego de caracteres que se puede entrar o mostrar en el shell de la línea de mandatos del sistema operativo del cliente. En el sistema UNIX, el juego de caracteres local lo controla la variable de entorno LANG. En Windows, está controlado mediante los valores de las opciones regionales y de idioma.

En versiones de Rational ClearQuest anteriores a la 7.0, las operaciones de grabación no estaban permitidas a no ser que el juego de caracteres local coincidiera con la página de códigos de datos de ClearQuest. Si los valores no coincidían, únicamente se permitían las operaciones de sólo lectura. La modalidad de sólo lectura se necesitaba debido a que las aplicaciones de ClearQuest utilizaban el juego de caracteres local del cliente o servidor web para grabar datos en la base de datos, en lugar de la página de códigos de datos de ClearQuest para el conjunto de bases de datos.

A partir de la versión 7.0, el software Rational ClearQuest procesa datos en Unicode y las aplicaciones utilizan la página de códigos de datos de ClearQuest para grabar en las bases de datos. Estas aplicaciones pueden conectar a la base de datos de ClearQuest en modalidad de lectura/grabación aunque el juego de caracteres local no coincida con la página de códigos de datos de ClearQuest.

Selección y establecimiento de la página de códigos de datos de ClearQuest del conjunto de bases de datos

Se refiere al juego de caracteres de la base de datos del proveedor para Oracle como juego de caracteres o conjunto de caracteres; para IBM® DB2, como página de códigos o conjunto de códigos, y para SQL Server como página de códigos u ordenación.

Selección y establecimiento del juego de caracteres de la base de datos del proveedor de sus bases de datos

Comenzando con la versión 7.1.1 de Rational ClearQuest, puede seleccionar una página de códigos de datos de ClearQuest en UTF-8 para los conjuntos de bases de datos Oracle y DB2. Una página de códigos de datos en UTF-8 permite un almacenamiento de caracteres multilingüe en la base de datos de usuario. Cuando selecciona UTF-8 como la página de códigos de datos, trabaja en un despliegue de juego de caracteres local mixto, a no ser que la página de códigos local del sistema operativo esté también en UTF-8. Esto último no es una opción en los sistemas Windows.

Codificación de enganches y scripts para manejar caracteres en la página de códigos de datos de ClearQuest que podrían no estar incluidos en el juego de caracteres local.

Los scripts y enganches grabados para un despliegue de juego de caracteres local mixto o un entorno de bases de datos multilingüe UTF-8 deben manejar datos de caracteres de ClearQuest que podrían no estar incluidos en el juego de caracteres local. Los scripts y enganches se deben haber codificado para dar soporte a Unicode con el objeto de aprovechar al máximo las ventajas de esta posibilidad en dichos entornos.

Designer incluye un nuevo valor: Unicode Aware. Los enganches grabados para la versión 7.0 pueden especificar si los caracteres de las series devueltos desde las llamadas de API de ClearQuest deben estar únicamente en el juego de caracteres local (RETURN_STRING_LOCAL) o si pueden ser cualquier carácter Unicode (RETURN_STRING_UNICODE). Además, hay nuevas funciones de API disponibles para controlar la modalidad de la serie de retorno. En la modalidad RETURN_STRING_LOCAL, una llamada de API devuelve una excepción si la serie de retorno incluye caracteres que no se pueden representar en el juego de caracteres local. En RETURN_STRING_UNICODE, una llamada de API devuelve todos los caracteres sin error.

Para asegurarse de que los ganchos y los scripts manejan todos los datos en un juego de caracteres local mixto o en un despliegue UTF-8, debe establecer la modalidad en RETURN_STRING_UNICODE y manejar correctamente los caracteres Unicode que se pueden devolver. Establecer la modalidad de serie de retorno en RETURN_STRING_UNICODE no es suficiente; debe verificar que el código pueda manejar caracteres Unicode de forma correcta. Las pautas que aparecen a continuación resultan útiles, pero en última instancia debe utilizar las técnicas adecuadas de programación Unicode para el lenguaje de creación de scripts.

Si actualiza a la versión 7.0, los cambios no afectan a los esquemas existentes si todos los juegos de caracteres locales del entorno coinciden con la página de códigos de datos de ClearQuest, como sucedía en versiones anteriores. La modalidad predeterminada es RETURN_STRING_LOCAL, que permite que todos los enganches y scripts sigan funcionando.

Si despliega la versión 7.0 en un entorno en el que los juegos de caracteres locales no coinciden con la página de códigos de datos de ClearQuest, debe asegurarse de que los scripts puedan procesar datos de caracteres Unicode para software ClearQuest, establecer la modalidad de retorno para los scripts en RETURN_STRING_UNICODE y actualizar los paquetes a la versión 7.0. Para obtener una lista de los paquetes de ClearQuest que soportan Unicode, consulte la Tabla 1. Se pueden ejecutar scripts que no manejen Unicode, pero se devuelve un error si el sistema intenta devolver al script cualquier dato de tipo carácter que no esté incluido en el juego de caracteres local. Estos scripts siguen funcionando siempre que los datos que procesen estén restringidos al juego de caracteres local del cliente o servidor web.

Tabla 1. Modalidad de serie de retorno de paquetes
Paquete Modalidad de serie de retorno
AMWorkActivitySchedule RETURN_STRING_UNICODE
ATStateTypes RETURN_STRING_UNICODE
Attachments RETURN_STRING_UNICODE
BTStateTypes RETURN_STRING_UNICODE
Customer RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
Al desplegar una aplicación que deba manejar despliegues de juegos de caracteres mixtos, se deben tener en cuenta diversas consideraciones.
  • Modalidad de serie de retorno

    El software ClearQuest maneja todos los datos como caracteres Unicode. Sin embargo, es posible que los enganches de los esquemas (Perl y Visual Basic) y otras integraciones o aplicaciones API de ClearQuest no estén codificados para procesar caracteres Unicode. En la versión 7.0, hay disponible una modalidad de serie de retorno para manejar este problema. El código de los enganches se puede establecer en Unicode Aware en el editor de scripts de Designer para indicar que el script se ejecuta en la modalidad de serie de retorno RETURN_STRING_UNICODE. (Para hacerlo, seleccione el recuadro de selección Unicode Aware). Los scripts pueden llamar al método SetPerlReturnStringMode o SetBasicReturnStringMode para establecer la modalidad de serie de retorno en RETURN_STRING_UNICODE.

    La modalidad de serie de retorno restringe (RETURN_STRING_LOCAL) o permite (RETURN_STRING_UNICODE) la representación de caracteres cuando las series son devueltas por la API de ClearQuest para Perl o COM.

  • Soporte de Unicode en códigos de enganches o scripts existentes

    Resulta práctico grabar enganches y scripts que puedan procesar caracteres Unicode. Se proporciona RETURN_STRING_LOCAL como modalidad de serie de retorno predeterminada de modo que los enganches y scripts de versiones anteriores del software ClearQuest se puedan ejecutar sin cambios. Con el tiempo, debe modificar los enganches y scripts existentes para que funcionen en la modalidad RETURN_STRING_UNICODE aunque actualmente no necesite Unicode.

    Compruebe que el código de los enganches o scripts puede procesar todos los caracteres Unicode. A continuación, marque el código de enganche como Unicode Aware en el editor de scripts de Designer o haga que un script externo llame al método SetPerlReturnStringMode o SetBasicReturnStringMode. El enganche o el script se puede utilizar entonces en cualquier entorno de ClearQuest. Por ejemplo:
    1. Un script de API de ClearQuest en Perl se ejecuta en un sistema de juego de caracteres local Windows Latin 1 (1252) que se conecta a una base de datos de ClearQuest cuya página de códigos de datos se ha establecido en Shift-JIS (932).
    2. El script recupera un valor de campo que contiene texto japonés. De manera predeterminada, el valor se devuelve en el juego de caracteres local del sistema que ejecuta el script de Perl (1252, en este ejemplo). Puesto que los caracteres japoneses Shift-JIS (932) no se pueden representar como un carácter en la página de códigos Latin 1, se genera una excepción. Para procesar este carácter, la aplicación debe ser capaz de manejar caracteres Unicode y establecer la modalidad de serie de retorno en RETURN_STRING_UNICODE; así no se generará la excepción y el script recuperará todos los caracteres en el valor de campo como caracteres Unicode.

    De manera predeterminada, en el paso 2 se genera una excepción cuando el script de la API de ClearQuest se devuelve con una serie que incluye caracteres que no pertenecen al juego de caracteres local. La excepción evita que se dañen los datos. Después de revisar y confirmar que el código puede procesar caracteres Unicode, puede establecer la modalidad de serie de retorno RETURN_STRING_UNICODE mediante la API de ClearQuest o en el editor de scripts de Designer. Al realizar este cambio, en el paso 2 la API de ClearQuest para Perl devuelve la serie de valor de campo como UTF8 (UNICODE) si la serie contiene datos de juegos de caracteres que no son locales, y la API de ClearQuest para VBScript, Visual Basic o COM devuelve caracteres Unicode no restringidos. A continuación, los caracteres que no se pueden representar en el juego de caracteres local se pueden retorno al enganche o script para procesarlos como caracteres Unicode.

    Los enganches y scripts deben utilizar RETURN_STRING_LOCAL si realizan una operación en su lenguaje de creación de scripts (Perl, VBScript, Visual Basic o COM) que no dé soporte al proceso de caracteres que no se pueden representar en el juego de caracteres local. Por ejemplo:
    • Usando datos de ClearQuest en una llamada de Perl que no funciona con series Perl UTF8 (como algunas llamadas del sistema)
    • Usando datos de ClearQuest como un nombre de archivo o directorio (los nombres de archivo o directorio deben estar en el juego de caracteres local)
    • Grabando datos de ClearQuest en un archivo sin configurar el archivo de salida para dar soporte a los caracteres Unicode
    • Enviando datos de ClearQuest a una integración que sólo acepte datos de juegos de caracteres locales.

    En la modalidad RETURN_STRING_LOCAL, se pueden realizar operaciones como la ejecución de consultas y los conjuntos de resultados de la consulta pueden incluir caracteres Unicode. Sólo se genera una excepción si se extraen datos del conjunto de resultados por medio de un método de API de Rational ClearQuest y los caracteres que devuelve la llamada de la API no se encuentran en el juego de caracteres local. Por ejemplo, una aplicación externa o integración puede operar en una solicitud de cambio si los datos que se pasan a la integración sólo contienen caracteres del juego de caracteres local. El código de integración debe manejar la excepción generada por un método de API de Rational ClearQuest cuando los caracteres devueltos no se encuentran en el juego de caracteres local. Si la API de integración se configura como RETURN_STRING_UNICODE, la excepción no se generará pero la aplicación deberá manejar correctamente todos los caracteres Unicode que se devuelvan. Tanto en la modalidad RETURN_STRING_LOCAL como en RETURN_STRING_UNICODE, las excepciones también se devuelven a la aplicación o integración de llamada si la aplicación graba caracteres que no se pueden representar en la página de códigos de datos de ClearQuest.

    Para obtener más información, consulte el apartado Establecimiento de la modalidad de serie de retorno para enganches y script en la publicación de ayuda de referencia acerca de API de IBM Rational ClearQuest.

  • Soporte de Unicode en paquetes y esquemas

    Algunos paquetes o esquemas no se han diseñado para manejar datos de juegos de caracteres no locales o Unicode. El soporte que ofrece cada script en cada paquete se indica en el editor de scripts de Designer (el recuadro de selección Unicode Aware está seleccionado). Los esquemas DefectTracking y Common dan soporte a Unicode. Sin embargo, un esquema que incluya un paquete que no dé soporte a caracteres Unicode no se puede utilizar en un despliegue de juego de caracteres mixto. Consulte la Tabla 1.

    Puede editar o añadir enganches que accedan a los campos del paquete y estos enganches se considerarán parte del paquete. Dichos enganches heredan el soporte Unicode predeterminado del paquete, pero Designer no muestra el valor correcto para el enganche.

Si los juegos de caracteres locales de todos los clientes conectados a un conjunto de bases de datos o clan coinciden con la página de códigos de datos, no debe tener en cuenta estas cuestiones. Para obtener más información sobre las representaciones de los caracteres y los valores de las páginas de códigos, consulte la ayuda sobre administración de Rational ClearQuest.


Comentarios