Suportando um Conjunto de Caracteres Local Combinado ou um Banco de Dados Multilingual UTF-8

Esse tópico fornece diretrizes para suportar uma implementação de conjunto de caracteres local combinado ou um banco de dados multilingual UTF-8 (8-bit Unicode Transformation Format).
Se você estiver trabalhando em um ambiente no qual diferentes computadores com diferentes conjuntos de caracteres locais se conectam ao mesmo conjunto de banco de dados do Rational ClearQuest, ou se você selecionou a página de códigos de dados UTF-8 (65001) ClearQuest para seu conjunto de banco de dados, será necessário considerar os seguintes problemas de representação de caracteres:

Configurar o conjunto de caracteres local

O conjunto de caracteres local é o conjunto de caracteres que pode ser digitado ou exibido no shell de linha de comandos do sistema operacional cliente. No sistema UNIX, o conjunto de caracteres local é controlado pela variável de ambiente LANG. No Windows, é controlado por configurações em Opções Regionais e de Idiomas.

Nas versões do Rational ClearQuest anteriores à 7.0, as operações de gravação não eram permitidas a menos que o conjunto de caracteres local correspondesse à página de códigos de dados do ClearQuest. Se as configurações não correspondessem, apenas operações somente leitura eram permitidas. O modo somente leitura foi necessário porque os aplicativos ClearQuest utilizaram o conjunto de caracteres local do cliente ou do servidor da Web para gravar dados no banco de dados em vez da página de códigos de dados do ClearQuest no conjunto de bancos de dados.

A partir da versão 7.0, o software Rational ClearQuest processa dados em Unicode, e seus aplicativos utilizam a página de códigos de dados do ClearQuest para gravar em seus bancos de dados. Esses aplicativos podem se conectar ao banco de dados ClearQuest no modo somente leitura/gravação mesmo quando o conjunto de caracteres local não corresponder à página de códigos de dados do ClearQuest.

Selecionando e configurando a página de códigos de dados do ClearQuest do conjunto de bancos de dados

O conjunto de caracteres do banco de dados do fornecedor para o Oracle é referido como conjunto de caracteres ou charset; para o IBM DB2 como página de códigos ou conjunto de códigos e para o SQL Server como página de códigos ou ordenação.

Selecionar e configurar o conjunto de caracteres de bancos de dados do fornecedor de seus bancos de dados

A partir da versão 7.1.1 do Rational ClearQuest, é possível selecionar uma página de códigos de dados UTF-8 ClearQuest para os conjuntos de bancos de dados Oracle e DB2. Uma página de códigos de dados UTF-8 permite o armazenamento de caracteres multilinguais no banco de dados do usuário. Ao selecionar o UTF-8 como a página de códigos de dados, você trabalhará em uma implementação de conjunto de caracteres local combinado, a menos que a página de códigos local do sistema operacional também seja UTF-8. Esse último não é uma opção nos sistemas Windows.

Codificar Ganchos e Scripts para Manipular Caracteres na Página de Códigos de Dados do ClearQuest que Podem não Estar Incluídos no Conjunto de Caracteres Local

Scripts e ganchos gravados para uma implementação de conjunto de caracteres local misto ou um ambiente de banco de dados multilingual UTF-8 devem tratar dos dados de caracteres do ClearQuest que podem não ser incluídos no conjunto de caracteres local. Esses scripts e ganchos devem ser codificados para suportar Unicode para tirar vantagem desta capacidade nestes ambientes.

O Designer inclui uma nova configuração: Identificador Unicode. Os ganchos gravados para a versão 7.0 podem especificar se os caracteres de cadeias retornadas das chamadas API do ClearQuest precisam estar somente no conjunto de caracteres local (RETURN_STRING_LOCAL) ou se podem ser qualquer caractere Unicode (RETURN_STRING_UNICODE). Além disso, há novas funções API disponíveis para controlar o modo de cadeia de retorno. No modo RETURN_STRING_LOCAL, uma chamada API retorna uma exceção se a cadeia de retorno incluir caracteres que não possam ser representados no conjunto de caracteres local. No modo RETURN_STRING_UNICODE, uma chamada API retorna todos os caracteres sem erros.

Para garantir que ganchos e scripts manipulem todos os dados em uma implementação de conjunto de caracteres local combinado ou UTF-8, é necessário configurar o modo para RETURN_STRING_UNICODE e manipular corretamente os caracteres Unicode que podem ser retornados. Configurar o modo da cadeia de retorno como RETURN_STRING_UNICODE não é suficiente; você deve verificar se seu código pode manipular corretamente os caracteres Unicode. As diretrizes listadas abaixo são úteis, mas basicamente, é necessário utilizar as técnicas de programação Unicode apropriadas para a linguagem de script.

