ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Enterprise Scheduler開発者ガイド
11g リリース1 (11.1.1.7)
B66615-04
  目次へ移動
目次

前
 
次
 

11 Oracle Enterprise Scheduler Webサービスの使用

この章では、Oracle Enterprise Scheduler Webサービスを使用して、Oracle Enterprise Schedulerランタイム機能のサブセットにアクセスする方法について説明します。

この章では、次の項目について説明します。

11.1 Oracle Enterprise Scheduler Webサービスの概要

Oracle Enterprise Schedulerでは、エンタープライズ・レベルのスケジューリング用の豊富な機能セットを提供します。機能には、次の操作のサポートが含まれます。

クライアント・アプリケーションは、Oracle Enterprise Scheduler Webサービス(ESSWebservice)を使用して、Oracle Enterprise Schedulerランタイム機能のサブセットにアクセスできます。ESSWebserviceは、主に、BPELプロセスからOracle Enterprise Schedulerを呼び出すなど、SOA統合をサポートするために提供されています。ただし、Webサービスを使用してOracle Enterprise Schedulerと相互作用する必要があるすべてのクライアントでは、ESSWebserviceを使用できます。ESSWebserviceでは、リクエスト発行およびリクエスト管理用のジョブ・スケジューリングおよび管理機能を公開しています。

ESSWebserviceは、Oracle Enterprise Schedulerランタイム・フレームワークにおけるJava EEアプリケーションであるOracle Enterprise Schedulerアプリケーション内でデプロイされます。このため、ESSWebserviceは、Oracle Enterprise Schedulerがインストールおよびデプロイされているすべてのノードで使用できます。

ESSWebserviceは同期Webサービスであり、たとえば、呼び出された操作はすべて同期操作となります。内部的に、Oracle Enterprise Schedulerでのジョブ実行モデルは非同期であるため、API自体は非同期である必要はありません。ただし、Oracle Enterprise Scheduler Webサービスは、ジョブ完了イベントを(コアAPIレイヤーでのOracle Enterprise Scheduler EventListener規定の実装と同様の方法で)非同期で取得する機能も提供します。

ESSWebservice WSDLでは、ESSWebserviceの完全な機能を記述します。表11-1に、ESSWebserviceで使用可能な操作の要約を示します。

表11-1 ESSWebserviceで使用可能な操作の要約

操作 通信タイプ 説明

addPPAction

同期

後処理アクションをジョブ・セット・リクエスト内のステップに追加します。このメソッドは、リクエストの発行前にコールされます。このメソッドでは、同時処理においてadd_printer、add_notification、add_layoutによって以前サポートされていたアクションのサポートを提供します。これらのレガシー・ルーチンへのパラメータは、addPPActionへの引数として、元のルーチンで宣言されていた順序で渡されます。詳細は、第11.8項「追加のESSWebService操作の使用」を参照してください。

addPPActions

同期

リクエスト内の複数のアクションをパッケージ化できる点を除き、addPPActionと似ています。

cancelRequest

同期

終了状態にないリクエストの処理を取り消します。

deleteRequest

同期

終了状態にあるリクエストを削除対象としてマークします。リクエストがほとんどのメソッドでアクセスできなくなりますが、データは物理的に削除されません。

親リクエストの場合、この操作はすべての子にカスケードされます。

getCompletionStatus

非同期

リクエストの完了時に非同期ステータス更新に登録します。個別の非同期レスポンスでの一方向操作です。

getRequestDetail

同期

指定したリクエストのランタイム詳細を取得します。

getRequestState

同期

指定したリクエストの現在の状態を取得します。

holdRequest

同期

WAITまたはREADY状態にあるリクエストのそれ以降の処理を保留にします。親リクエストの場合、この操作は適格なすべての子リクエストにカスケードされます。

releaseRequest

同期

リクエストのHOLD状態を解除します。親リクエストの場合、この操作は適格なすべての子リクエストにカスケードされます。

setAsyncRequestStatus

同期

非同期Javaジョブのステータスを設定します。

setNLSOptions

同期

リクエストのNLS環境オプションを設定します。

setStepsArgs

同期

以前の同時処理スタイルでの引数を、ジョブ・セット・リクエスト内のステップ用のOracle Enterprise Schedulerプロパティにマーシャリングします。この操作は、リクエストの発行前に呼び出されます。詳細は、第11.8項「追加のESSWebService操作の使用」を参照してください。

setSubmitArgs

同期

以前の同時処理スタイルでの引数をOracle Enterprise Schedulerプロパティにマーシャリングします。この操作は、リクエストの発行前に呼び出されます。各引数のキーはARGUMENT_PREFIX#であり、#は引数の元の値です。たとえば、ARGUMENT_PREFIX1="firstArg"およびARGUMENT_PREFIX2="secondArg"です。詳細は、第11.8項「追加のESSWebService操作の使用」を参照してください。

submitRecurringRequest

同期

新しい再帰ジョブ・リクエスト(スケジュールが設定されたリクエスト)を発行します。詳細は、第11.8項「追加のESSWebService操作の使用」を参照してください。

submitRequest

同期

新しいジョブ・リクエストを発行します。詳細は、第11.4項「BPELプロセスでOracle Enterprise Scheduler ESSWebserviceを使用するユースケース」を参照してください。


11.2 ESSWebserviceアプリケーションの開発および使用

Oracle Enterprise Schedulerは、ジョブ・リクエスト(Javaタイプのジョブ・リクエストなど)をそのジョブを発行したアプリケーションのコンテキストで実行します。開発目的の場合は、通常、Oracle Enterprise Schedulerがターゲット・アプリケーションのコンテキストでジョブを実行できる任意のノード上にローカルに、Oracle Enterprise Schedulerとクライアント・アプリケーションを共存させます。目的が本番である場合は、一般的に、クライアント・アプリケーションとOracle Enterprise Schedulerは異なるサーバーに常駐します。

Oracle Enterprise Schedulerを使用するJava EEアプリケーションには、すべてのOracle Enterprise Schedulerアーティファクトが含まれており、この中には次のものがあります。

ESSWebserviceを使用してOracle Enterprise Schedulerと相互作用するクライアントでは、Oracle Enterprise Schedulerが適切なターゲット・アプリケーションのコンテキストでジョブを実行できるようなJava EEアプリケーションを提供する必要があります。このようなすべてのWebサービス・クライアントでは、対応するJava EEホスティング・アプリケーションの名前を認識し、必要に応じて(どのような場合に必要になるかはWSDLで定義されます)、Webサービス・コールを使用して、その名前をOracle Enterprise Schedulerに渡す必要があります。

ホスティング・アプリケーションの開発の詳細は、第5章「Oracle Enterprise Schedulerサンプル・アプリケーションのユースケース(非推奨)」を参照してください。このようなアプリケーションは、標準のOracle Enterprise Schedulerクライアント・アプリケーションですが、ジョブ・リクエスト発行と他のOracle Enterprise Schedulerとの相互作用は、これらのコールがESSWebserviceを介して生成されるため、スキップされる場合があります。

11.2.1 ESSWebservice Java EEアプリケーションの開発および使用方法

ESSWebservice Webサービスを使用してOracle Enterprise Scheduler機能にアクセスする場合、対応するホスティングJava EEアプリケーションがOracle Enterprise Schedulerで使用できる必要があります。クライアントが、Oracle Enterprise Scheduler Webサービスを使用してOracle Enterprise Schedulerとリモートで相互作用できる場合も、関連付けられているJava EEアプリケーションはOracle Enterprise Schedulerと同じ場所に配置されている必要があります。これにより、Oracle Enterprise Schedulerは正しいアプリケーション・コンテキストでジョブ・リクエストを実行できます。このため、ESSWebserviceクライアントでは、必要なすべてのOracle Enterprise Schedulerアーティファクトが含まれた、対応するJava EEアプリケーションを依然として開発、パッケージ化およびデプロイする必要があります。Oracle Enterprise Schedulerアプリケーションの開発の詳細は、第5章「Oracle Enterprise Schedulerサンプル・アプリケーションのユースケース(非推奨)」を参照してください。

11.2.2 BPELによるESSWebservice SOAアプリケーションの開発および使用方法

SOAクライアントの場合、BPELプロセッサなどすべてのSOAコンポーネントは、SOAコンポジットとしてデプロイされます。SOAコンポジットはJava EEアプリケーションではありません。このコンポジットは、(SOAインフラ内の)SOAファブリック・ランタイム・フレームワークを使用して実行されます。

SOAコンポーネントの場合、コンポジットとOracle Enterprise Schedulerとの間のプロキシとして機能する個別のJava EEホスティング・アプリケーションを作成します。このホスティング・アプリケーションは、デプロイされたコンポジットごとに1つのOracle Enterprise Schedulerアプリケーションという1対1のアソシエーションで作成したり、複数のコンポジットによって単一のJava EEホスティング・アプリケーションが共有されるようにできます。Java EEホスティング・アプリケーションには、必要なすべてのOracle Enterprise Schedulerアーティファクトが含まれています。

11.2.3 getCompletionStatus()操作のWebサービスAddressingヘッダーの設定

ESSWebservice WSDLで示されているように、クライアントは、ジョブ完了に関して非同期に通知される必要がある場合、getCompletionStatus()操作を呼び出すことができます。ジョブ完了時に、Oracle Enterprise Schedulerは、ESSWebserviceが着信コール内のコール元アドレスを取得するws-addressingに続いてコールバック操作onJobCompletion()を呼び出します。クライアントは、このコールバックを今後いつでも受信できる必要があります。このようなコールバックは、ジョブの完了に必要な時間に完全に依存します。これは、ジョブ完了時に(Oracle Enterprise Scheduler EventListener規約を実装する)クライアントのリスナーを呼び出すためのOracle Enterprise Scheduler機能に似ています。

