注: JavaServer Faces に基づいた Web アプリケーションの作成に旧バージョンの EGL を使用していた場合は、ワークベンチで次のようにしてください。
- 「ヘルプ」 > 「Rational ヘルプ (Rational Help)」 をクリックします。
- ヘルプ・システムの「検索 (Search)」テキスト・ボックスに、『Web プロジェクト内の JavaServer Faces リソースのマイグレーション (Migrating JavaServer Faces
resources in a Web project)』というストリングの少なくとも最初の文字を入力します。
- 「実行 (GO)」をクリックします。
- 「Web プロジェクト内の JavaServer Faces リソースのマイグレーション (Migrating JavaServer Faces resources in a Web project)」をクリックし、そのトピック内の指示に従います。
バージョン 6.0 では、次のように EGL 言語の能力が向上しています。
- リレーショナル・データベースの処理が改良されました。
- 新規ウィザードにより、次の作業を迅速に行うことができます。
- リレーショナル・データベース表からデータ・パーツを直接作成する
- そのような表から表の行の作成、読み取り、更新、および削除を行う Web アプリケーションを作成する
- 次のような新しいシステム関数が使用できます。
- sysLib.loadTable はファイルから情報をロードし、リレーショナル・データベース表に挿入します。
- sysLib.unloadTable はリレーショナル・データベース表から情報をアンロードし、ファイルに挿入します。
- Java™ コードを生成する場合、カーソル内の SQL データベース行にアクセスする方法として、(常にそうであったように) 次の行へナビゲートするか、最初の行、最後の行、前の行、現在の行へナビゲートするか、カーソル内の絶対位置または相対位置を指定することができます。
- forEach 文を使用して、SQL 結果セットの行を容易にループさせることができます。
- freeSQL ステートメントは、動的に準備された SQL ステートメントに関連したリソースを解放し、その SQL ステートメントに関連したすべてのオープン・カーソルをクローズします。
- ストリングの処理が改良されました。
- 新しい型の変数と構造体項目を宣言できます。
新しい数値型は以下のとおりです。
- FLOAT
- 有効数字が 16 桁の倍精度浮動小数点数を格納する 8 バイト領域
- MONEY
- 有効数字が最大 32 桁までの固定小数点 10 進数として格納される通貨金額
- SMALLFLOAT
- 有効数字が 8 桁の単精度浮動小数点数を格納する 4 バイト領域
新しい日時型は以下のとおりです。
- DATE
- 8 つの単一バイトの数字で表される特定のカレンダー日付
- INTERVAL
- 1 から 21 個の単一バイトの数字で表され、時分秒を表す「hhmmss」などのマスクへ関連付けられている時間幅
- TIME
- 6 つの単一バイトの数字で表される時刻のインスタンス
- TIMESTAMP
- 1 から 20 個の単一バイトの数字で表され、年月日と時を表す「yyyyMMddhh」などのマスクへ関連付けられている時刻のインスタンス。
- 構文に以下のオプションが追加されました。
- 構造体項目の配列のエレメントは、次のようにして常に参照できました。しかし、iFix の変更を考慮して、この構文を回避する必要があります。
mySuperItem.mySubItem.mySubmostItem[4,3,1]
次の構文が強く推奨されています。mySuperItem[4].mySubItem[3].mySubmostItem[1]
- パラメーター、use 文エントリー、set 文エントリー、または変数を宣言するときに、次の例のように、ID のコンマ区切りリストを使用できます。
myVariable01, myVariable02 myPart;
- 数式の中で、指数を指定するのに数値の前に二重のアスタリスク (**) を使用できるようになり、例えば、8 の 3 乗は 8**3 と指定できます。
- 日付、時刻、タイム・スタンプ、または間隔へと解決されるそれぞれの式を指定できるようになり、日付の演算を使用して、2 つの日付の間の分数を計算するなど、さまざまなタスクを実行できます。
- 日付と時刻の処理に、以下の追加機能も使用できます。
- DateTimeLib.currentTime および DateTimeLib.currentTimeStamp は、現在時刻を反映するシステム変数です。
- 新しいフォーマット設定関数を、日付 StrLib.formatDate)、時刻 (StrLib.formatTime)、およびタイム・スタンプ (sysLib.TimeStamp) に使用できます。
- 以下の各関数により、一連の文字を日時型の項目に変換でき、その項目を日時の式に使用できます。
- DateTimeLib.dateValue は、日付を戻します。
- DateTimeLib.timeValue は、時刻を戻します。
- DateTimeLib.timeStampValue は、「yyyyMMdd」などの特定のマスクへ関連付けられているタイム・スタンプを戻します。
- DateTimeLib.intervalValue は、「yyyyMMdd」などの特定のマスクへ関連付けられている間隔を戻します。
- DateTimeLib.extendDateTimeValue は、日付、時刻、またはタイム・スタンプを受け入れ、それを「yyyyMMddmmss」などの特定のマスクへ関連付けられている項目へ拡張します。
- 以下の新しい汎用文を使用できます。
- for 文は、ループ内でテストによって真と評価された回数のみ実行される文ブロックを組み込みます。このテストはループの開始時に実行され、カウンターの値が指定された範囲内であるかどうかを示します。
- continue 文は、for、forEach、while のいずれかの文 (これらの文自体も continue 文を含んでいる) の末尾に制御を渡します。収容文の実行が続行されるか終了するかは、収容文の開始時に実行される論理テストによって決まります。
- システム・コマンドは、(sysLib.callCmd 関数を発行することによって) 同期式に実行するか、(sysLib.startCmd 関数を発行することによって) 非同期式に実行できます。
これらの関数は、Java 出力を生成する場合にのみ使用できます。
- 次の 2 つの新しい関数を使用して、ループ内のコマンド行引数にアクセスできます。
- sysLib.callCmdLineArgCount は、引数の数を戻します。
- sysLib.callCmdLineArg は、引数リスト内の指定した位置にある引数を戻します。
これらの関数は、Java 出力を生成する場合にのみ使用できます。
- それぞれの文節が異なる論理式へ関連付けられている case 文を指定できるようになりました。この新しい構文を使用した場合、EGL ランタイムは最初に真と評価された式へ関連付けられている文を実行します。
case
when (myVar01 == myVar02)
conclusion = "okay";
when (myVar01 == myVar03)
conclusion = "need to investigate";
otherwise
conclusion = "not okay";
end
- 関数パラメーターを入力だけに使用するか、出力だけに使用するか、それとも両方に使用するかを制御できます。また、無制限に「両方に使用」するデフォルト設定を受け入れることにより、選択を回避できます。
- 次のような場合には、単一の項目や定数より複雑な日時式、テキスト式、または数式を指定できるようになりました。
- return 文によってオペレーティング・システムへ提供される値を指定する場合
- 関数呼び出しまたはプログラム呼び出しで渡される引数を指定する場合。ただし、受け取り側パラメーターの特性は、生成時に既知であることが必要です。
- プログラムを終了するときに、複雑な数式を指定できるようになりました。
開発環境も、次のように改良されました。
- 次の 2 つの新規フィーチャーにより、コードの複雑さが増した場合でもパーツに迅速にアクセスできます。
- 「パーツ参照」ビューにより、プログラム、ライブラリー、または PageHandler
が参照する EGL パーツの階層リストを表示できます。また、そのリストから、任意の参照先パーツにアクセスできます。
- EGL 検索メカニズムにより、ワークスペース内またはプロジェクトのサブセット内にある一連のパーツまたは変数にアクセスするための検索基準を指定できます。
- 最後に、広く使用されている Web パースペクティブに配慮して、EGL Web パースペクティブが除去されました。
関連する概念
EGL から EGL へのマイグレーション
EGL に関する追加情報のソース
EGL 6.0 iFix の新機能