EGL を使用して COBOL コードを生成する場合、実行できる内容にいくつかの制限があります。
COBOL コードを生成している場合は、以下の制限事項が適用されます。
- COBOL プログラム名の制限事項は次のとおりです。
- zSeries では、名前は 8 文字に制限されます。
- iSeries® の場合、呼び出し先プログラム名は 8 文字、メインプログラム名は 7 文字に制限されます。
- サービスでは、名前は 7 文字に制限されます。
- 名前には、英数字と @、#、および $ のみを含めることができます。
- CICS® アプリケーションでは、次の条件が満たされている場合に限り、共通バッチ・アプリケーションを呼び出すことができます。
- バッチ・アプリケーションでファイル入出力を開始しない。
- バッチ・アプリケーションが、DYNAMIC および OSLINK リンケージ・オプション設定を使用して呼び出される。
- 呼び出されたアプリケーションは、バッチ用 (CICS 用ではなく) に生成されている必要がある。
- 値の設定ブロックは、パーツ定義および変数宣言の中でプロパティー値を設定する場合と、変数宣言の中でフィールド値を初期化する場合にのみサポートされます。
- validValues プロパティーは、単一の数値範囲のみをサポートする。
- テキストと印刷フォームの両方の場合
- 以下のフィールド・タイプを含めてはなりません。
- HEX
- FLOAT
- SMALLFLOAT
- TIME
- TIMESTAMP
- フィールドを日付として使用している場合は、dateFormat フィールド・プロパティーに日付形式のストリングまたは定数を指定します。
また、以下の制限事項があります。
- フォーム・フィールドをタイプ DATE、NUM(8)、または NUM(10) として指定し、
日付をグレゴリオ暦形式で表示する場合は、フィールド長を 10 として指定する必要があり、
ユーザー独自の 8 または 10 文字形式 (ユーザー選択の分離文字を使用し、
年、月、および日を任意の順序で指定した、"yy/MM/dd" または "yyyy/MM/dd" のいずれか)、
または以下の日付形式のいずれかを使用することができます。
- usaDateFormat
- eurDateFormat
- isoDateFormat
- jisDateFormat
- systemGregorianDateFormat
- フォーム・フィールドをタイプ NUM(8) として指定し、日付をユリウス暦形式で表示する場合は、
フィールド長を 8 として指定する必要があり、
ユリウス暦形式の "yy/ddd" または "yyyy/ddd" (ユーザー選択の分離文字を使用) のいずれか、
または日付形式 systemJulianDateFormat を使用できます。
- フォーム・フィールドをタイプ NUM(6) として指定し、日付をユリウス暦形式で表示する場合は、
フィールド長を 6 として指定する必要があり、
ユリウス暦形式 "yy/ddd" (ユーザー選択の分離文字を使用)、
または日付形式 systemJulianDateFormat を使用できます。
- フォーム・フィールドをタイプ CHAR(8) として指定する場合は、
フィールド長を 8 として指定する必要があり、
グレゴリオ暦形式 "yy/MM/dd" (ユーザー選択の分離文字を使用し、年、月、および日を任意の順序で指定) か、
以下の日付形式のいずれかを使用できます。
- systemGregorianDateFormat
- systemJulianDateFormat
- フォーム・フィールドをタイプ CHAR(10) として指定する場合は、
フィールド長を 10 として指定する必要があり、
ユーザー独自の 8 または 10 文字形式 (ユーザー選択の分離文字を使用し、
年、月、および日を任意の順序で指定した、"yy/MM/dd" または "yyyy/MM/dd" のいずれか)、
または以下の日付形式のいずれかを使用することができます。
- usaDateFormat
- eurDateFormat
- isoDateFormat
- jisDateFormat
- systemGregorianDateFormat
- systemJulianDateFormat
- 以下の機能はサポートされていません。
- ArrayDictionaries、辞書、代行、レポート処理、consoleUI
- システム変数 sysVar.currentException。
OnException ブロックの使用はサポートされていますが、実行単位でどの例外が最後にスローされたかを識別することはできません。
- 多次元配列または配列固有関数 resizeAll および setMaxSizes。
ただし、多次元構造化フィールド配列はサポートされています。
- プリミティブ型 CLOB および BLOB (ただし、リテラルおよびサブストリング構文はサポートされています)
- SMALLFLOAT または FLOAT へのテキストの変換 (ただし、FLOAT または
SMALLFLOAT をテキストに変換することは許可されています)
- 以下のシステム関数はサポートされていません。
- システム・ライブラリー consoleLib、javaLib、および lobLib 内の関数
- sysLib 内の以下の関数
- callCmd
- errorLog
- getCmdLineArg
- getCmdLineArgCount
- getMessage
- getProperty
- setError
- setErrorForComponentID
- setLocale
- setRemoteUser
- startCmd
- startLog
- リンケージ・オプション・パーツの callLink 要素の type プロパティーは、iSeries プラットフォーム上での remoteCall の使用をサポートしません。
言語に関する考慮事項
トルコ語ロケールで実行されている Windows マシンで COBOL を生成する場合は、出力は作成されません。以下のステップを実行して、トルコ語で実行する EGL アプリケーションを開発できます。
- Windows ロケールを英語に設定します。
- 以下の VM 引数を使用して Eclipse IDE を開始して、ファイル・エンコードをトルコ語に設定します。
- VMArgs=-Dfile.encoding=Cp1254
- VMArgs=-Dibm.system.encoding=Cp1254
これらの値は、製品インストール・ディレクトリーにある rationalsdp.ini ファイルで設定できます。