Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Oracleの「Developer」で作成された画面をCurlで実装!

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

本格的にCurlに移行したい場合

 では、前ページまでで説明した、画面の作り替えだけでなく、本格的にDeveloperからCurlへと移行したい場合は、どのようにすればよいのでしょうか。

 残念ながら、Developerで作成されたプログラムをCurlに移行するための専用のツールはありません。しかし、ちょっとした工夫で比較的簡単に移行できます。

Developer側のロジック

 Developerのソースコードは、PL/SQLで作られているため、それらの業務ロジックをOracleのストアドプロシージャに移行させ、Javaにて移行したストアドプロシージャを呼び出すサービスクラスを作成し、Curlより作成したサービスクラスを呼び出す構成にします。こうすれば、スムーズに移行でき、既存資産も活かせます。

  1. テキスト項目にコード入力確定時にコードに紐づく名称を表示(テキスト項目のWHEN-VALIDATE-ITEMにて商品マスタから名称を取得するSQL文を実行し、結果を名称項目に設定)
    テキスト項目のWHEN-VALIDATE-ITEM(Developer側で定義)
    BEGIN
       //商品マスタから名称を取得する。
       SELECT 商品名 INTO :検索条件.商品名 
       FROM 商品マスタ 
      WHERE 商品コード = :検索条件.商品コード
    END;
    
  2. 検索ボタン押下時に在庫情報を取得し、表示(検索ボタンの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;
    
Developerでの実装イメージ(在庫照会機能)
Developerでの実装イメージ(在庫照会機能)

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+ORBでの実装イメージ
Curl+ORBでの実装イメージ

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:CurlデベロッパーセンターPick Up

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5