CA Gen 7.x Java変数名に特定の全角文字があるとコンパイルエラーになります

Document created by Miharu_Toyama Employee on Jul 9, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC001760

製品名: CA Gen

バージョン: CA Gen Build Tool, CA Gen Generator, Internet Client : r7.x

OS: 


◆ 概要説明

Gen 7.xでは、Exit State名に全角のハイフン(‘―’)が含まれていると、生成されたJavaコード内で文字化けしコンパイルエラーになります。

◆ 解決策

Exit State名に含まれた全角ハイフン(‘―’)は、Javaの変数名として使用するには不正な文字です。

Gen 6.5以前のジェネレータではJava環境をサポートする機能がとても限られていたために、全角文字をJavaで使用できる文字(‘a’ から ‘z’、‘A’ から ‘Z’、‘0’ から ‘9’)に機械的に変換しておりました。

Gen r7からはJava環境のサポート機能が向上し、全角文字を変換することなくそのまま使用できるようになりました反面、全角文字が変換されませんので、ユーザはどのような文字を使用しているのかという考慮が必要になってまいります。

言い換えれば、Gen 6.5以前では、ユーザが不正な文字を使用していてもジェネレータが有効な文字に変換していたため、コンパイルエラーからは保護されていました。しかしGen r7ではジェネレータはユーザが入力した文字を変換しないため、以前の様には保護されません。

さらなる詳細については、the Java Language Specification
( http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html )
をご参照ください。
ここではJavaで有効な変数名として何が許されているかを述べています。
3.8(Identifiers)のセクションで、
Character.isJavaIdentifierStarと Character.isJavaIdentifierPart は、ある文字がJavaの変数名として使用するのに有効な文字かどうかを示す二つのJavaメソッドであると説明しています。
全角ハイフン(‘―’)をこれらの二つのJavaメソッドで調べると、有効な文字ではないことがわかります。

既存のモデルでJavaコンパイルエラーを避けるには、以下のGenコンポーネントに不正な文字が存在していないかご確認いただくことをお勧めいたします。

  1. プロシージャ・ステップ名
  2. ウィンドウ/ダイアログ名
  3. ウィンドウ/ダイアログ上のコントロール名
  4. ソース・コード名
  5. ビュー名、ワークセット名、ワークセット属性名
  6. データモデルのTD名
  7. エグジット・ステート名
  8. コマンド値
  9. イベント名

※ Javaパッケージ名や、パッケージング処理で入力するロード・モジュール名、 トラン・コード名等には、今回の事象に関係なく日本語の文字は使用できません。


この情報は米国 CA, Inc. より提供されている Technical Documentsをもとに作成したものです。原文の詳細につきましては下記内容をご覧ください。
https://support.ca.com/irj/portal/kbtech?docid=470733&searchID=TEC470733
Title:Certain DBCS characters in Java variable names can cause a compile error in Gen 7.x when they did not in Gen 6.5.
Document ID: TEC470733

以上

Attachments

    Outcomes