getCompletionStatus()を使用する場合、クライアントには、特定の必須WebサービスAddressingヘッダー(特に、wsa:MessageIDヘッダーとwsa:ReplyToヘッダー)が含まれている必要があります。これにより、Oracle Enterprise Schedulerランタイムは、ジョブ完了ステータスが適切なReplyToアドレスに送信されたことを非同期で通知できます。BPELプロセスでgetCompletionStatus()を使用すると、SOAランタイムは必須ヘッダーを自動的に追加します。クライアント側でWebサービス・プロキシを使用している場合にgetCompletionStatus()をプログラムで使用するには、これらのAddressingヘッダーをWebサービス・クライアントで設定する必要があります。

11.2.4 ESSWebserviceの制限

ESSWebserviceは、次のOracle Enterprise Scheduler機能をサポートしていません。

  • 非定型リクエストの発行: ESSWebserviceでは、非定型のジョブ・リクエストの発行がサポートされていません(非定型リクエストの発行を使用するには、EJB APIを使用します)。このため、ESSWebserviceを使用して発行されるすべてのジョブに、対応する定義(関連プロキシ・アプリケーションでメタデータ・オブジェクトとして作成されたジョブ・タイプ、ジョブ定義、スケジュール定義など)が存在する必要があります。Webサービス操作は、そのようなメタデータ・オブジェクトを、WSDLで指定されたそれらのオブジェクトの識別子引数を使用して参照できるようになります。

  • 問合せAPI: ESSWebserviceでは問合せAPIを公開しません。Webサービス・クライアントでは、Oracle Enterprise Schedulerリクエストに関する問合せ情報を取得する必要はありません。ESSWebservice Webサービス・クライアントは、問合せAPIを使用する必要がある汎用の監視および管理機能は提供していません。

11.2.5 ESSWebserviceの実装

Oracle Enterprise Scheduler機能は、JAX-WS注釈付きインタフェース(SEI)を使用するWebサービスとして公開されます。この(SEI) Webサービスの実装によって、共通のOracle Enterprise Scheduler実装レイヤーが呼び出されます。ESSWebserviceは、最大限の互換性を得るためにドキュメント/リテラル/ラップ・モードで公開されます。

ESSWebserviceで使用される一部のデータ型は、Webサービスで直接使用することには適していません。このようなデータ型は、対応するXML表現に簡単に変換できません。このため、Oracle Enterprise Scheduler Webサービス・レイヤーでは、ESSWebserviceで公開され、WSDLで表示されるこれらのデータ型に適用するラッパー・クラスを定義します。そうでない場合は、一般的に、Webサービス・レイヤーでは、可能な場合には既存のデータ型を再利用します。

11.3 ESSWebservice WSDLファイル

Oracle Enterprise Schedulerがインストールされ、実行されている場合、次のタイプのURLにあるWebサービス・ページからWSDL定義ファイルを取得できます。

http://host:port/ess/esswebservice?WSDL

次に例を示します。

http://system1:7001/ess/esswebservice?WSDL

ブラウザからESSWebservice URLに直接アクセスすることによってWebサービス操作を起動することはサポートされていません。

11.4 BPELプロセスでOracle Enterprise Scheduler ESSWebserviceを使用するユースケース

次の項では、BPELプロセスからESSWebServiceを使用する方法を示しています。BPELプロセスでは、ESSWebServiceを使用してジョブ・リクエストを発行できます。このユースケースでは、BPELおよびSOAユーザーがOracle Enterprise Schedulerを使用する場合の1つのパスを示しています。経験豊富なSOAユーザーおよび設計者は、Webサービスを使用するOracle Enterprise Schedulerで作業する方法として、他に案がある場合があります。BPELプロセスでOracle Enterprise Schedulerジョブ・リクエストを発行するには、必要なOracle Enterprise Schedulerアーティファクトを提供するアプリケーションをデプロイする必要があります。このユースケースでは、第5章「Oracle Enterprise Schedulerサンプル・アプリケーションのユースケース(非推奨)」で説明しているEssDemoAppをデプロイできます。

11.5 ESSWebServiceアプリケーションおよびSOAプロジェクトの作成

Oracle JDeveloperを使用して、アプリケーションおよびそのアプリケーション内のプロジェクト(アプリケーション用のコードとサポート・ファイルが含まれている)を作成します。ESSWebServiceサンプル・アプリケーションを作成するには、次を実行します:

11.5.1 ESSWebServiceアプリケーションおよびプロジェクトの作成方法

Oracle Enterprise Schedulerを使用するには、最初に、Oracle JDeveloperでアプリケーションおよびSOAプロジェクトを作成します。

EssWebApplicationを作成する手順は、次のとおりです。

  1. 「新規...」アイコンをクリックします。

  2. ナビゲータの「新規ギャラリ」で、「一般」を展開し、「アプリケーション」を選択します。

  3. 「アイテム」領域で、「SOAアプリケーション」を選択します。

  4. 「OK」をクリックします。

  5. 「アプリケーションの名前付け」ウィンドウを使用して、新しいアプリケーションの名前と場所を入力し、アプリケーション・テンプレートを指定します。

    1. 「アプリケーション名」フィールドで、アプリケーション名を入力します。このサンプル・アプリケーションでは、EssWebApplicationと入力します。

    2. 「ディレクトリ」フィールドで、デフォルトを使用します。

    3. アプリケーション・パッケージ接頭辞を入力するか、またはデフォルトである接頭辞なしを受け入れます。

      接頭辞に続いてピリオドが、アプリケーションの初期プロジェクト内に作成されたオブジェクトに付加されます。

    4. 「次へ」をクリックします。

  6. 「プロジェクトの名前付け」ダイアログで、SOAプロジェクトのオプションを選択します。

    1. 「プロジェクト名」フィールドで、プロジェクト名を入力するか、またはデフォルトのProject1を受け入れます。

    2. 「プロジェクト・テクノロジ」タブで、「選択済」シャトルに「SOA」と表示されます。

    3. 「終了」をクリックします。これにより、SOAプロジェクトが含まれたEssWebApplicationが作成されます。

11.6 ESSWebService参照の作成

SOAコンポジット・アプリケーションでESSWebservice参照を追加して、WebサービスでSOAコンポジット・アプリケーションのパートナ・リンクを使用できるようにする必要があります。

11.6.1 ESSWebServiceパートナ・リンクの追加方法

ESSWebServiceパートナ・リンクをSOAコンポジット・アプリケーションに追加する必要があります。

Oracle Enterprise Scheduler Webサービスをパートナ・リンクとして追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、ESSWebApplicationを開き、「Project1」を展開し、「SOAコンテンツ」を展開します。

  2. アプリケーション・ナビゲータで「composite.xml」を選択します。

  3. 右クリックしてドロップダウン・リストから「開く」を選択します。図11-1に示すように、コンポジットが表示されます。

    図11-1 EssWebServiceアプリケーションのcomposite.xml

    図11-1の説明は図の下のリンクをクリックしてください。
    「図11-1 EssWebServiceアプリケーションのcomposite.xml」の説明

  4. 「コンポーネント・パレット」の「SOA」ドロップダウン・リストから、「サービス・アダプタ」領域の「Webサービス」を選択します。

  5. Webサービス・アイコンをcomposite.xmlの「外部参照」レーンにドラッグ・アンド・ドロップします。図11-2に示すように、「Webサービスの作成」ウィンドウが表示されます。

    図11-2 「Webサービスの作成」ダイアログ

    図11-2の説明は図の下のリンクをクリックしてください。
    「図11-2 「Webサービスの作成」ダイアログ」の説明

  6. 「名前」フィールドで、サービス名を入力するか、またはデフォルト名を受け入れます。

  7. 「タイプ」フィールドで、ドロップダウン・リストから「参照」を選択します。

  8. 「WSDL URL」テキスト・フィールドで、次のようにWSDL URLの値を手動で入力します。

    http://host:port/ess/esswebservice?WSDL
    
  9. 「SOAリソース・ルックアップ」ダイアログで、「OK」をクリックします。

  10. 「Webサービスの作成」ダイアログの「ポート・タイプ」フィールドで、ドロップダウン・リストから「ESSWebService」を選択します。

  11. 「Webサービスの作成」ダイアログの「コールバック・ポート・タイプ」で、ドロップダウン・リストから「ESSWebServiceCallback」を選択します。

    「WSDLとその依存アーティファクトをプロジェクトにコピー。」チェック・ボックスを選択します。これにより、Oracle Enterprise Scheduler抽象WSDLファイルとESSTypes.xsdファイルのローカル・コピーがSOAコンポジット・プロジェクトに移動されます。


    注意:

    WSDLファイルのローカル・コピーを保持すると、リモートWSDLファイルが更新されたときに、同期の問題が発生する場合があります。このため、リモートWSDLファイルのローカル・コピーの作成はお薦めしません。ただし、オフライン設計などの特定のシナリオでは、このような処理が役立つ場合があります。


  12. 「OK」をクリックします。これで、図11-3に示すように、composite.xmlファイルの「外部参照」レーンに新しいWebサービスが表示されます。

    図11-3 ESSWebService外部参照のあるcomposite.xml

    ESSWebService外部参照のあるcomposite.xml
    「図11-3 ESSWebService外部参照のあるcomposite.xml」の説明

11.7 ESSWebServiceをコールするBPELプロセスの追加

次に、BPELプロセスを追加してESSWebService操作を呼び出す必要があります。

11.7.1 ESSWebServiceをコールするBPELプロセスの追加方法

