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