演習 3.2: ビルトイン EGL 関数の使用

EGL にはビルトイン関数のライブラリーがいくつか含まれています。以下で、それらのライブラリーの一部について簡単に説明します。ライブラリーごとに、関連したヘルプ・トピックがあります。

mathLib
数学関数および科学関数
strLib
ストリング操作関数
javaLib
Java コードと連携する関数
sysLib
汎用関数

また、EGL には、実行時に更新されるシステム変数の sysVar ライブラリーが含まれています。

例として、前述のライブラリーに含まれているもののうち、最もよく使用される関数および変数について説明します。

sysLib.size()

この関数は、データ・テーブルの行の数または配列内のエレメントの数を戻します。その場合の配列は、構造項目配列、dataItem またはレコードの静的配列、dataItem またはレコードの動的配列のいずれかです。

sysVar.sessionID

Web アプリケーションでは、このシステム変数に Web アプリケーション・サーバー・セッション固有の ID が入ります。この値は、プログラム間で共有するファイルまたはデータベース情報にアクセスするためのキー値として使用することができます。

strLib.findStr()
この関数は、ストリング内のサブストリングが最初に現れる位置を検索します。
VGVar.currentGregorianDate
この変数には、長いグレゴリオ形式の現在のシステム日付が入ります。値は、このシステム変数がプログラムによって参照される度に自動的に更新されます。
sysLib.setError()
この関数は、メッセージを PageHandler 内の項目または PageHandler 全体に関連付けます。メッセージは、JSP 内の JSF メッセージまたはメッセージ・タグの位置に入れられ、関連する Web ページが開かれたときに表示されます。
mathLib.sqrt()

この関数は数値の平方根を戻します。この関数は、0 以上の数値を処理します。

J2EELib.getSessionAttr()
この関数は、指定されたキーを使用してセッション・オブジェクトから引数を取り出し、指定された変数へ入れます。この関数は、Web アプリケーションで実行する PageHandler およびプログラムで役立ちます。指定されたキーを持つオブジェクトが検出されない場合、ターゲット変数は変更されません。

この演習では、以上のビルトイン関数および変数をいくつか使用する Web ページを作成します。

ページの作成

  1. このチュートリアルで使用したすべてのページを作成したのと同じ方法で、Faces JSP ファイルを新規作成する。新規 Faces JSP ファイルには以下の名前を付けます。

    SystemLibraries

  2. 新規ページで、デフォルト・テキストの「Place your page content here.」を削除する。
  3. 削除したテキストの代わりに、EGL system library examples と入力して、Enter キーを押す。
  4. ページを右クリックして、「ページ・コードの編集」をクリックする。
  5. ページ・コード・ファイル内のすべてのコードを削除して、代わりに以下のコードを入力する。
    package pagehandlers;
    
    import data.*;
    
    PageHandler SystemLibraries
      {view = "SystemLibraries.jsp", onPageLoadFunction = onPageLoad}
    
    fields fieldsForDisplay;
    customers customer[];
    
      Function onPageLoad()
        CustomerLib.getAllCustomers(customers);
        J2EELib.setSessionAttr("sess",fields.setSessionAttrValue);
      End
    
    //This is the main function of the PageHandler.
    //It calls the system functions.
      function callEGLSystemFunctions()
        fields.tableValue = sysLib.Size(Customers);
        fields.sqrtResult = mathLib.sqrt(fields.sqrtValue);
        fields.currentDateValue = VGVar.currentGregorianDate;
        J2EELib.getSessionAttr("sess",fields.getSessionAttrValue);
        fields.sessionIDValue = sysVar.sessionID;
    
        fields.findPositionInString = 1;
        fields.findSuccessFail = strLib.findStr(fields.stringValue,
          fields.findPositionInString,fields.findStringLength,
          fields.findStringValue);
    
      end
    
    End
    
    //Structure of variables used in system calls
    Record fieldsForDisplay type basicRecord
      tableValue int;
      setSessionAttrValue int {value=1111};
      getSessionAttrValue int;
      sqrtValue int {value=111};
      sqrtResult decimal(7,2);
      currentDateValue char(10);
      stringValue char(222) {value="This is my full character variable."};
      findStringValue char(5) {value="full"};
      findPositionInString int {value=1};
      findStringLength int {value=222};
      findSuccessFail int;
      sessionIDValue char(8);
    end

    以下は、ここで挿入したコードに関する技術面での注釈です。

  6. ファイルを保存して閉じる。
  7. SystemLibraries.jsp ページに戻る。
  8. ページ・データ・ビューから、「fields」レコードをページの下部へドラッグする。
  9. 「挿入のコントロール」ウィンドウで、「既存レコードの更新」をクリックする。
  10. オプション」をクリックする。
  11. 削除ボタン」チェック・ボックスをクリアする。
  12. 実行ボタン」チェック・ボックスを選択する。
  13. Submit button Label」フィールドに Run built-in functions と入力する。
  14. OK」をクリックする。
  15. 終了」をクリックする。
  16. ページのフィールドの下に新規ブランク行を追加する。
  17. ページ・データ・ビューから、「customers」レコードを新規ブランク行へドラッグする。
  18. 「リスト挿入のコントロール」ウィンドウで「なし (None)」をクリックする。
  19. 列名 (Column Name)」列で、「first_name」フィールドおよび「last_name」フィールドのチェック・ボックスを選択する。
  20. 終了」をクリックする。
  21. ページ・データ・ビューから、「callEGLSystemFunctions()」関数をページ上の「Run built-in functions」ボタンへドラッグする。
  22. ページを保管する。
  23. ページをサーバーで実行する。「Run built-in functions」ボタンをクリックすると、EGL システム関数および変数によって作成された値がページに表示されます。

    ページは次のようになります。

    Web ブラウザーにおける SystemLibraries.jsp ページの外観

ヘルプ・トピックで、その他の EGL システム関数について調べることができます。

演習 3.3: セッション変数のトラッキング」に進んでください。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.