ESSWebServiceを使用するには、BPELプロセスを追加する必要があります。

ESSWebServiceを使用するためのBPELプロセスを追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「composite.xml」を選択します。

  2. 「コンポーネント・パレット」の「SOA」ドロップダウン・リストから、「サービス・コンポーネント」領域の「BPELプロセス」を選択します。

  3. BPELプロセスを「コンポーネント」スイムレーンにドラッグ・アンド・ドロップします。図11-4に示すように、「BPELプロセスの作成」ダイアログが表示されます。

    図11-4 新規BPELプロセスのための「BPELプロセスの作成」ダイアログ

    図11-4の説明は図の下のリンクをクリックしてください。
    「図11-4 新規BPELプロセスのための「BPELプロセスの作成」ダイアログ」の説明

  4. 「OK」をクリックします。これにより、図11-5に示すようにBPELプロセスがcomposite.xmlに追加されます。

    図11-5 SOAコンポジット・アプリケーションへのBPELプロセスの追加

    SOAコンポジット・アプリケーションへのBPELプロセスの追加
    「図11-5 SOAコンポジット・アプリケーションへのBPELプロセスの追加」の説明

  5. composite.xmlで、図11-6に示すように、「BPELProcess1」を選択してから、右矢印を選択してドラッグし、Service1への参照を作成します。

    図11-6 composite.xmlでのOracle Enterprise Scheduler Webサービスへの参照の追加

    composite.xmlでのESS Webサービスへの参照の追加
    「図11-6 composite.xmlでのOracle Enterprise Scheduler Webサービスへの参照の追加」の説明

  6. 「すべて保存」アイコンをクリックして、プロジェクト・ファイルを保存します。

11.7.2 BPELプロセス・スキーマへのタイプのコピー

プロジェクトの下のxsdフォルダ内の対応するXSDファイルを開いて、BPELプロセスのスキーマを変更する必要があります。この手順は、サンプル・アプリケーションのデモのための簡略化された手順です。独自のアプリケーションでは、ESSWebservice操作に必要なスキーマ・タイプを使用します。これにより、BPELプロセスのクライアント(この例では簡略化されたテスト・ケース)は、必要なすべての入力を提供できます(クライアントはBPELプロセス・スキーマに基づいているため必須です)。この手順により、入力をWebサービスにマッピングまたは割り当てることができます。この手順は、サンプル・アプリケーションを正しく生成するためにのみ必要です。実際のシナリオでは、BPELプロセス設計者が、入力スキーマの定義または提供や、Webサービス入力へのマッピングを担当します。


注意:

説明している手順では、操作するBPELプロセス、およびBPELプロセスに使用する特定のネーミングに応じて、手動による変更が必要です。ESSWebService操作に必要なタイプはESSWebService WSDLファイルで見つけることができます。これらのタイプをスキーマに個別に追加することもできます。


BPELプロセス・スキーマを更新する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「SOAコンテンツ」フォルダを展開し、「xsd」フォルダを展開します。

  2. 「xsd」フォルダ内のBPELProcess1.xsdファイルをダブルクリックします。

  3. 「ソース」タブを選択します。

  4. EssWebServiceタイプをコピーして、例11-1で示されているコンテンツがスキーマに含まれるようにします。

    Oracle Enterprise Scheduler Webサービスが公開しているESSTypes.xsdファイルおよびその他のWSDLアーティファクトがコンポジットにインポートされ、esswebservice_XSD_<XSDファイル名>.xsdという名前に変更されます。


    注意:

    例11-1に示すスキーマには、アプリケーションおよびプロジェクト名が含まれています。この例のアプリケーション名またはプロジェクト名を変更した場合は、使用する名前を反映するようにスキーマのtargetNamespace要素とxmlns:tns要素を更新する必要もあります。


  5. BPELProcess1.xsdファイルで、第11.6項「ESSWebService参照の作成」で作成され、コンポジットにインポートされたアーティファクトを参照します。ディレクトリ・パスは、BPELProcess1.xsdファイルに対して相対的である必要があります。例11-1に、Webサービス・アーティファクトへの参照が含まれたコンポジット・スキーマ・ファイルを示します。

    例11-1 BPEL XSDスキーマ

    <?xml version="1.0" encoding="UTF-8"?>
    <schema attributeFormDefault="unqualified" elementFormDefault="qualified"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"
            xmlns:ns1="http://xmlns.oracle.com/scheduler/types"
            targetNamespace="http://xmlns.oracle.com/
                             EssWebApplication/Project1/BPELProcess1"
            xmlns:tns="http://xmlns.oracle.com/
                       EssWebApplication/Project1/BPELProcess1"
            xmlns="http://www.w3.org/2001/XMLSchema">
    
    <import namespace="http://xmlns.oracle.com/scheduler/types"
      schemaLocation="../esswebservice_XSD_ESSTypes.xsd" />
    
      <element name="process">
        <complexType>
          <xs:sequence>
            <xs:element name="description" type="xs:string"/>
            <xs:element name="jobDefinitionId" type="ns1:metadataObjectId"/>
            <xs:element name="requestedStartTime" type="xs:dateTime"/>
            <xs:element name="application" type="xs:string"/>
            <xs:element name="requestParameters" type="ns1:requestParameters"/>
          </xs:sequence>
        </complexType>
      </element>
      <element name="processResponse">
        <complexType>
          <sequence>
            <element name="result" type="string"/>
            <element name="requestId" type="long"/>
            <element name="state" type="ns1:state"/>
          </sequence>
        </complexType>
      </element>
    </schema>
    
  6. 「保存」アイコンをクリックします。

11.7.3 ESSWebService submitRequest操作の呼出し方法

BPELプロセスで、Oracle Enterprise Scheduler WebサービスsubmitRequest()操作を実行するためのInvokeアクティビティを追加します。この手順では、値を入力変数および出力変数に割り当てることによって、Invokeアクティビティの入力および出力を選択する必要があります。

ESSWebServiceを使用して、リクエストを発行するためのInvokeアクティビティを追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「SOAコンテンツ」を展開し、BPELファイルを選択します。たとえば、BPELProcess1.bpelを選択します。図11-7に示すように、BPELスイムレーンが表示されます。

    図11-7 ESSWebService SubmitRequestのInvokeアクティビティを追加する前のBPELプロセス

    Invokeアクティビティを追加する前のBPELプロセス
    「図11-7 ESSWebService SubmitRequestのInvokeアクティビティを追加する前のBPELプロセス」の説明

  2. 「コンポーネント・パレット」から、Invokeアクティビティをドラッグ・アンド・ドロップし、callbackClientの前に配置します。

  3. InvokeアクティビティをESSWebServiceにリンクするには、右矢印を選択し、Invokeアクティビティを「パートナ・リンク」の「Service1」にドラッグします。図11-8に示すように、「Invokeの編集」ダイアログが開きます。

    図11-8 BPELアクティビティの「Invokeの編集」ダイアログ

    BPELアクティビティの「Invokeの編集」ダイアログ
    「図11-8 BPELアクティビティの「Invokeの編集」ダイアログ」の説明

  4. 「Invokeの編集」ダイアログの「操作」フィールドで、「submitRequest」を選択します。

  5. 「変数」フィールドで、「入力」フィールドの横にある「追加」アイコンをクリックします。

    「変数の作成」ダイアログが表示されます。デフォルト値を受け入れて、「OK」をクリックします。

  6. 「Invokeの編集」ダイアログで、「出力」フィールドの横にある「追加」アイコンをクリックします。

    「変数の作成」ダイアログが表示されます。デフォルト値を受け入れて、「OK」をクリックします。

    「Service1」への新しい起動リンクが表示されます。

  7. Invokeアクティビティを選択し、名前Invoke_1をダブルクリックして、テキスト・エントリ・フィールドを選択します。テキスト・エントリ・フィールドで、図11-9に示すようにsubmitRequestと入力します。

    図11-9 submitRequest Invokeアクティビティの追加

    submitRequest Invokeアクティビティの追加
    「図11-9 submitRequest Invokeアクティビティの追加」の説明

11.7.4 リクエスト発行用の必須入力パラメータの割当て

Assignアクティビティを追加し、次にBPELプロセスからの入力をsubmitRequest Invokeアクティビティに割り当てます。


注意:

ほとんどの場合、BPELプロセスの入力ペイロードは、リクエスト発行Webサービスの入力ペイロードと直接一致しません。入力ペイロードからリクエスト発行への1対1マッピングがあるシナリオでのみ、CopyListの使用が役立ちます。


コピー操作によるAssignアクティビティのマッピングの場合、引数は、表11-2に示すように、Oracle Enterprise Scheduler submitRequestの入力パラメータに対応します。BPELスキーマがsubmitRequestメッセージ・タイプと異なる場合は、表11-2を参考に、Assignアクティビティのコピー操作を使用して手動で値を移入します。

表11-2 リクエスト発行のWebサービス引数の、BPEL Assignアクティビティに対するマッピング

引数 説明

説明

「注文インポート」など、ジョブの非定型発行のコンテキストです。

アプリケーション

アプリケーション名は、ホスティングOracle Enterprise Schedulerアプリケーションのデプロイメント名であるか、または論理アプリケーション名です。

JobDefinitionId

  • name: Oracle Enterprise Schedulerジョブの名前

  • package: Oracle Enterprise Schedulerジョブが含まれているパスの名前

  • type: 'JOB_DEFINITION'

パラメータ

dataType: パラメータの値タイプ(STRINGINTEGERLONGBOOLEANDATETIME)

name: Oracle Enterprise Schedulerジョブ定義で定義されているパラメータの名前が含まれている文字列

