ローカル文字セットは、 クライアント オペレーティング システムのコマンド行シェルでの入力と表示が 可能な文字の集合です。UNIX システムでは、ローカル文字セットは LANG 環境変数によって 制御されます。Windows では、[地域と言語のオプション] の設定によって制御されます。詳細については、 Rational ClearQuest 管理者用のオンライン ヘルプを参照してください。
製造元データベース 文字セットは、Oracle の場合は文字セットまたは charset、IBM DB2 の場合は コード ページまたはコード セット、SQL Server の場合はコード ページまたは Collation と呼ばれます。
7.0 より前のバージョンでは、Rational ClearQuest データ コード ページと ローカル文字セットが一致している場合を除き、書き込み操作は許可されていませんでした。設定が一致していない場合は、読み取り専用操作のみが許可されていました。 読み取り専用モードが必要だった理由は、Rational ClearQuest アプリケーションが データベースにデータを書き込むとき、データベース セットの Rational ClearQuest データ コード ページではなく、 クライアントまたは Web サーバーのローカル文字セットを使用していたためです。
バージョン 7.0 以降、Rational ClearQuest ソフトウェアは データを Unicode で処理し、アプリケーションは Rational ClearQuest データ コード ページを 使用してデータベースに書き込みます。これらのアプリケーションは、 ローカル文字セットが Rational ClearQuest データ コード ページと一致しない場合でも、 読み取り/書き込みモードで Rational ClearQuest データベースに接続できるようになりました。
この新しい機能によって、異なるローカル文字セットを持つ複数のコンピュータからなる Rational ClearQuest 環境に 高い柔軟性がもたらされました。ただし、 このような環境のために作成されたスクリプトとフックは、ローカル文字セットに含まれていない 可能性のある Rational ClearQuest 文字 データを処理しなければなりません。このような環境でこの機能を完全に利用するには、Unicode をサポートするように それらのスクリプトとフックをコーディングする必要があります。
Designer には、新しい設定、[Unicode 認識] が組み込まれました。 バージョン 7.0 向けに作成されるフックは、Rational ClearQuest API 呼び出しから 戻される文字列内の文字がローカル文字セットにある文字のみでなければならない (RETURN_STRING_LOCAL) か、 任意の Unicode 文字が許容される (RETURN_STRING_UNICODE) のかを指定できます。 また、戻り値文字列モードを制御するために使用できる新しい API 関数もあります。RETURN_STRING_LOCAL モードの場合、API 呼び出しは、 戻り値文字列にローカル文字セットで表せない文字が含まれていると例外を戻します。RETURN_STRING_UNICODE の場合、API 呼び出しはすべての文字をエラーなしで戻します。
混合文字セット デプロイメントにおいて、フックとスクリプトが、起こりうるすべてのデータを 処理できるようにするには、モードを RETURN_STRING_UNICODE に設定し、 戻される Unicode 文字を適切に処理する必要があります。戻り値文字列モードを RETURN_STRING_UNICODE に 設定するだけでは十分でありません。作成したコードが Unicode 文字を 正しく処理できることを確認してください。下に示すガイドラインが参考になりますが、 結局のところ、スクリプト言語に合わせて適切な Unicode プログラミング手法を使用しなければならないということです。
バージョン 7.0 にアップグレードする場合、 環境内のすべてのローカル文字セットが Rational ClearQuest データ コード ページに 一致している場合は (前のバージョンではこれが普通でした)、これらの変更による既存スキーマへの影響はありません。デフォルト モードは RETURN_STRING_LOCAL で、 この場合、フックとスクリプトは以前と同じように機能します。
バージョン 7.0 を、ローカル文字セットが Rational ClearQuest データ コード ページと 一致しない環境に展開する場合、 スクリプトが Rational ClearQuest ソフトウェアの Unicode 文字データを 処理できることを確認し、スクリプトの戻り値文字列モードを RETURN_STRING_UNICODE に設定し、 パッケージをバージョン 7.0 にアップグレードする必要があります。Unicode をサポートする Rational ClearQuest パッケージ の一覧については、表 1 を参照してください。Unicode を処理しないスクリプトも実行できますが、 システムが、ローカル文字セットに含まれていない文字データをスクリプトに戻そうとすると、 エラーが戻されます。これらのスクリプトは、 処理するデータがクライアントまたは Web サーバーのローカル文字セットに限定されている限り、引き続き機能します。
パッケージ | 戻り値文字列モード |
---|---|
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 |
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 |
Rational ClearQuest ソフトウェアは、 すべてのデータを Unicode 文字として扱います。しかし、スキーマ フック (Perl と Visual Basic) と その他の Rational ClearQuest API アプリケーション または統合は、Unicode 文字を処理するように作成されていないこともあります。 この問題に対処するために、バージョン 7.0 で戻り値文字列モードが使用可能になりました。 Designer スクリプト エディタでフック コードを [Unicode 認識] に設定して、 スクリプトが RETURN_STRING_UNICODE 戻り値文字列モードで実行することを 指定できます (これを行うには、[Unicode 認識] チェック ボックスを選択します)。スクリプトは、SetPerlReturnStringMode または SetBasicReturnStringMode メソッドを呼び出して、戻り値文字列モードを RETURN_STRING_UNICODE に設定できます。
戻り値文字列モードは、Perl または COM 用の Rational ClearQuest API によって 文字列が戻されるときに、文字表現を制限 (RETURN_STRING_LOCAL) するか、 すべての文字表現を許可 (RETURN_STRING_UNICODE) します。
Unicode 文字を処理 できるフックとスクリプトを作成する習慣にすることは、優れた方法です。RETURN_STRING_LOCAL が デフォルト戻り値文字列モードとして提供されていて、 前のバージョンの Rational ClearQuest ソフトウェア用の既存のフックとスクリプトを 変更せずに実行できます。現在は Unicode を処理する必要がない場合でも、 いずれは、RETURN_STRING_UNICODE モードで機能するように 既存のフックとスクリプトを修正するべきです。
デフォルトでは、Rational ClearQuest API スクリプトが ローカル文字セットにない文字を含む文字列と共に戻った場合、 ステップ 2 で例外がスローされます。この例外によって、データ破損が防止されます。Unicode 文字を処理できるコードであることを確認した後、 Rational ClearQuest API または Designer スクリプト エディタを 使用して、RETURN_STRING_UNICODE 戻り値文字列モードを 設定できます。ステップ 2 でこの変更を行うことによって、 フィールド値の文字列がローカル文字セットにないデータを含む場合、Perl 用の Rational ClearQuest API は、 そのフィールド値を UTF8 (UNICODE) として戻し、VBScript、Visual Basic、COM 用の Rational ClearQuest API は、 制約なしの Unicode 文字を戻します。 ローカル文字セットで表現できない文字は、Unicode 文字として処理するために フックまたはスクリプトに戻されます。
RETURN_STRING_LOCAL モードでクエリー実行などの操作を実行でき、 クエリー結果セットには Unicode が含まれていてもかまいません。例外が生成されるのは、 その結果セットから Rational ClearQuest API メソッドによって データが抽出され、その API 呼び出しから戻された文字が ローカル文字セットに含まれていない場合のみです。たとえば、 統合または外部アプリケーションは、統合に戻されるデータがローカル文字セットの文字のみである場合、 変更依頼に関する処理を実行できます。 統合コードは、ローカル文字セットでない文字が戻された場合に Rational ClearQuest API メソッドによってスローされる 例外を処理しなければなりません。統合 API が RETURN_STRING_UNICODE として構成されている場合、 例外はスローされませんが、アプリケーションは戻される Unicode 文字をすべて正しく処理する必要があります。RETURN_STRING_LOCAL モードと RETURN_STRING_UNICODE モードの どちらの場合にも、Rational ClearQuest データ コード ページで表現できない文字を アプリケーションが書き込む場合、呼び出し側の統合またはアプリケーションに例外が戻されます。
詳細については、『IBM Rational ClearQuest API リファレンス』の「フックとスクリプトの戻り値文字列モードの設定」を参照してください。
一部のパッケージまたはスキーマは、Unicode と 非ローカル文字セットのデータを処理するようには設計されていません。各パッケージ内の各スクリプトによるサポート状況は、Designer スクリプト エディタに示されます ([Unicode 認識] チェック ボックスが選択されます)。 DefectTracking スキーマと Common スキーマは、Unicode をサポートします。ただし、Unicode 文字をサポートしない パッケージが組み込まれたスキーマは、 混合文字セット デプロイメントでは使用できません。表 1 を参照してください。
パッケージ フィールドにアクセスするフックを 編集または追加でき、これらのフックはそのパッケージの一部と見なされます。それらのフックは、 パッケージからデフォルトの Unicode サポートを継承しますが、 フックに対するこの正しい設定は、Designer では表示されません。
ある 1 つのデータベース セットまたは所属に接続される すべてのクライアントのローカル文字セットが、データ コード ページに一致する場合、 これらの問題を考慮する必要はありません。文字表現とコード ページ設定について詳しくは、Rational ClearQuest 管理者のオンライン ヘルプを参照してください。