演習 4: EGL データ・パーツの作成
EGL プロジェクトの作成と構成が完了しましたので、EGL アプリケーションを
作成する準備ができました。 通常、EGL Web アプリケーションの作成には、以下のステップがあります。
- パッケージを作成する。
パッケージはフォルダーのように機能し、
アプリケーションのソース・ファイルを編成および管理します。パッケージとは、そのパッケージの外の EGL 関数がインポートして使用できるコードの単位です。
- ライブラリーを作成する。
ライブラリーには 1 つのプロジェクト内で共用される、または
複数のプロジェクト間で共用される関数が含まれています。ライブラリーを使用すると、コードを整理して、一部のターゲット環境における実行時のパフォーマンスを改善することができます。
- データ・パーツを作成する。
データ・パーツは EGL ソース・ファイルで定義され、データ・パーツに基づく変数が EGL 関数で宣言および使用されます。
- 関数を作成する。
関数はデータ・アクセスおよびビジネス・ロジック
の命令です。共用関数は EGL ライブラリーに入ります。
- Web ページと関連する PageHandler を作成する。
前のステップでリストされたファイルと関数を作成すると、
ユーザー・インターフェースを提供する Web ページおよび PageHandler の作成を開始することができます。
- アプリケーションをテストする。
Web アプリケーション開発の最終ステップでは、
サーバーでのテストを行います。
この演習では、データ・パーツ・ウィザードを使用してパッケージ、
ライブラリー、およびデータ・パーツを作成します。データ・パーツ・ウィザードは、データベースへのアクセスに必要なデータ・パーツを作成するのに役立ちます。
EGL データ・パーツ・ウィザードの起動
- プロジェクト・エクスプローラー・ビューで、「EGLWeb」プロジェクトをクリックして選択する。
データ・パーツまたはファイルの作成前に
プロジェクトを選択しないと、予期した場所にそれらのパーツまたはファイルが表示されない可能性があります。
- メニュー・バーから、「ファイル」>「新規」>
「その他」をクリックする。新規メニューが開きます。
- 「EGL」を展開する。EGL プロジェクトではありません。
- 「EGL データ・パーツ」をクリックする。
- 「次へ」をクリックする。
「新規 EGL データ・パーツ」ウィンドウが表示されます。
- 「EGL プロジェクト名」リストで「EGLWeb」を選択する。
- 「追加」をクリックする。「新規データベース接続」ウィンドウが表示されます。
データベース接続の作成
データベース接続は、新規データ・パーツからサンプル・データベースへのリンクを提供します。
- 「データベース・マネージャーおよび JDBC ドライバーの選択」をクリックする。
- 「次へ」をクリックする。
- 「データベース・マネージャーの選択」の下で
「Cloudscape」を展開する。
- 「Cloudscape」の下で「V5.1」をクリックする。
- 「データベース・ロケーション」の横で、
このページの最上部にある「参照」ボタンをクリックする。
このページには 2 つ「参照」ボタンがありますので注意してください。ページの高い
位置にある、「データベース・ロケーション」の横のボタンをクリックしてください。
- EGLWeb プロジェクトに組み込まれている EGLSAMPC データベースのロケーションに
ブラウズして移動する。この時点におけるロケーションは workspace-location/EGLWeb/WebContent/EGLSAMPC になります。
この場合、workspace-location はワークスペースのロケーションです。
- 「データベース・ディレクトリーの選択」の下で、
「EGLSAMPC」フォルダーをクリックする。「フォルダー」フィールドには
「EGLSAMPC」と表示されます。
- 「OK」をクリックする。
ユーザー ID またはパスワードを入力する必要はありません。
新規データベース接続の画面は次のようになります。

- 「終了」をクリックする。データベース接続ウィザードがデータベースに接続して、
「新規 EGL データ・パーツ」ウィンドウに戻ります。
データベースからの CUSTOMER テーブルの検索
現在、新規 EGL データ・パーツ・ウィザードには、
「データの選択」ボックスにデータベースで使用可能なテーブルが表示されています。
- 「データの選択」の下で「CUSTOMER」をクリックする。
- 右矢印ボタン
をクリックする。CUSTOMER テーブルが「テーブル名」の下のデータ・パーツに追加されます。
「新規 EGL データ・パーツ」ウィンドウは次のようになります。