scope: ジョブ・セットに対してのみ使用される、パラメータの名前付きスコープが含まれた文字列

value: パラメータの値が含まれた要素


assignアクティビティを追加する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「BPELアクティビティ」領域から、AssignアクティビティをsubmitRequestという名前のInvokeアクティビティのすぐ前にドラッグ・アンド・ドロップします。

  2. Assignアクティビティを選択し、名前Assign_1をダブルクリックして、新しいテキストを入力します。テキスト・エントリ・ボックスで、図11-10に示すように、Job_Inputsと入力します。

    図11-10 BPELへのAssignアクティビティの追加

    BPELへのAssignアクティビティの追加
    「図11-10 BPELへのAssignアクティビティの追加」の説明

description、JobDefinitionID、requestedStartTime、application用のコピーの追加手順

  1. Job_Inputsという名前の新しいAssignアクティビティをダブルクリックすると、図11-11に示すように、「コピー操作」タブが含まれた「Assign」ページが表示されます。

    図11-11 BPEL Assignアクティビティのコピー操作

    BPEL assignアクティビティのコピー操作
    「図11-11 BPEL Assignアクティビティのコピー操作」の説明

  2. 「追加」アイコンをクリックし、ドロップダウン・リストから「コピー操作」を選択して、コピー操作を変数に追加します。「コピー操作の作成」ダイアログが表示されます。

  3. 「コピー操作の作成」ダイアログで、展開およびナビゲートして、各入力パラメータのコピー操作(コピー操作は、descriptionjobDefinitionIDrequestedStartTimeおよびapplicationにのみ使用できます)を選択します。これにより、入力パラメータがInvokeアクティビティのInvoke_1_submitRequest_InputVariableパラメータにコピーされます。図11-12に、これらのコピー操作の1つを示します。

    図11-12 submitRequestの説明パラメータのコピー操作

    descriptionパラメータのコピー操作
    「図11-12 submitRequestの説明パラメータのコピー操作」の説明

  4. 「OK」をクリックして、descriptionのコピー操作を追加します。

  5. 同様に、jobDefintionIDrequestedStartTimeおよびapplicationパラメータのコピー操作をさらに実行します。

requestParametersのコピー・リストを追加する手順は、次のとおりです。

  1. Job_Inputsという名前のAssignアクティビティをダブルクリックして、「コピー操作」タブが含まれた「Assign」ページを表示します。

  2. 「追加」アイコンをクリックして、ドロップダウン・リストから「CopyList操作...」を選択し、CopyList操作をrequestParametersに追加します。「CopyList操作の作成」ダイアログが表示されます。

  3. 「CopyList操作の作成」ダイアログで、展開およびナビゲートして、requestParametersのコピーリスト操作を選択します。これを行うには、図11-13に示すように、parameter要素にナビゲートして選択します。

    図11-13 リクエスト・パラメータのCopyList操作

    リクエスト・パラメータのCopyList操作
    「図11-13 リクエスト・パラメータのCopyList操作」の説明

  4. 「CopyList操作の作成」ダイアログで、「OK」をクリックします。

  5. Assignアクティビティで、「OK」をクリックします。

図11-14に、BPELの「設計」ページを示します。

図11-14 Job_Inputs AddアクティビティおよびsubmitRequest Invokeが含まれたBPEL

Job_Inputs AddアクティビティおよびsubmitRequest Invokeが含まれたBPEL
「図11-14 Job_Inputs AddアクティビティおよびsubmitRequest Invokeが含まれたBPEL」の説明

BPEL要素にOracle Enterprise Scheduler Webサービスと同じタイプがない場合

BPELペイロードの要素タイプが、Oracle Enterprise Scheduler Webサービスのペイロードのものと同じでなく、かつ、1つ以上のジョブ・パラメータに値を割り当てる必要がある場合には、次の方法を使用できます。

  1. 前の手順で実行したように、コピー操作を使用して、最初のパラメータ要素に移入します。

  2. 図11-15に示すように、後ろに挿入を使用して、その他のパラメータ要素を追加またはクローニングします。

    図11-15 パラメータをクローニングするための後ろに挿入の使用

    パラメータをクローニングするための後ろに挿入の使用
    「図11-15 パラメータをクローニングするための後ろに挿入の使用」の説明

  3. XPath配列サブスクリプトを使用して、追加のパラメータ要素に移入します。

  4. このアクションによって、パラメータ要素全体がすべてのサブ要素値とともに効率的にコピーされ、XML配列の末尾に追加されます。2つ目のジョブ・パラメータの値を移入するには、コピー操作をさらに追加して、ダイアログの右下のXPath式を変更して、適切な配列サブスクリプト[n] (nはパラメータの番号)を追加します。すべてのXML配列は、0ではなく1で始まります。

11.7.5 getCompletionStatus操作の呼出し

ESSWebService getCompletionStatus操作を呼び出すために、別のInvokeアクティビティを追加してService1にリンクします。

getCompletionStatus操作のInvokeアクティビティを追加する手順は、次のとおりです。

  1. 「コンポーネント・パレット」から、InvokeアクティビティをsubmitRequestとcallbackClientの間にドラッグ・アンド・ドロップします。

  2. この新しいInvokeアクティビティで、Invoke_1という名前のテキスト入力領域を選択し、名前getStatusAsyncを入力します。

  3. InvokeアクティビティをService1にリンクするには、右矢印を選択し、Invokeアクティビティを「パートナ・リンク」の「Service1」にドラッグします。「Invokeの編集」ダイアログが表示されます。

  4. getStatusAsyncの「Invokeの編集」ダイアログで、「操作」フィールドのドロップダウン・リストから「getCompletionStatus」を選択します。

  5. 「入力変数」フィールドで、「追加」アイコンを選択します。図11-16に示すように、「変数の作成」ダイアログが表示されます。

    図11-16 getStatusAsyncの「変数の作成」ウィンドウ

    getStatusAsyncの「変数の作成」ウィンドウ
    「図11-16 getStatusAsyncの「変数の作成」ウィンドウ」の説明

  6. 「変数の作成」ダイアログで「OK」をクリックします。図11-17に示すように、「Invokeの編集」ダイアログが表示されます。

    図11-17 getStatusAsyncの「Invokeの編集」ウィンドウ

    getStatusAsyncの「Invokeの編集」ウィンドウ
    「図11-17 getStatusAsyncの「Invokeの編集」ウィンドウ」の説明

  7. 「Invokeの編集」ダイアログで、「OK」をクリックします。新しいInvokeアクティビティgetStatusAsync、およびService1へのリンクが表示されます。

11.7.6 getCompletionStatus操作への入力の割当て

新しいAssignアクティビティをsubmitRequestの後に追加してRequestIDを割り当て、それをgetStatusAsync invokeアクティビティに渡します。

assignアクティビティを追加する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「BPELアクティビティ」領域から、AssignアクティビティをsubmitRequestという名前のInvokeアクティビティの直後、かつgetStatusAsyncという名前のInvokeアクティビティの前にドラッグ・アンド・ドロップします。

  2. Assignアクティビティを選択し、名前Assign_1をダブルクリックして、テキスト入力領域を選択します。テキスト入力領域に、RequestIDと入力します。図11-18にassignアクティビティを示します。

    図11-18 RequestID Assignアクティビティの追加

    RequestID Assignアクティビティの追加
    「図11-18 RequestID Assignアクティビティの追加」の説明

  3. 新しいAssignアクティビティ、RequestIDをダブルクリックして、「コピー操作」タブが含まれた「Assign」ページを表示します。

  4. 「追加」アイコンをクリックし、ドロップダウン・リストから「コピー操作...」を選択します。

  5. 「From」領域で、「Invoke_1_submitRequest_OutputVariable」を展開し、「requestID」を選択します。図11-19に示すように、これを、「To」領域からgetStatusAsync_getCompletionStatus_InputVariable内のrequestIDにマッピングします。

    図11-19 Request ID Assignの「コピー操作の編集」ウィンドウ

    Request ID Assignの「コピー操作の編集」ウィンドウ
    「図11-19 Request ID Assignの「コピー操作の編集」ウィンドウ」の説明

  6. 「コピー操作の編集」ダイアログで、「OK」をクリックします。

  7. 「コピー操作」ダイアログで、「OK」をクリックします。

  8. BPELの「設計」ページで、「プロセスの検証」をクリックします。図11-20に示すように、BPELが表示されます。

    図11-20 Request ID Assignアクティビティが追加されたBPEL

    Request ID Assignアクティビティが追加されたBPEL
    「図11-20 BPEL Request ID Assignアクティビティが追加されたBPEL」の説明

11.7.7 ジョブ完了ステータスの受信

Receiveアクティビティを追加し、onJobCompletion ESSWEbService操作にリンクします。