Se estiver fazendo upgrade para a versão 7.0, estas mudanças não possuem nenhum impacto em um esquema existente de todos os conjuntos de caracteres locais no ambiente corresponderem com a página de códigos de dados do ClearQuest, como era comum em versões anteriores. O modo padrão é RETURN_STRING_LOCAL, o que permite que ganchos e scripts continuem a funcionar.

Se estiver implementando a versão 7.0 em um ambiente no qual conjuntos de caracteres locais não correspondem com a página de códigos de dados do ClearQuest, você deve assegurar que seus scripts possam processar dados de caracteres Unicode para o software ClearQuest, configure o modo de retorno para scripts como RETURN_STRING_UNICODE e faça upgrade dos pacotes para a versão 7.0. Para obter uma lista de pacotes do ClearQuest que oferecem suporte a Unicode, consulte Tabela 1. Os scripts que não manipulam Unicode podem ser executados, mas um erro será retornado se o sistema tentar retornar para o script qualquer dado de caractere que não esteja incluído no conjunto de caracteres local. Esses scripts continuarão a funcionar contanto que os dados que eles processam fiquem restritos ao conjunto de caracteres local do cliente ou do servidor da Web.

Tabela 1. Modo de cadeia de retorno de pacote
Pacote Modo de Cadeia de Retorno
AMWorkActivitySchedule RETURN_STRING_UNICODE
ATStateTypes RETURN_STRING_UNICODE
Attachments RETURN_STRING_UNICODE
AuditTrail RETURN_STRING_UNICODE
BTStateTypes RETURN_STRING_UNICODE
BuildTracking RETURN_STRING_UNICODE
CQTM RETURN_STRING_UNICODE
Customer RETURN_STRING_UNICODE
DeploymentTracking RETURN_STRING_UNICODE
DTStateTypes RETURN_STRING_UNICODE
EMail RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
eSignature RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
TPM RETURN_STRING_UNICODE
Ao desenvolver um aplicativo que deve tratar implementações com conjuntos de caracteres mistos, você deve tratar de diversas considerações.
  • Modo de Cadeia de Retorno

    O software ClearQuest manipula todos os dados como caracteres Unicode. No entanto, talvez os ganchos do esquema (Perl e Visual Basic) e outras integrações ou aplicativos API do ClearQuest não estejam codificadas para processar caracteres Unicode. Na versão 7.0, um modo de cadeia de retorno está disponível para manipular este problema. O código do gancho pode ser configurado para Identificador Unicode no editor de script do Designer para indicar que o script é executado no modo de cadeia de retorno RETURN_STRING_UNICODE. (Para isso, selecione a caixa de opções Identificador Unicode). Os scripts podem chamar o métodoSetPerlReturnStringMode ou SetBasicReturnStringMode para configurar o modo de cadeia de retorno para RETURN_STRING_UNICODE.

    O modo de cadeia de retorno restringe (RETURN_STRING_LOCAL) ou permite representação completa de caracteres (RETURN_STRING_UNICODE) quando as cadeias são retornadas pela API do ClearQuest para Perl ou COM.

  • Suporte a Unicode em Código de Gancho ou Script existentes

    Considera-se uma boa prática gravar os ganchos e scripts que podem processar caracteres Unicode. RETURN_STRING_LOCAL é fornecido como o modo de cadeia de retorno padrão para que ganchos e scripts existentes para versões anteriores do software ClearQuest possam executar sem mudanças. Com o tempo, você deve modificar os ganchos e scripts existentes para funcionarem no modo RETURN_STRING_UNICODE, mesmo que no momento não haja a necessidade de Unicode.

    Verifique se o seu código de gancho ou script pode processar qualquer caractere Unicode. Em seguida, marque o código do gancho como Identificador Unicode no editor de scripts Designer ou faça com que o script externo chame o método SetPerlReturnStringMode ou SetBasicReturnStringMode. O gancho ou o script pode, então, ser utilizado em qualquer ambiente do ClearQuest. Exemplo:
    1. Um script de API do ClearQuest em Perl está executando em um sistema com conjunto de caracteres local Windows Latin 1 (1252) que se conecta a um banco de dados do ClearQuest cuja página de códigos dos dados está configurada como Shift-JIS (932).
    2. O script recupera um valor de campo que contém texto no idioma japonês. Por padrão, o valor é retornado no conjunto de caracteres local do computador que está executando o script Perl (1252, neste exemplo). Como os caracteres do idioma japonês Shift-JIS (932) não podem ser representados como um caractere na página de códigos Latin 1, é gerada uma exceção. Para processar este caractere, seu aplicativo precisa ter capacidade de manipular caracteres Unicode e configurar o modo de cadeia de retorno paraRETURN_STRING_UNICODE; a exceção não é gerada e o script recupera todos os caracteres no campo de valor como caracteres Unicode.

    Por padrão, uma exceção é emitida na etapa 2 quando o script API do ClearQuest retorna com uma cadeia que inclui caracteres de fora do conjunto de caracteres local. A exceção impede a distorção dos dados. Depois de revisar e confirmar que o código pode processar caracteres Unicode, é possível configurar o modo de cadeia de retorno RETURN_STRING_UNICODE ao utilizar a API do ClearQuest ou no editor de script do Designer. Fazendo esta mudança, na etapa 2 a API do ClearQuest para Perl retorna a cadeia de valor do campo como UTF8 (UNICODE) se a cadeia contiver dados do conjunto de caracteres não locais, e a API do ClearQuest para VBScript, Visual Basic ou COM retorna caracteres Unicode não restritos. Os caracteres que não puderem ser representados no conjunto de caracteres local, poderão ser retornados ao gancho ou script para serem processados como caracteres Unicode.

    Os ganchos e scripts devem utilizar o modo RETURN_STRING_LOCAL se eles desempenharem uma operação em sua linguagem de script (Perl, VBScript, Visual Basic ou COM) que não dê suporte ao processamento de caracteres que não podem ser representados no conjunto de caracteres local. Exemplo:
    • Utilizar os dados do ClearQuest em uma chamada de Perl que não funciona com cadeias UTF8 Perl (como as chamadas de alguns sistemas)
    • Utilizar os dados do ClearQuest como um nome de arquivo ou diretório (os nomes de arquivos ou de diretórios precisam estar no conjunto de caracteres)
    • Gravar os dados do ClearQuest em um arquivo sem configurar o arquivo de saída para dar suporte a caracteres Unicode
    • Enviar os dados do ClearQuest para uma integração que aceite somente dados de conjuntos de caracteres locais

    No modo RETURN_STRING_LOCAL, é possível executar operações como execução de consultas e os conjuntos de resultados das consultas podem incluir caracteres Unicode. Uma exceção é gerada somente se os dados forem extraídos desse conjunto de resultados por um método da API do Rational ClearQuest e os caracteres retornados da chamada da API não estiverem no conjunto de caracteres local. Por exemplo, uma integração ou aplicativo externo pode operar em um controle de mudanças se os dados que são transmitidos de volta para a integração contiverem somente caracteres do conjunto de caracteres local. O código de integração deve manipular a exceção que é emitida por um método API do Rational ClearQuest quando os caracteres retornados não estiverem no conjunto de caracteres local. Se a API de integração for configurada como RETURN_STRING_UNICODE, a exceção não será emitida, mas o aplicativo precisará manipular corretamente qualquer caractere Unicode que for retornado. Em ambos os modos RETURN_STRING_LOCAL e RETURN_STRING_UNICODE, as exceções também são retornadas para a integração de chamadas ou aplicativo se o aplicativo gravar os caracteres que não podem ser representados na página de códigos de dados do ClearQuest.

    Para obter mais informações, consulte Configurando o modo de cadeia de retorno para ganchos e scripts na ajuda de Referência de API do IBM Rational ClearQuest.

  • Suporte a Unicode em Pacotes e Esquemas

    Alguns pacotes ou esquemas não foram desenvolvidos para manipular Unicode e dados do conjunto de caracteres que não sejam locais. O suporte que cada script em cada pacote oferece, é indicado no editor de script do Designer (a caixa de opções Identificador Unicode está selecionada). Os esquemas DefectTracking e Common oferecem suporte a Unicode. No entanto, qualquer esquema que inclua um pacote que não dê suporte a caracteres Unicode, não pode ser utilizado em uma implementação de conjuntos de caracteres mistos. Consulte o Tabela 1.

    É possível editar ou incluir ganchos que acessam os campos de pacote e esses ganchos são considerados como parte do pacote. Esses ganchos herdam o suporte padrão Unicode do pacote, mas o Designer não exibe essa configuração correta para o gancho.

Se os conjuntos de caracteres locais de todos os clientes conectados em um conjunto ou clã de bancos de dados ou corresponderem com a página de códigos de dados, você não precisa considerar estas questões. Para obter mais informações sobre representações de caractere e configurações de página de códigos, consulte a ajuda on-line Administrando o Rational ClearQuest.


Feedback