Gen 7.xで、Exit State名に全角のハイフン(‘―’)が含まれていると、生成されたJavaコード内で文字化けしコンパイルエラーになります。
Release: CA Gen r7.x
Component: CA Gen Build Tool , CA Gen Generator , Internet Client : r7.x
Exit State名に含まれた全角ハイフン(‘―’)は、Javaの変数名として使用するには不正な文字です。
Gen 6.5以前のジェネレータではJava環境をサポートする機能がとても限られていたために、全角文字をJavaで使用できる文字(‘a’ から ‘z’、‘A’ から‘Z’、‘0’ から ‘9’)に機械的に変換しておりました。
Gen r7からはJava環境のサポート機能が向上し、全角文字を変換することなくそのまま使用できるようになりました反面、全角文字が変換されませんので、ユーザはどのような文字を使用しているのかという考慮が必要になってまいります。
言い換えれば、Gen 6.5以前では、ユーザが不正な文字を使用していてもジェネレータが有効な文字に変換していたため、コンパイルエラーからは保護されていました。しかしGen r7ではジェネレータはユーザが入力した文字を変換しないため、以前の様には保護されません。
さらなる詳細については、こちらをご参照ください。
ここではJavaで有効な変数名として何が許されているかを述べています。
3.8(Identifiers)のセクションで、
Character.isJavaIdentifierStarと Character.isJavaIdentifierPart は、ある文字がJavaの変数名として使用するのに有効な文字かどうかを示す二つのJavaメソッドであると説明しています。
全角ハイフン(‘―’)をこれらの二つのJavaメソッドで調べると、有効な文字ではないことがわかります。
既存のモデルでJavaコンパイルエラーを避けるには、以下のGenコンポーネントに不正な文字が存在していないかご確認いただくことをお勧めいたします。
1. プロシージャ・ステップ名
2. ウィンドウ/ダイアログ名
3. ウィンドウ/ダイアログ上のコントロール名
4. ソース・コード名
5. ビュー名、ワークセット名、ワークセット属性名
6. データモデルのTD名
7. エグジット・ステート名
8. コマンド値
9. イベント名
※ Javaパッケージ名や、パッケージング処理で入力するロード・モジュール名、 トラン・コード名等には、今回の事象に関係なく日本語の文字は使用できません。
Old Japanese Knowledge document ID: JTEC001760
CA Genのその他のFAQについては、以下のリンクからご確認ください。
CA Gen FAQ一覧表