- 「終了」をクリックする。「生成情報」ウィンドウが開きます。
- 「生成情報」ウィンドウで「OK」をクリックする。
いくつかの新規ファイルが EGLWeb プロジェクトの EGLSource フォルダーに入っています。
- data および libraries という名前のパッケージ。
これらのパッケージには、フォルダーにファイルが保管されるのと同じような方法で他のファイルが保管されます。
- DataItems.egl という名前の EGL ソース・ファイル。
このファイルはプロジェクトの dataItem パーツを定義します。この場合、dataItems は
データベース・フィールドを表します。DataItems.egl では、データベースの
CUSTOMERS テーブルの各フィールドには対応する dataItem (CUSTOMER_ID および LAST_NAME など) があります。
- CustomerRecord.egl という名前の EGL ソース・ファイル。
このファイルには EGL レコード・パーツが含まれています。このレコード・パーツは、データベースから取り出された情報を含み、dataItem パーツを参照します。
- CustomerLibrary.egl という名前のファイル。
このファイルにはデータに対する操作 (レコードの読み取りやレコードの更新など) を実行するために必要な関数が保持されています。
ライブラリーの編集
CustomerLibrary.egl という名前のライブラリーには、レコード・パーツの
データにアクセスする関数が含まれています。これらの関数がデータベース内のデータ
にアクセスするように正しく作成され、構成されていることを確認する
必要があります。以下のステップでは、CustomerLibrary.egl ファイルに表示される可能性のあるエラーを訂正します。
- 「EGLSource」フォルダーで「Libraries」パッケージを開く。
- 「CustomerLibrary.egl」ファイルをダブルクリックする。
- deleteCustomer という名前の関数を見つける。この関数は、
関数宣言 Function deleteCustomer で始まっています。
- DELETE FROM で始まるこの関数の行は、
データベースから行を削除する SQL 呼び出しです。この関数は正しくデータベースにアクセスするように
作成されている必要があります。
- 「DELETE FROM」行を次のコードの行と置換する。
DELETE FROM EGL.CUSTOMER WHERE CUSTOMER.CUSTOMER_ID = :customer.CUSTOMER_ID
deleteCustomer 関数は次のようになります。

- updateCustomer 関数を見つける。この関数は、
関数宣言 Function updateCustomer で始まっています。
この関数は、
テーブル内の各フィールドに作用しているため、より長い SQL 呼び出しを
持ちます。
- execute sql#{ 行から
sqlStatusData.sqlStatus = 0; 行までのすべてのコードを
次のコードに置換する。
execute #sql{
UPDATE EGL.CUSTOMER SET FIRST_NAME = :customer.FIRST_NAME,LAST_NAME = :customer.LAST_NAME,
PASSWORD = :customer.PASSWORD,PHONE = :customer.PHONE, EMAIL_ADDRESS = :customer.EMAIL_ADDRESS,STREET = :customer.STREET,
APARTMENT = :customer.APARTMENT,CITY = :customer.CITY, STATE = :customer.STATE,POSTALCODE = :customer.POSTALCODE,
DIRECTIONS = :customer.DIRECTIONSWHERE CUSTOMER.CUSTOMER_ID = :customer.CUSTOMER_ID};
sqlStatusData.sqlStatus = 0;
updateCustomer 関数は次のようになります。

- ファイルを保管する。
- CustomerLibrary.egl ライブラリー内の任意の場所を右クリックし、
ポップアップ・メニューから「生成」をクリックする。あるいは、Ctrl+G 押すこともできます。
レコード定義の編集
EGL レコード・パーツ定義は、CustomerRecord.egl ファイルにあります。以降の EGL チュートリアルで、レコード・パーツについてより詳しく学習しますが、ここでは、レコードが正しく定義されていることを確認する必要があります。
- 「EGLSource」フォルダーで「data」パッケージを開く。
- 「CustomerRecord.egl」ファイルをダブルクリックする。
Record Customer type sqlRecord で始まるコードが、サンプル・データベースのレコードを保持する EGL データ・パーツを定義しています。
- CustomerRecord.egl ファイルで、indexInArray int {persistent = no}; という行のコードを削除する。
- ファイルを保存して閉じる。
これで、「演習 5: EGL ライブラリーの作成」を開始する準備ができました。