Receiveアクティビティの追加手順

  1. 「コンポーネント・パレット」の「BPELアクティビティ」領域から、ReceiveアクティビティをgetStatusAsync InvokeアクティビティとcallbackClientの間の位置にドラッグ・アンド・ドロップします。

  2. 図11-21に示すように、Receive_1という名前のReceiveアクティビティのテキスト入力領域を選択し、onJobCompletionと入力します。

    図11-21 BPELプロセスへのReceiveアクティビティの追加

    BPELプロセスへのReceiveアクティビティの追加
    「図11-21 BPELプロセスへのReceiveアクティビティの追加」の説明

  3. ReceiveアクティビティonJobCompletionから右矢印を「Service 1」にドラッグします。図11-22に示すように、「Receiveの編集」ダイアログが表示されます。

    図11-22 onJobCompletion Receiveアクティビティの「Receiveの編集」ウィンドウ

    onJobCompletion Receiveアクティビティの「Receiveの編集」ウィンドウ
    「図11-22 onJobCompletion Receiveアクティビティの「Receiveの編集」ウィンドウ」の説明

  4. 「Receiveの編集」ダイアログの「操作」フィールドで、ドロップダウン・リストから「onJobCompletion」を選択します。

  5. 「変数」フィールドで、「追加」アイコンをクリックします。「変数の作成」ダイアログが表示されます。

  6. 「変数の作成」ダイアログで「OK」をクリックします。

  7. 「Receiveの編集」ダイアログで、「OK」をクリックします。図11-23に示すように、Service1から新しいReceiveアクティビティonJobCompletionへの矢印が追加されます。

    図11-23 onJobCompletion Receiveアクティビティの追加

    onJobCompletion Receiveアクティビティの追加
    「図11-23 onJobCompletion Receiveアクティビティの追加」の説明

11.7.8 クライアントへの結果の戻し

onJobCompletionからの結果出力をクライアントの出力にコピーするためのAssignアクティビティを追加します。onJobCompletionからのすべての結果をcallbackClient入力変数に割り当てます。

結果のassignアクティビティを追加する手順は、次のとおりです。

  1. 「コンポーネント・パレット」の「BPELアクティビティ」領域から、AssignアクティビティをReceiveアクティビティonJobCompletionとcallbackClientの間の位置にドラッグ・アンド・ドロップします。

  2. Assignアクティビティを選択し、名前Assign_1をダブルクリックして、新しいテキストを入力します。図11-24に示すように、値Resultを入力します。

    図11-24 出力のAssignアクティビティのクライアントへの追加

    出力のAssignアクティビティのクライアントへの追加
    「図11-24 出力のAssignアクティビティのクライアントへの追加」の説明

  3. 新しいResult Assignアクティビティをダブルクリックして、「コピー操作」タブが含まれた「Assign」ページを表示します。

  4. 「追加」アイコンをクリックし、ドロップダウン・リストから「コピー操作...」を選択します。

  5. 変数を選択するためにナビゲートし、「From」領域のonJobCompletion_onJobCompletion_InputVariable「resultMessage」を選択します。図11-25に示すように、「To」領域で、「outputVariable」を展開し、「client:result」を選択します。

    図11-25 結果のコピー操作の作成

    結果のコピー操作の作成
    「図11-25 結果のコピー操作の作成」の説明

  6. 「コピー操作の作成」ダイアログで、「OK」をクリックします。

  7. 「Assign」領域で、「OK」をクリックします。

  8. 「プロセスの検証」をクリックします。

図11-26に、最終的なBPELを示します。

図11-26 callbackClient InvokeアクティビティのあるResult Assignアクティビティ

callbackClient InvokeアクティビティのあるResult Assignアクティビティ
「図11-26 callbackClient InvokeアクティビティのあるResult Assignアクティビティ」の説明

11.8 追加のESSWebService操作の使用

次を含むその他のEssWebService操作を使用できます。

11.8.1 ESSWebService submitRecurringRequest操作の呼出し方法

BPELプロセスで、Oracle Enterprise Scheduler WebサービスsubmitRecurringRequest()操作を実行するためのInvokeアクティビティを追加します。この手順では、値を入力変数および出力変数に割り当てることによって、Invokeアクティビティの入力および出力を選択する必要があります。繰り返されるジョブ、または後の日付で実行されるジョブを発行する場合、そのジョブは、宣言して作成され、メタデータ・リポジトリに格納されるOracle Enterprise Schedulerスケジュールを使用して発行される必要があります。スケジュールが定義されると、BPELは、そのスケジュールでsubmitRecurringRequest()操作を介してジョブを発行できます。

ESSWebServiceを使用して、リクエストを発行するためのInvokeアクティビティを追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「SOAコンテンツ」を展開し、BPELファイルを選択します。たとえば、BPELProcess1.bpelを選択します。BPELスイムレーンが表示されます。

  2. 「コンポーネント・パレット」から、Invokeアクティビティをプロセス内にドラッグ・アンド・ドロップします。このアクティビティでは、リクエスト発行ペイロードに移入し、それをOracle Enterprise Scheduler Webサービスに対して発行します。

  3. Invokeアクティビティを選択し、名前Invoke_1をダブルクリックして、テキスト・エントリ・フィールドを選択します。テキスト・エントリ・フィールドで、submitRecurringRequestと入力します。

  4. InvokeアクティビティをESSWebServiceにリンクするには、右矢印を選択し、Invokeアクティビティを「パートナ・リンク」の「Service1」にドラッグします。図11-27に示すように、「Invokeの編集」ダイアログが開きます。

    図11-27 BPELアクティビティの「Invokeの編集」ウィンドウ

    BPELアクティビティの「Invokeの編集」ウィンドウ
    「図11-27 BPELアクティビティの「Invokeの編集」ウィンドウ」の説明

  5. 「Invokeの編集」ダイアログで、「操作」フィールドの「submitRecurringRequest」を選択します。

  6. 「Invokeの編集」ダイアログで、「入力」フィールドの「追加」アイコンをクリックします。「変数の作成」ダイアログが表示され、スコープレベル変数を作成してリクエスト・ペイロードを含めることができます。

  7. 「変数の作成」ダイアログで「OK」をクリックします。

  8. 「Invokeの編集」ダイアログで、「出力」フィールドの「追加」アイコンを選択します。「変数の作成」ダイアログが表示され、スコープレベル変数を作成してレスポンス・ペイロードを含めることができます。

  9. 「変数の作成」ダイアログで「OK」をクリックします。

  10. 「Invokeの編集」ダイアログで、「OK」をクリックします。図11-28に示すように、Service1への新しい呼出しリンクが表示されます。

図11-28 スケジュールが設定されたリクエストの発行

スケジュールが設定されたリクエストの発行
「図11-28 スケジュールが設定されたリクエストの発行」の説明

再帰リクエスト発行に入力を割り当てる手順は、次のとおりです。

Assignアクティビティを追加し、BPELプロセスからの入力をsubmitRecurringRequest Invokeアクティビティに割り当てます。これにより、再帰リクエスト発行パラメータを入力変数に移入できます。


注意:

ほとんどの場合、BPELプロセスの入力ペイロードは、再帰リクエスト発行Webサービスの入力ペイロードと直接一致しません。入力ペイロードからリクエスト発行への1対1マッピングがあるシナリオでのみ、CopyListの使用が役立ちます。


コピー操作によるAssignアクティビティのマッピングの場合、引数は、表11-3に示すように、Oracle Enterprise Scheduler submitRequestの入力パラメータに対応します。BPELスキーマがsubmitRequestメッセージ・タイプと異なる場合は、表11-3を参考に、Assignアクティビティのコピー操作を使用して手動で値を移入します。

表11-3 再帰リクエスト発行のWebサービス引数の、BPEL Assignアクティビティに対するマッピング

引数 説明

説明

「注文インポート」など、ジョブの非定型発行のコンテキストです。

アプリケーション

アプリケーション名は、ホスティングOracle Enterprise Schedulerアプリケーションのデプロイメント名であるか、または論理アプリケーション名です。

JobDefinitionId

  • name: Oracle Enterprise Schedulerジョブの名前

  • package: Oracle Enterprise Schedulerジョブが含まれているパスの名前

  • type: 'JOB_DEFINITION'

パラメータ

dataType: パラメータの値タイプ(STRINGINTEGERLONGBOOLEANDATETIME)

name: Oracle Enterprise Schedulerジョブ定義で定義されているパラメータの名前が含まれている文字列

scope: ジョブ・セットに対してのみ使用される、パラメータの名前付きスコープが含まれた文字列

value: パラメータの値が含まれた要素

scheduleID

  • name: スケジュール・メタデータ・ファイルの名前が含まれている文字列

  • packageName: メタデータ・ファイルが含まれたMDSパッケージの名前が含まれている文字列("Schedule"パスなし)

  • type: 'SCHEDULE_DEFINITION''


特定のOracle Enterprise Schedulerジョブに渡す複数のパラメータを定義できます。BPELでOracle Enterprise Schedulerサービス・ペイロードにその他のパラメータを追加する場合は、最初に元のパラメータ要素の「後ろに挿入」を使用してDOMに新しいパラメータ要素を追加し、次に配列サブスクリプトを使用して、新しいパラメータに適切な値を移入する必要があります。必要に応じて繰り返します。

最初に、後ろに挿入操作を使用して、既存のパラメータ要素をコピーおよびクローニングして変数に戻します。これにより、XML配列に2つ目のパラメータ要素が作成されます。たとえば、図11-29を参照してください。

図11-29 後ろに挿入操作によるコピー

後ろに挿入操作によるコピー
「図11-29 後ろに挿入操作によるコピー」の説明

次に、最初のパラメータの値をコピーしたのと同じ方法で、新しいコピー操作を作成し、ダイアログの「To」/「From」領域でパラメータ要素を選択します。ただし、右下隅で、[2] (XML配列は0ではなく1で始まります)を含めるようにXPathパスを変更し、「OK」をクリックします。必要に応じて、各必須パラメータに対して繰り返します。

11.8.2 ESSWebService setSubmitArgs操作の呼出し方法

BPELプロセスで、Oracle Enterprise Scheduler WebサービスsetSubmitArgs()操作を実行するためのInvokeアクティビティを追加します。

