本格的にCurlに移行したい場合
では、前ページまでで説明した、画面の作り替えだけでなく、本格的にDeveloperからCurlへと移行したい場合は、どのようにすればよいのでしょうか。
残念ながら、Developerで作成されたプログラムをCurlに移行するための専用のツールはありません。しかし、ちょっとした工夫で比較的簡単に移行できます。
Developer側のロジック
Developerのソースコードは、PL/SQLで作られているため、それらの業務ロジックをOracleのストアドプロシージャに移行させ、Javaにて移行したストアドプロシージャを呼び出すサービスクラスを作成し、Curlより作成したサービスクラスを呼び出す構成にします。こうすれば、スムーズに移行でき、既存資産も活かせます。
-
テキスト項目にコード入力確定時にコードに紐づく名称を表示(テキスト項目のWHEN-VALIDATE-ITEMにて商品マスタから名称を取得するSQL文を実行し、結果を名称項目に設定)
テキスト項目のWHEN-VALIDATE-ITEM(Developer側で定義)
BEGIN //商品マスタから名称を取得する。 SELECT 商品名 INTO :検索条件.商品名 FROM 商品マスタ WHERE 商品コード = :検索条件.商品コード END;
-
検索ボタン押下時に在庫情報を取得し、表示(検索ボタンのWHEN-BUTTON-PRESSEDにてDBから各種情報を取得するためのSQL文(カーソル)を実行し取得結果を明細に設定)
検索ボタンのWHEN-BUTTON-PRESSED(Developer側で定義)
DECLARE CURSOR C_SQL IS SELECT 倉庫コード,….. FROM 倉庫マスタ,…… WHERE 品目コード = …... BEGIN first_record; FOR r_SQL in C_SQL 受注 LOOP //明細行に設定 create_record; :明細.倉庫コード := r_SQL.倉庫コード; ………………………. END LOOP; END;
Curl+ORB側のロジック
-
Curl
APサーバ上のサービスクラスを呼び出し、その結果を該当の画面項目に設定
-
Java(APサーバ)
DBにてテキスト項目のWHEN-VALIDATE-ITEM、検索ボタンのWHEN-BUTTON-PRESSEDを実装したストアドプロシジャを作成し、Java(APサーバ)より実行、その戻り値をJavaのデータクラスに設定するようなサービスクラスを作成
-
DBサーバ
テキスト項目、ボタンに定義しているトリガーのロジックをストアドプロシジャ(※注1)に移行
DECLARE CURSOR C_SQL IS SELECT 倉庫コード,….. FROM 倉庫マスタ,…… WHERE 品目コード = …... BEGIN first_record; FOR r_SQL in C_SQL 受注 LOOP //明細行に設定 create_record; :明細.倉庫コード := r_SQL.倉庫コード; ………………………. END LOOP; END;BEGIN //商品マスタから名称を取得する。 SELECT 商品名 INTO :検索条件.商品名 FROM 商品マスタ WHERE 商品コード = :検索条件.商品コード END;
※注1 ストアドプロシジャの定義・テキスト項目のWHEN-VALIDATE-ITEM
IN:商品コード
OUT:商品名
・検索ボタンのWHEN-BUTTON-PRESSED
IN:商品コード
OUT:明細行配列
を、NESTED TABLEにて定義します。
業務ロジック・データアクセス部分は全てDB層にて定義しており、APサーバ(Java)層は、ロジックを呼び出すだけのラップサービスです。3層構造ですが、APサーバの役割が小さくてすみます。
この記事は参考になりましたか?
- CurlデベロッパーセンターPick Up連載記事一覧
-
- モバイルアプリをCurlで作る!
- Oracleの「Developer」で作成された画面をCurlで実装!
- 使ってみようメトリクス!
- この記事の著者
-
SCSソリューションズ株式会社 井野 恵介(イノケイスケ)
2000年、九州住商情報システムに入社後多くのERPパッケージ開発を担当、その後現在のCurlビジネスに従事。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
