ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 マッピング内でのWebサービスの使用
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

マッピング内でのWebサービスの使用

Webサービスの本質はファンクションであるため、マッピング内で使用できます。これにより、Warehouse Builderで既存のWebサービスに存在する機能を活用できるようになります。

Warehouse Builderでは、Oracle DatabaseでサポートされているWebサービスを活用して、マッピング(PL/SQLパッケージ)内でWebサービスを使用できます。

Webサービスをソースまたはターゲットとして使用するマッピングを作成するには、次の方法のいずれかを使用します。

JPublisherによってマッピングでWebサービスを使用するための手順

JPublisherでは、オブジェクト・タイプ(Oracleオブジェクト、VARRAY、ネストした表、REFまたはオブジェクト・タイプ)がJavaクラスに変換され、オブジェクトの属性ごとにアクセッサ・メソッドが生成されます。JPublisherでは、オブジェクト・タイプとJavaクラス間、オブジェクト属性タイプとそれに対応するJavaタイプ間でマッピングが作成されます。

PL/SQLパッケージの場合には、パッケージ内のサブプログラムごとにラッパー・メソッドを含むクラスがJPublisherで作成されます。サブプログラムごとに生成されたラッパー・メソッドは、元のメソッドが静的であっても、オブジェクト・メソッドと同様に必ずインスタンス・メソッドとなります。JPublisherで作成されるラッパー・メソッドには、PL/SQLストアド・プロシージャをJavaコードから起動したり、Javaストアド・プロシージャをクライアントJavaプログラムから起動するための便利な方法が備わっています。

  1. JPublisherを使用して、WSDLファイルのテーブル・ファンクション・プロキシを生成し、PL/SQLラッパーとプロキシ・コードを発行します。

    たとえば、次のコマンドは、http://99.22.32.21:9762/services/test_ws?wsdlというURLで使用可能なWebサービスのプロキシを生成します。

    jpub -user wh_tgt/wh_tgt_pswd -sysuser system/oracle -dir=test_ws
         -proxywsdl=http://90.22.32.21:9762/services/test_ws?wsdl
         
    

    ここで、wh_tgtおよびwh_tgt_pswdは、マッピングが配布されているWarehouse Builderの場所のデータベース資格証明です。

    JavaクラスとPL/SQLラッパーがJPublisherで生成され、指定のスキーマ(WH_TGT)にロードされます。

  2. (オプション)WebサービスをコールするPL/SQLコードを定義します。

    この手順によって、テーブル・ファンクションへのコールアウトがOracle Databaseレベルで動作することが、Warehouse Builderを介さずに確認されます。

    次の例では、パッケージmy_packに含まれるmy_funcというファンクションに対するコールアウトが動作することを確認します。

    SELECT * FROM TABLE(WH_TGT.MY_PROC.MY_FUNC)
    
  3. テーブル・ファンクション・プロキシを生成したWebサービスのメタデータを、メタデータのインポート・ウィザードによってWarehouse Builderにインポートします。

    メタデータには、ユーザー定義のタイプとPL/SQLパッケージがあります。

  4. Webサービスを使用するWarehouse Builderマッピングを開き、Webサービスをコールする「テーブル・ファンクション」演算子を追加します。次を実行します。

    • 「テーブル・ファンクション」演算子の「テーブル・ファンクション名」プロパティで、マッピングに追加する、(手順1で)生成されたテーブル・ファンクションの名前を入力します。

    • 「テーブル・ファンクション」演算子のINGRP1グループで、「入力パラメータ・タイプ」フィールドを使用して、テーブル・ファンクションで受け入れる入力タイプを選択します。

  5. Webサービスへの入力を表すソース行を定義します。

    Webサービス入力を表す演算子を、「テーブル・ファンクション」演算子の入出力グループにマップします。

  6. マッピング内のテーブルで、Webサービスの出力をキャプチャします。

    「テーブル・ファンクション」演算子から出力としてコレクション・タイプが戻されるため、必要に応じて、「オブジェクトの拡張」演算子を使用して、個々の出力行をターゲット表にマップします。

  7. (オプション)企業のファイアウォールの背後で実行する場合など、Webプロキシを設定する必要がある場合は、プロシージャINITIALIZE_PROXYを使用する「マッピング前プロセス」演算子を使用してHTTPプロキシを構成します。

  8. マッピングを生成し、実行します。