ESSWebServiceを使用して、リクエストに対するsetsubmitArgsを使用するためのInvokeアクティビティを追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「SOAコンテンツ」を展開し、BPELファイルを選択します。たとえば、BPELProcess1.bpelを選択します。BPELスイムレーンが表示されます。

  2. 「コンポーネント・パレット」から、Invokeアクティビティをドラッグ・アンド・ドロップし、callbackClientの前に配置します。

  3. InvokeアクティビティをESSWebServiceにリンクするには、右矢印を選択し、Invokeアクティビティを「パートナ・リンク」の「Service1」にドラッグします。これにより、「Invokeの編集」ダイアログが開きます。

  4. 「Invokeの編集」ダイアログで、「操作」フィールドの「setSubmitArgs」を選択します。

  5. 「Invokeの編集」ダイアログで、「入力」フィールドの「追加」アイコンをクリックします。「変数の作成」ダイアログが表示されます。

  6. 「変数の作成」ダイアログで「OK」をクリックします。

  7. 「Invokeの編集」ダイアログで、「出力」フィールドの「追加」アイコンを選択します。「変数の作成」ダイアログが表示されます。

  8. 「変数の作成」ダイアログで「OK」をクリックします。

  9. 「Invokeの編集」ダイアログで、「OK」をクリックします。Service1への新しい呼出しリンクが表示されます。

  10. Invokeアクティビティを選択し、名前Invoke_1をダブルクリックして、テキスト・エントリ・フィールドを選択します。テキスト・エントリ・フィールドで、setSubmitArgsと入力します。

  11. 「コンポーネント・パレット」から、Transformアクティビティをドラッグ・アンド・ドロップして、setSubmitArgsの前に配置します。このトランスフォーメーションにより、BPELフロー入力変数がsetSubmitArgs入力変数にマッピングされます。

  12. トランスフォーメーション・アクティビティが開きます。「トランスフォーメーション」タブで、「ソース」領域の「追加」アイコンをクリックします。「ソース変数」ダイアログが表示されます。

  13. 「ソース変数」ダイアログで、「inputVariable」を選択し、「OK」をクリックします。

  14. トランスフォーメーション・アクティビティでは、「トランスフォーメーション」タブの「ターゲット変数」フィールドでターゲットとして「setSubmitArgs_setSubmitArgs_InputVariable」を選択します。

  15. トランスフォーメーション・アクティビティでは、「トランスフォーメーション」タブの「マッパー・ファイル」フィールドで、「追加」をクリックして、新しいマッパー・ファイルを作成します。

  16. 図11-30に示すように、マッパー・ファイルが作成されます。for-eachコンストラクトは、「コンポーネント・パレット」の「XSLTコンストラクト」領域からアイテムをドラッグして挿入できます。

    図11-30 発行引数設定のトランスフォーメーション

    発行引数設定のトランスフォーメーション
    「図11-30 発行引数設定のトランスフォーメーション」の説明

  17. このトランスフォーメーション・ツールでは、必要な内容が正確に作成されません。XSLTソースを編集する必要があります。ソースで、次のマッピングを検索します。

    <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:arguments">
        <arguments>
          <xsl:value-of select="."/>
        </arguments>
      </xsl:for-each>
    

    argumentsに修飾子としてtns:を追加してこれを置き換え、次のようなフラグメントにします。このトランスフォーメーション・ツールの「設計」タブで、有効なトランスフォーメーションではないと誤って警告される場合があることに注意してください。

    <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:arguments">
        <tns:arguments>
          <xsl:value-of select="."/>
        </tns:arguments>
      </xsl:for-each>
    

    例11-2に、完全なトランスフォーメーション・ソース・ファイルを示します。

例11-2 発行引数設定のトランスフォーメーションのトランスフォーメーション・ソース

<?xml version="1.0" encoding="UTF-8" ?>
<?oracle-xsl-mapper
  <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
  <mapSources>
    <source type="WSDL">
      <schema location="../BPELProcess1.wsdl"/>
      <rootElement name="BPELProcess1ProcessRequest"
                         namespace="http://xmlns.oracle.com/EssWebApplication/
                         Project1/BPELProcess1"/>
    </source>
  </mapSources>
  <mapTargets>
    <target type="WSDL">
      <schema location="../Service1.wsdl"/>
      <rootElement name="setSubmitArgs"
                         namespace="http://xmlns.oracle.com/scheduler"/>
    </target>
  </mapTargets>
  <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.0.0(build 090113.2000.2412) AT [FRI
       FEB 06 08:27:53 PST 2009]. -->
?>
<xsl:stylesheet version="1.0"
                 xmlns:xpath20="http://www.oracle.com/XSL/Transform/java
                                /oracle.tip.pc.services.functions.Xpath20"
                 xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/
                             business-process/"
                 xmlns:client="http://xmlns.oracle.com/EssWebApplication
                               /Project1/BPELProcess1"
                xmlns:oraext="http://www.oracle.com/XSL/Transform/java/
                              oracle.tip.pc.services.functions.ExtFunc"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:dvm="http://www.oracle.com/XSL/Transform/java/
                           oracle.tip.dvm.LookupValue"
                xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:med="http://schemas.oracle.com/mediator/xpath"
                xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.
                            mediator.service.common.functions
                    .GetRequestHeaderExtnFunction"
                xmlns:ids="http://xmlns.oracle.com/bpel/services/
                           IdentityService/xpath"
                xmlns:tns="http://xmlns.oracle.com/scheduler"
                xmlns:xdk="http://schemas.oracle.com/bpel/extension
                           /xpath/function/xdk"
                xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
                xmlns:xref="http://www.oracle.com/XSL/Transform/java
                            /oracle.tip.xref.xpath.XRefXPathFunctions"
                xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                xmlns:ns0="http://xmlns.oracle.com/scheduler/types"
                xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                xmlns:ora="http://schemas.oracle.com/xpath/extension"
                xmlns:socket="http://www.oracle.com/XSL/Transform/
                              java/oracle.tip.adapter.socket.ProtocolTranslator"
                xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                            exclude-result-prefixes="xsi xsl client plnk 
                            xsd ns0 wsdl tns soap12 soap mime xpath20 bpws oraext
                            dvm hwf med mhdr ids xdk xref ora socket ldap">
  <xsl:template match="/">
    <tns:setSubmitArgs>
      <tns:requestParameters>
        <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:
                              requestParameters/ns0:parameter">
          <ns0:parameter>
            <ns0:dataType>
              <xsl:value-of select="ns0:dataType"/>
            </ns0:dataType>
            <ns0:name>
              <xsl:value-of select="ns0:name"/>
            </ns0:name>
            <ns0:scope>
              <xsl:value-of select="ns0:scope"/>
            </ns0:scope>
            <ns0:value>
              <xsl:value-of select="ns0:value"/>
            </ns0:value>
          </ns0:parameter>
        </xsl:for-each>
      </tns:requestParameters>
      <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:arguments">
        <tns:arguments>
          <xsl:value-of select="."/>
        </tns:arguments>
      </xsl:for-each>
    </tns:setSubmitArgs>
  </xsl:template>
</xsl:stylesheet>

11.8.3 ESSWebService addPPActions操作の呼出し方法

BPELプロセスで、Oracle Enterprise Scheduler WebサービスaddPPActions()操作を実行するためのInvokeアクティビティを追加します。

