ヘッダーをスキップ
Oracle Databaseプラットフォーム共通日本語README
11g リリース2(11.2)
B56292-13
  目次
目次

前
 
次
 

Oracle Warehouse Builder use_webservice_in_mapping.tcl README

原典情報: $ORACLE_HOME\owb\misc\mappingWS\readme.txt


説明

スクリプトuse_webservice_in_mapping.tclは、マッピング内でWebサービスを使用するために使用されます。これは、ファンクションによって実装されます。

このスクリプトの実行後に、エキスパート・モジュールWSDL_UTLとパブリック変換パッケージWB_WEBSERVICEが作成されます。
WB_WEBSERVICEには、2つの変換と1つのプロシージャがあります。
HTTP_SET_PROXY: このプロシージャは、UTL_HTTPコールに対するHTTPプロキシの設定に使用され、通常は、マッピングでpre_processとして使用されます。
WS_INVOKE_P: このファンクションは、UTL_HTTPパッケージを介してWebサービスをコールします。
WS_INVOKE: WS_INVOKE_Pの特別なケースで、パラメータはありません。

WSDL_UTLには、2つのエキスパートがあります。
CREATE_FUNCTION_FROM_WSDL: このエキスパートは、WSDLファイルに基づいてファンクションを生成します。生成されたファンクションは、WS_INVOKE_PをコールしてWebサービスをコールします。
CREATE_UTILS_FROM_WSDL: このエキスパートは、プラッガブル・マッピングを生成します。UTL_HTTPコールで返されたXMLドキュメントから値を抽出する場合に使用されます。

ファンクションおよびプラッガブル・マッピングが生成された後は、これらをマッピングで使用してWebサービスをコールし、結果を取得できます。

スクリプトの実行

スクリプトを実行する前に、リポジトリ所有者情報など、スクリプトの情報を変更する必要があります。

use_webservice_in_mapping.tclはtclスクリプトです。このスクリプトは、「OMBPlus.sh use_webservice_in_mapping.tcl」と指定して実行するか、最初にOMBPlusを実行した後、ソースとしてスクリプトを指定します。

このスクリプトを(vncの場合と同様に)X11 DISPLAYで実行していることを確認してください。X11 DISPLAYが使用できない場合は失敗します。

エキスパートの実行

スクリプトの実行後は、エキスパートとファンクションが作成されます。 これで、OWBクライアントにログインして、パブリック・プロジェクトに移動し、エキスパートを実行できます。

エキスパートを実行する前に、最初にプライベート・プロジェクトを入力する必要があります。入力すると、エキスパートによって、処理するWSDLファイルを選択するように要求されます。次に、生成されたファンクションまたはプラッガブル・マッピングの格納に使用する名前を指定する必要があります。 生成されたファンクションは、パブリック・プロジェクトの「パブリック変換」に格納され、プラッガブル・マッピングは、選択したプライベート・プロジェクトの「プラッガブル・マッピング」に格納されます。

マッピングでの使用

対応するファンクションの生成後、そのファンクションは、通常のファンクションと同様にマッピング内で使用できます。 WSDLの例は、http://www.dataaccess.nl/wk2006/footballpoolwebservice.wso?WSDLを参照してください。

通常のプロセスは次のとおりです。

  1. Citiesなどのマッピングにファンクションを追加します。

  2. ファンクションに対する入力を指定します(ある場合)。

  3. 値を抽出するためのプラッガブル・マッピングを選択します。正しいプラッガブル・マッピング名は、操作の出力メッセージであるWSDLから取得できます。ここではCITIESRESPONSEです。

  4. アップストリーム・プラッガブル・マッピングの戻り結果を確認します。戻り結果が目的としている単純型の場合、処理は完了です。それ以外の場合は、複合型を抽出するためのプラッガブル・マッピングの検索を続行します。 ここでは、CITIESRESPONSEの戻り結果はCITIESRESULTであり、まだ複合型です。このため、さらに抽出するために、CITIESRESULTプラッガブル・マッピングも追加します。 CITIESRESULTの出力は単純型です。したがって、抽出プロセスは完了です。 これで、値をターゲット表にロードできます。

  5. WebサービスのコールにUTL_HTTPを使用しているため、これに対するHTTPプロキシを設定する必要があります。 設定すると、「マッピング前プロセス」を追加してHTTP_SET_PROXYプロシージャにバインドし、「マッピング入力パラメータ」を使用してプロシージャに値を指定できます。

  6. マッピングの式にextractValueを使用しているため、マッピングの生成モードを「セット・ベース」に変更します。

  7. WB_WEBSERVICEパッケージをデプロイし、使用済ファンクションをデプロイし(コントロール・センターに移動し、Oracleモジュールを選択すると、パブリック変換を検索できます)、マッピングと関連表をデプロイします。

  8. マッピングを実行して結果を取得します。

注意

次の点に注意する必要があります。

  1. Oracle 11gではセキュリティ機能が拡張されているため、WebサービスのURLをACLに追加する必要があります。追加しない場合は、正しい結果が取得されません。

  2. プラッガブル・マッピングはカーディナリティの変更演算子として処理されるため、異なるグループからターゲット表に属性を接続するために、JoinまたはSet演算子を使用する必要がある場合があります(拡張のOracle Bug#4319045)。または、プラッガブル・マッピングは参照するのみにして、独自の式演算子を作成することもできます。