アナリティクス スクリプトの Unicode への変換
非 Unicode の既存のアナリティクス スクリプトおよび標準スクリプトを Unicode 版の Analytics に移行する場合、これらは自動的に Unicode に変換されます。ただし、これらを Unicode データに適用した場合でもスクリプトのロジックが変わらないことを確認する必要があります。
Unicode とは
Unicode は、各文字を表すために 2 バイト以上を使用するテキストのエンコードの標準であり、すべての言語の文字が単一の文字セットに格納されています。Unicode 版の Diligent 製品を使用すると、現在使用されている全言語で、Unicode でエンコードされたデータを含んでいるファイルやデータベースの表示および操作が行えます。
メモ
Analytics およびロボット エージェントは、リトルエンディアン(LE)でエンコードされた Unicode データをサポートしています。これらの製品を使用して、ビッグエンディアン(BE)でエンコードされたデータを分析することはできません。
必要なアナリティクス スクリプトの変更
バイト数で値を指定するすべてのパラメーターの更新
非 Unicode 版 Analytics での文字の長さは 1 バイトです。Unicode データの場合、Unicode エディションでの文字の長さは 2 バイトです。非 Unicode 版 Analytics で、フィールド長または開始位置をバイトで指定するときには、バイト数は文字数と同じです。これは Unicode 版 Analytics における Unicode データには当てはまりません。
スクリプトを Unicode 版 Analytics で使用できるように変換するには、バイト数でフィールドの長さや開始位置を指定したすべてのパラメーターの数値を調整する必要があります。たとえば、非 Unicode 版 Analytics で 7 の WID 値を指定する IMPORT DELIMITED コマンドの場合、Unicode 版 Analytics で同じ結果を出力するには、WID の値を 2 倍の 14 にする必要があります。
また、Unicode データの場合、フィールドの奇数の開始バイト位置とフィールド長の偶数のバイト数を指定します。偶数の開始位置または奇数の長さを指定すると、文字が正しく表示されない可能性があります。
IMPORT PRINT および IMPORT DELIMITED の全インスタンスを再作成する
IMPORT PRINTコマンドおよび IMPORT DELIMITEDコマンドの全インスタンスを再作成する必要があります。
-
Unicode 版の Analytics でデータ定義ウィザードを使用してソースデータファイルをインポートします。
データ定義ウィザードを使用すると、すべての構文が有効であることが保証されます。
-
ログからインポート構文を使用してスクリプトを更新します。
-
アナリティクス スクリプトの場合、スクリプトをロボットに再コミットします。
ZONED() および EBCDIC() 関数の全インスタンスの変更
次のように ZONED() および EBCDIC() 関数の全インスタンスを変更し、関数で返される ASCII 値が正しく Unicode データに変換されるようにする必要があります。
- 演算フィールドは、ZONED( ) や EBCDIC( ) インスタンスを BINTOSTR( ) 関数で囲みます
- 静的な式では ZONED( ) インスタンスを BINTOSTR( ) 関数で囲みます
BINTOSTR(ZONED(%result%, 5), 'A')
OPEN FORMAT コマンドのすべてのインスタンスを変更します
OPEN FORMAT コマンドのすべてのインスタンスを変更する必要があります。SKIP パラメーターを使用して、開いている Unicode ファイルの最初の 2 バイトをスキップする必要があります。これは、UTF-16 エンコード ファイルの最初の 2 バイトはバイト オーダー マークとして予約されており、ファイル内のテキストとは異なるものであるため、必要となります。
非 Unicode
OPEN "ascii_test.txt" FORMAT template_table CRLF
DEFINE FIELD full_rec ASCII 1 10
Unicode
OPEN "utf-16_test.txt" FORMAT template_table CRLF SKIP 2
DEFINE FIELD full_rec UNICODE 1 20
変換されたアナリティクス スクリプトの検証
Unicode 版のアナリティクス スクリプトによって生成される結果が、非 Unicode 版のアナリティクス スクリプトによって生成された結果とまったく同じになるかどうかを検証します。これを行う最良の方法は、Diff ツールを使用して、分析で生成されたログ ファイルを比較することです。Diff ツールは、ファイル間のあらゆる相違点を識別します。
結果がまったく同じでなかった場合の処置
Unicode 版のアナリティクス スクリプトを使用しても非 Unicode 版と同じ結果を生成できなかった場合には、スクリプトのログ出力をアナリティクス スクリプトのステップごとに比較することで、問題の切り分けができる可能性があります。