ESSWebServiceを使用して、addPPActions操作のInvokeアクティビティを追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「SOAコンテンツ」を展開し、BPELファイルを選択します。たとえば、BPELProcess1.bpelを選択します。BPELスイムレーンが表示されます。

  2. 「コンポーネント・パレット」から、Invokeアクティビティをドラッグ・アンド・ドロップし、callbackClientの前に配置します。

  3. Invokeアクティビティを選択し、名前Invoke_1をダブルクリックして、テキスト・エントリ・フィールドを選択します。テキスト・エントリ・フィールドで、addPPActionsと入力します。

  4. InvokeアクティビティをESSWebServiceにリンクするには、右矢印を選択し、Invokeアクティビティを「パートナ・リンク」の「Service1」にドラッグします。これにより、「Invokeの編集」ダイアログが開きます。

  5. 図11-31に示すように、「Invokeの編集」ダイアログで、「操作」フィールドの「addPPActions」を選択します。

    図11-31 AddPPActions操作の追加

    AddPPアクションの追加
    「図11-31 AddPPActions操作の追加」の説明

  6. 「Invokeの編集」ダイアログで、「入力」フィールドの「追加」アイコンをクリックします。「変数の作成」ダイアログが表示されます。

  7. 「変数の作成」ダイアログで「OK」をクリックします。

  8. 「Invokeの編集」ダイアログで、「出力」フィールドの「追加」アイコンを選択します。「変数の作成」ダイアログが表示されます。

  9. 「変数の作成」ダイアログで「OK」をクリックします。

  10. 「Invokeの編集」ダイアログで、「OK」をクリックします。Service1への新しい呼出しリンクが表示されます。

  11. 「コンポーネント・パレット」で、Transformアクティビティをドラッグ・アンド・ドロップして、addPPActionsの前に配置します。このトランスフォーメーションにより、BPELフロー入力変数がaddPPActions入力変数にマッピングされます。

  12. トランスフォーメーション・アクティビティが開きます。「トランスフォーメーション」タブで、「ソース」領域の「追加」アイコンをクリックします。「ソース変数」ダイアログが表示されます。

  13. 「ソース変数」ダイアログで、「inputVariable」を選択し、「OK」をクリックします。

  14. トランスフォーメーション・アクティビティでは、「トランスフォーメーション」タブの「ターゲット変数」フィールドでターゲットとして「addPPActions_addPPActions_InputVariable」を選択します。

  15. トランスフォーメーション・アクティビティでは、「トランスフォーメーション」タブの「マッパー・ファイル」フィールドで、「追加」をクリックして、新しいマッパー・ファイルを作成します。XSLトランスフォーメーション・ファイルが表示されます。

  16. 例11-3に示すように、マッピングを作成します。

    addPPActionsからのrequestParametersにより、トランスフォーメーションの内容が上書きされます。残りの入力は、依然としてBPELフロー入力変数から取得されます。前の例のように、addPPActions出力変数のrequestParametersReturn/ns2:parameterを、addPPActions入力変数のrequestParameters/ns2:parameterに割り当てます。

    例11-3 addPPActionsトランスフォーメーション

    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
      <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
      <mapSources>
        <source type="WSDL">
          <schema location="../BPELProcess1.wsdl"/>
          <rootElement name="BPELProcess1ProcessRequest"
             namespace="http://xmlns.oracle.com/EssWebApplication/Project1/BPELProcess1"/>
        </source>
      </mapSources>
      <mapTargets>
        <target type="WSDL">
          <schema location="../Service1.wsdl"/>
          <rootElement name="addPPActions" namespace="http://xmlns.oracle.com/scheduler"/>
        </target>
      </mapTargets>
      <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.0.0(build 090113.2000.2412) AT [FRI FEB 06 10:29:28 PST 2009]. -->
    ?>
    <xsl:stylesheet version="1.0"
                    xmlns:xpath20="http://www.oracle.com/XSL/Transform/java/
                                   oracle.tip.pc.services.functions.Xpath20"
                    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                    xmlns:client="http://xmlns.oracle.com/EssWebApplication/Project1/BPELProcess1"
                    xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.
                                 services.functions.ExtFunc"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
                    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:med="http://schemas.oracle.com/mediator/xpath"
                    xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.
                                mediator.service.common.functions.GetRequestHeaderExtnFunction"
                    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
                    xmlns:tns="http://xmlns.oracle.com/scheduler"
                    xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
                    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
                    xmlns:xref="http://www.oracle.com/XSL/Transform/java/
                                oracle.tip.xref.xpath.XRefXPathFunctions"
                    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                    xmlns:ns0="http://xmlns.oracle.com/scheduler/types"
                    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
                    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                    xmlns:ora="http://schemas.oracle.com/xpath/extension"
                    xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.
                                  adapter.socket.ProtocolTranslator"
                    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                    exclude-result-prefixes="xsi xsl client plnk 
                           xsd ns0 wsdl tns soap12 soap mime xpath20 bpws oraext dvm 
                           hwf med mhdr ids xdk xref ora socket ldap">
      <xsl:template match="/">
        <tns:addPPActions>
          <tns:requestParameters>
            <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:
                                  requestParameters/ns0:parameter">
              <ns0:parameter>
                <ns0:dataType>
                  <xsl:value-of select="ns0:dataType"/>
                </ns0:dataType>
                <ns0:name>
                  <xsl:value-of select="ns0:name"/>
                </ns0:name>
                <ns0:scope>
                  <xsl:value-of select="ns0:scope"/>
                </ns0:scope>
                <ns0:value>
                  <xsl:value-of select="ns0:value"/>
                </ns0:value>
              </ns0:parameter>
            </xsl:for-each>
          </tns:requestParameters>
          <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:postProcessAction">
            <tns:postProcessActions>
              <ns0:actionName>
                <xsl:value-of select="ns0:actionName"/>
              </ns0:actionName>
              <ns0:actionOrder>
                <xsl:value-of select="ns0:actionOrder"/>
              </ns0:actionOrder>
              <xsl:for-each select="ns0:arguments">
                <ns0:arguments>
                  <xsl:value-of select="."/>
                </ns0:arguments>
              </xsl:for-each>
              <ns0:fileMgmtGroup>
                <xsl:value-of select="ns0:fileMgmtGroup"/>
              </ns0:fileMgmtGroup>
              <ns0:description>
                <xsl:value-of select="ns0:description"/>
              </ns0:description>
              <ns0:onError>
                <xsl:value-of select="ns0:onError"/>
              </ns0:onError>
              <ns0:onSuccess>
                <xsl:value-of select="ns0:onSuccess"/>
              </ns0:onSuccess>
              <ns0:onWarning>
                <xsl:value-of select="ns0:onWarning"/>
              </ns0:onWarning>
            </tns:postProcessActions>
          </xsl:for-each>
        </tns:addPPActions>
      </xsl:template>
    </xsl:stylesheet>
    

11.8.4 ESSWebService setStepsArgs操作の呼出し方法

BPELプロセスで、Oracle Enterprise Scheduler WebサービスaddPPActions()操作を実行するためのInvokeアクティビティを追加します。

例11-4に示すように、次の内容をBPELProcess1.xsdファイルに追加して、setStepsArgsに入力できるようにします。

例11-4 setStepsArgsへの入力の有効化

  <xs:element name="stepArgs" type="ns1:stepArgs"
                    minOccurs="0" maxOccurs="unbounded"/>

主要な手順は次のとおりです。

  1. BPELフロー入力変数をsetStepsArgs入力変数にマッピングするためのトランスフォーメーションを作成します。

    「BPELアクティビティとコンポーネント」から、「Transform」を選択し、setStepsArgsの前に配置します。新しいトランスフォーメーション・アクティビティが開きます。ソースとして「inputVariable」を選択し、ターゲットとして「setStepsArgs_setStepsArgs_InputVariable」を選択します。新しいマッパー・ファイルを作成します。SetStepsArgsトランスフォーメーション例のように、マッピングを作成します。

  2. 割当てアクティビティを作成します。この例では、前の手順、addPPActionsで取得したrequestParametersで、トランスフォーメーションの内容を上書きします。残りの入力は、依然としてBPELフロー入力変数から取得されます。前の例のように、addPPActions出力変数のrequestParametersReturn/ns2:parameterをsetStepsArgs入力変数のrequestParameters/ns2:parameterに割り当てます。

    BPELプロセスで、Oracle Enterprise Scheduler WebサービスsubmitRecurringRequest()操作を実行するためのInvokeアクティビティを追加します。この手順では、値を入力変数および出力変数に割り当てることによって、Invokeアクティビティの入力および出力を選択する必要があります。

setStepsArgs操作を使用するInvokeアクティビティを追加する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「Project1」の「SOAコンテンツ」を展開し、BPELファイルを選択します。たとえば、BPELProcess1.bpelを選択します。BPELスイムレーンが表示されます。

  2. 「コンポーネント・パレット」から、Invokeアクティビティをドラッグ・アンド・ドロップし、callbackClientの前に配置します。

  3. Invokeアクティビティを選択し、名前Invoke_1をダブルクリックして、テキスト・エントリ・フィールドを選択します。テキスト・エントリ・フィールドで、setStepsArgsと入力します。

  4. InvokeアクティビティをESSWebServiceにリンクするには、右矢印を選択し、Invokeアクティビティを「パートナ・リンク」の「Service1」にドラッグします。これにより、「Invokeの編集」ダイアログが開きます。

  5. 図11-32に示すように、「Invokeの編集」ダイアログで、「操作」フィールドの「setStepsArgs」を選択します。

    図11-32 ステップ引数設定の操作

    ステップ引数設定の操作
    「図11-32 ステップ引数設定の操作」の説明

  6. 「Invokeの編集」ダイアログで、「入力」フィールドの「追加」アイコンをクリックします。「変数の作成」ダイアログが表示されます。

  7. 「変数の作成」ダイアログで「OK」をクリックします。

  8. 「Invokeの編集」ダイアログで、「出力」フィールドの「追加」アイコンを選択します。「変数の作成」ダイアログが表示されます。

  9. 「変数の作成」ダイアログで「OK」をクリックします。

  10. 「Invokeの編集」ダイアログで、「OK」をクリックします。Service1への新しい呼出しリンクが表示されます。

  11. 「コンポーネント・パレット」で、Transformアクティビティをドラッグ・アンド・ドロップして、setStepsArgsの前に配置します。このトランスフォーメーションにより、BPELフロー入力変数がsetStepsArgs入力変数にマッピングされます。

  12. トランスフォーメーション・アクティビティが開きます。「トランスフォーメーション」タブで、「ソース」領域の「追加」アイコンをクリックします。「ソース変数」ダイアログが表示されます。

  13. 「ソース変数」ダイアログで、「inputVariable」を選択し、「OK」をクリックします。

  14. トランスフォーメーション・アクティビティでは、「トランスフォーメーション」タブの「ターゲット変数」フィールドでターゲットとして「setStepsArgs_setStepsArgs_InputVariable」を選択します。

  15. トランスフォーメーション・アクティビティでは、「トランスフォーメーション」タブの「マッパー・ファイル」フィールドで、「追加」をクリックして、新しいマッパー・ファイルを作成します。XSLトランスフォーメーション・ファイルが表示されます。

  16. 図11-33に示すように、例11-5で示したマッピングを使用して、マッピングを作成します。

    図11-33 ステップ引数設定の操作のためのトランスフォーメーションの使用

    ステップ引数設定の操作のためのトランスフォーメーションの使用
    「図11-33 ステップ引数設定の操作のためのトランスフォーメーションの使用」の説明

  17. 割当てアクティビティを作成します。この例では、前の手順、addPPActionsで取得したrequestParametersにより、トランスフォーメーションの内容が上書きされる必要があります。残りの入力は、依然としてBPELフロー入力変数から取得されます。前の例のように、addPPActions出力変数のrequestParametersReturn/ns2:parameterをsetStepsArgs入力変数に割り当てます。

例11-5 ステップ引数設定の操作のためのトランスフォーメーションのマッピング

