EGL バージョン 6.0 の新機能

注: JavaServer Faces に基づいた Web アプリケーションの作成に旧バージョンの EGL を使用していた場合は、ワークベンチで次のようにしてください。
  1. 「ヘルプ」 > 「ヘルプ目次」をクリックします。
  2. ヘルプ・システムの「検索 (Search)」テキスト・ボックスに、『Web プロジェクト内の JavaServer Faces リソースのマイグレーション (Migrating JavaServer Faces resources in a Web project)』というストリングの少なくとも最初の文字を入力します。
  3. 「実行 (GO)」をクリックします。
  4. 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 文に関連したすべてのオープン・カーソルをクローズします。
  • ストリングの処理が改良されました。
    • 次の例のように、テキスト式の中にサブストリングを指定できます。
      myItem01 = "1234567890";
      
      // myItem02 = "567"       
      myItem02 = myItem01[5:7];
    • テキスト・リテラルの中にバックスペース、用紙送り、またはタブを指定できます。
    • ストリングの比較に、次の 2 つのパターン・タイプを使用できます。
      • LIKE キーワードを組み込んだ SQL 型のパターン。以下に例を示します。
        // variable myVar01 is the string expression
        // whose contents will be compared to a like criterion
        myVar01 = "abcdef";
        
        // the next logical expression evaluates to "true"
        if (myVar01 like "a_c%")
          ;
        end
      • 正規表現パターン。以下に例を示します。
        // variable myVar01 is the string expression
        // whose contents will be compared to a match criterion
        myVar01 = "abcdef";
        
        // the next logical expression evaluates to "true"
        
        if (myVar01 matches "a?c*")     
          ;
        end
    • 以下のテキスト・フォーマット設定システム関数を使用できます。
      strLib.characterAsInt
      文字ストリングを整数ストリングに変換します。
      strLib.clip
      戻された文字ストリングの末尾から、ブランク・スペースと NULL を削除します。
      strLib.formatNumber
      数値をフォーマット設定されたストリングとして戻します。
      strLib.integerAsChar
      整数ストリングを文字ストリングに変換します。
      strLib.lowercase
      文字ストリング内のすべての大文字値を小文字値に変換します。
      strLib.spaces
      指定された長さのストリングを戻します。
      strLib.upperCase
      文字ストリング内のすべての小文字値を大文字値に変換します。
  • 新しい型の変数と構造体フィールドを宣言できます。
    新しい数値型は以下のとおりです。
    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 文は、forforEachwhile のいずれかの文 (これらの文自体も continue 文を含んでいる) の末尾に制御を渡します。 収容文の実行が続行されるか終了するかは、収容文の開始時に実行される論理テストによって決まります。
    • システム・コマンドは、(sysLib.callCmd 関数を発行することによって) 同期式に実行するか、(sysLib.startCmd 関数を発行することによって) 非同期式に実行できます。
    • 次の 2 つの新しい関数を使用して、ループ内のコマンド行引数にアクセスできます。
      • sysLib.callCmdLineArgCount は、引数の数を戻します。
      • sysLib.callCmdLineArg は、引数リスト内の指定した位置にある引数を戻します。
    • それぞれの文節が異なる論理式へ関連付けられている 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 の新機能

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.