<?xml version="1.0" encoding="UTF-8" ?>
<?oracle-xsl-mapper
  <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
  <mapSources>
    <source type="WSDL">
      <schema location="../BPELProcess1.wsdl"/>
      <rootElement name="BPELProcess1ProcessRequest"namespace="http://xmlns.
           oracle.com/EssWebApplication/Project1/BPELProcess1"/>
    </source>
  </mapSources>
  <mapTargets>
    <target type="WSDL">
      <schema location="../Service1.wsdl"/>
      <rootElement name="setStepsArgs"                
        namespace="http://xmlns.oracle.com/scheduler"/>
    </target>
  </mapTargets>
  <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.0.0(build 090113.2000.2412) AT [FRI
       FEB 06 10:56:22 PST 2009]. -->
?>
<xsl:stylesheet version="1.0"
                xmlns:xpath20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.
               functions.Xpath20"
                xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                xmlns:client="http://xmlns.oracle.com/EssWebApplication/Project1/BPELProcess1"
                xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.
              functions.ExtFunc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
                xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:med="http://schemas.oracle.com/mediator/xpath"
                xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.
            common.functions.GetRequestHeaderExtnFunction"
                xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
           xmlns:tns="http://xmlns.oracle.com/scheduler"
                xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
           xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
                xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.
            XRefXPathFunctions"
                xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:ns0="http://xmlns.oracle.com/scheduler/types"
                xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
                xmlns:ora="http://schemas.oracle.com/xpath/extension"
                xmlns:socket="http://www.oracle.com/XSL/Transform/java
                             /oracle.tip.adapter.socket.ProtocolTranslator"
                xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                            exclude-result-prefixes="xsi xsl client plnk xsd ns0
                            wsdl tns soap12 soap mime xpath20 bpws oraext dvm
                            hwf med mhdr ids xdk xref ora socket ldap">
  <xsl:template match="/">
    <tns:setStepsArgs>
      <tns:requestParameters>
        <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:
           requestParameters/ns0:parameter">
          <ns0:parameter>
            <ns0:dataType>
              <xsl:value-of select="ns0:dataType"/>
            </ns0:dataType>
            <ns0:name>
              <xsl:value-of select="ns0:name"/>
            </ns0:name>
            <ns0:scope>
              <xsl:value-of select="ns0:scope"/>
            </ns0:scope>
            <ns0:value>
              <xsl:value-of select="ns0:value"/>
            </ns0:value>
          </ns0:parameter>
        </xsl:for-each>
      </tns:requestParameters>
      <xsl:for-each select="/client:BPELProcess1ProcessRequest/client:stepArgs">
        <tns:stepArgsList>
          <xsl:for-each select="ns0:arguments">
            <ns0:arguments>
              <xsl:value-of select="."/>
            </ns0:arguments>
          </xsl:for-each>
          <ns0:NLSOptions>
            <ns0:language>
              <xsl:value-of select="ns0:NLSOptions/ns0:language"/>
            </ns0:language>
            <ns0:numericCharacters>
              <xsl:value-of select="ns0:NLSOptions/ns0:numericCharacters"/>
            </ns0:numericCharacters>
            <ns0:territory>
              <xsl:value-of select="ns0:NLSOptions/ns0:territory"/>
            </ns0:territory>
          </ns0:NLSOptions>
          <xsl:for-each select="ns0:PPActions">
            <ns0:PPActions>
              <ns0:actionName>
                <xsl:value-of select="ns0:actionName"/>
              </ns0:actionName>
              <ns0:actionOrder>
                <xsl:value-of select="ns0:actionOrder"/>
              </ns0:actionOrder>
              <xsl:for-each select="ns0:arguments">
                <ns0:arguments>
                  <xsl:value-of select="."/>
                </ns0:arguments>
              </xsl:for-each>
              <ns0:fileMgmtGroup>
                <xsl:value-of select="ns0:fileMgmtGroup"/>
              </ns0:fileMgmtGroup>
              <ns0:description>
                <xsl:value-of select="ns0:description"/>
              </ns0:description>
              <ns0:onError>
                <xsl:value-of select="ns0:onError"/>
              </ns0:onError>
              <ns0:onSuccess>
                <xsl:value-of select="ns0:onSuccess"/>
              </ns0:onSuccess>
              <ns0:onWarning>
                <xsl:value-of select="ns0:onWarning"/>
              </ns0:onWarning>
            </ns0:PPActions>
          </xsl:for-each>
          <ns0:stepPath>
            <xsl:value-of select="ns0:stepPath"/>
          </ns0:stepPath>
        </tns:stepArgsList>
      </xsl:for-each>
    </tns:setStepsArgs>
  </xsl:template>
</xsl:stylesheet>

11.9 Oracle Enterprise Scheduler Webサービスの保護

Oracle Web Services Managerセキュリティ・ポリシーを使用して、すべてのOracle Enterprise Scheduler Webサービス操作を保護できます。

詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の「WebLogic Webサービスの保護と管理」を参照してください。

11.9.1 Oracle Enterprise Scheduler Webサービスの保護方法

Oracle Enterprise Scheduler Webサービスを保護するには、Webサービスをコールするメソッドに1つのセキュリティ・ポリシーをアタッチし、SOAコンポジットに対する非同期コールバックに別のセキュリティ・ポリシーをアタッチします。


注意:

Oracle Fusion Applicationsでは、グローバル・ポリシー・アタッチメント(GPA)と呼ばれるOracle WSM機能を使用します。GPAを使用すると、ポリシーはローカルにアタッチされず、グローバル・レベルで指定されます。実行時に、コンポーネントは単にグローバル・ポリシーを継承し、それをOracle WSMが強制します。

すべてのWebサービス・クライアントおよびサーバーで追加する必要があるローカル・ポリシー・アタッチメント(LPA)とは異なり、グローバル・ポリシー・アタッチメント(GPA)は、ドメイン・レベルでアタッチできます。これにより、システム管理者は、ドメイン全体のすべてのWebサービスに対して均一なポリシーを適用できます。

グローバル・ポリシー・アタッチメントの詳細は、Oracle Fusion Applications開発者ガイドの「Webサービスのユースケースの保護」を参照してください。


Oracle Enterprise Scheduler Webサービスを保護する手順は、次のとおりです。

  1. Oracle Enterprise Scheduler WebサービスをコールするSOAコンポジットを開きます。

  2. 右側のスイムレーンで、Oracle Enterprise Scheduler Webサービスを右クリックし、「WSポリシーの構成」「リクエスト対象」を選択します。

    「SOA WSポリシーの構成」ウィンドウが表示されます。

  3. 「セキュリティ」フィールドで、「追加」ボタンをクリックして、セキュリティ・ポリシーをクライアントにアタッチします。

    図11-34に示すように、ポリシーoracle/wss11_saml_token_with_message_protection_client_policyまたはoracle/wss11_username_token_with_message_protection_client_policyを選択し、「OK」をクリックします。

    図11-34 Oracle Enterprise Scheduler Webサービスのクライアント・セキュリティ・ポリシー

    ESS Webサービスのクライアント・セキュリティ・ポリシー
    「図11-34 Oracle Enterprise Scheduler Webサービスのクライアント・セキュリティ・ポリシー」の説明

  4. 右側のスイムレーンで、Oracle Enterprise Scheduler Webサービスを右クリックし、「WSポリシーの構成」「コールバック対象」を選択します。

    「SOA WSポリシーの構成」ウィンドウが表示されます。

  5. 「セキュリティ」フィールドで、「追加」ボタンをクリックして、セキュリティ・ポリシーをコールバック・メソッドにアタッチします。

    図11-35に示すように、ポリシーoracle/wss11_saml_token_with_message_protection_service_policyを選択し、「OK」をクリックします。

    図11-35 Oracle Enterprise Scheduler Webサービスのコールバック・セキュリティ・ポリシー

    ESS Webサービスのコールバック・セキュリティ・ポリシー
    「図11-35 Oracle Enterprise Scheduler Webサービスのコールバック・セキュリティ・ポリシー」の説明

  6. 変更内容をSOAコンポジット・ファイルに保存します。

11.9.2 Oracle Enterprise Scheduler Webサービスの保護時の処理内容

セキュリティ・ポリシーoracle/wss11_saml_token_with_message_protection_client_policyにより、Oracle Enterprise Scheduler Webサービスをコールするメソッドが保護されます。セキュリティ・ポリシーwss11_saml_token_with_message_protection_service_policyにより、WebサービスがSOAコンポジットのコールバックに使用する非同期コールバック・メソッドが保護されます。

11.10 プロジェクトのデプロイおよびテスト

次に、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「SOAコンポジット・アプリケーションのデプロイ」で説明しているように、BPELプロセスをOracle WebLogic Serverにデプロイします。デプロイ後、Oracle SOAコンソールを使用してWebサービスをテストできます。

11.10.1 Webサービスのテスト方法

SOAコンソールから次の手順を使用してWebサービスをテストできます。

ブラウザからWebサービスに直接アクセスすることによってWebサービス操作を起動することはサポートされていません。

Webサービスをテストする手順は、次のとおりです。

  1. ブラウザを開き、次のURLにあるSOAコンソールに移動します。

    http://<machine>:<port>/soa-console

  2. 「アプリケーション」領域で、デプロイされたコンポジットを選択します。

  3. 「テスト」ドロップダウンをクリックして、サービス・エンドポイント・テスト・クライアントを選択します。

  4. これは、入力をBPELプロセスに提供できるエンドポイント・ページです。

  5. 「ペイロード」領域で、ジョブ・パラメータの値を入力します。

  6. 「起動」をクリックします。

  7. コンソール・ページをリフレッシュします。

  8. 最新のインスタンスIDをクリックして、BPELファイルの進行状況を確認します。