パートナ・リンクをパラメータとして取得するスタンドアロン・サブプロセスの作成方法

この項では、サブプロセスがパートナ・リンクをパラメータとして取得し、それを使用してパートナを呼び出し、結果を返す方法を示します。基本的には、サブプロセスからサブプロセスへパートナ・リンクを使用しています。

パートナ・リンクをパラメータとして取得するスタンドアロン・サブプロセスを作成するには:

  1. BPEL 2.0プロセスを含むSOAコンポジット・アプリケーションを作成します。この例では、同期BPEL 2.0プロセスを作成します。
  2. SOAコンポジット・エディタでSOAコンポジット・アプリケーションに移動します。
  3. 右クリックして、「挿入」「サブプロセス」を選択します。

    「サブプロセスの作成」ダイアログが表示されます。

  4. デフォルト値をそのまま使用し(たとえば、デフォルト名はSubprocess1)、「OK」をクリックします。

    これで、パートナ・リンクとして使用する2番目のプロセスを作成しました。

  5. SOAコンポジット・アプリケーションで2番目の同期BPEL 2.0プロセス(この例では、BPELProcess2)を作成します。これは、呼び出すプロセスです。
  6. 「コンポーネント」ウィンドウから、2番目のBPEL 2.0プロセスにassignアクティビティをドラッグします。
  7. 「コピー・ルール」タブの「ターゲット」セクションで、「式ビルダー」アイコンをresult変数にドラッグします。図40-33に詳細を示します。

    図40-33 assignの編集ダイアログ

    図40-33の説明が続きます
    「図40-33 assignの編集ダイアログ」の説明
  8. XPath式を構築し、「OK」をクリックします。
    string("hello from process2")
    
  9. 2番目のBPEL 2.0プロセスを保存して、サブプロセスに戻ります。
  10. 図40-34に示すように、「パートナ・リンク」アイコンをクリックします。

    図40-34 パートナ・リンクの作成

    図40-34の説明が続きます
    「図40-34 パートナ・リンクの作成」の説明

    「パートナ・リンク」ダイアログが表示されます。

  11. 「追加」アイコンをクリックします。

    「パートナ・リンクの作成」ダイアログが表示されます。これで、このパートナ・リンクをパラメータとして定義しました。

  12. パラメータ・リンク(この例ではPartnerLink1という名前)を設計し、「OK」をクリックします。図40-35に詳細を示します。パートナ・リンクのロールはプロバイダとなります。

    図40-35 パートナ・リンクの作成

    図40-35の説明が続きます
    「図40-35 パートナ・リンクの作成」の説明

    「パートナ・リンク」ダイアログが図40-36のように表示されます。

    図40-36 「パートナ・リンク」ダイアログ

    図40-36の説明が続きます
    「図40-36 「パートナ・リンク」ダイアログ」の説明

    図40-37に、サブプロセスのコンテンツを示します。

    図40-37 サブプロセスのコンテンツ

    図40-37の説明が続きます
    「図40-37 サブプロセスのコンテンツ」の説明
  13. scopeアクティビティをサブプロセスにドラッグします。
  14. スコープ・アクティビティの「変数」アイコンをクリックして、リクエストおよびレスポンス・メッセージ・タイプ変数を作成します。図40-38に詳細を示します。

    図40-38 リクエストおよびレスポンス・メッセージ・タイプ変数の作成

    図40-38の説明が続きます
    「図40-38 リクエストおよびレスポンス・メッセージ・タイプ変数の作成」の説明
  15. sequenceアクティビティをサブプロセスにドラッグします。
  16. パートナ・リンクを起動するサブプロセスに「起動」アクティビティをドラッグします。
  17. 図40-39に示すように、invokeアクティビティを設計して、サブプロセスのパートナ・リンクを起動します。この設計には、出力変数(Variable2)が含まれます。

    図40-39 invokeの編集ダイアログ

    図40-39の説明が続きます
    「図40-39 invokeの編集ダイアログ」の説明

    図40-40に、サブプロセスを示します。

    図40-40 BPELサブプロセス

    図40-40の説明が続きます
    「図40-40 BPELサブプロセス」の説明
  18. サブプロセスの「変数」アイコンをクリックして、結果を返す文字列変数を作成します。

    「変数」ダイアログが表示されます。

  19. 「追加」アイコンをクリックして、「変数の作成」ダイアログを起動します。
  20. 文字列変数(この例ではresultという名前)を作成します。
  21. assignアクティビティをサブプロセスにドラッグします。
  22. 図40-41に示すように、パートナ・リンク起動の結果をresult変数にマッピングし、「OK」をクリックします。

    図40-41 assignアクティビティの編集

    図40-41の説明が続きます
    「図40-41 assignアクティビティの編集」の説明

    これで、サブプロセスの設計は完了です。

  23. Oracle BPELデザイナのメインBPEL 2.0プロセス(BPELProcess1)に戻ります。
  24. プロセスの「変数」アイコンをクリックします。
  25. 「追加」アイコンをクリックして、ステップ22で構成して返した結果を含む文字列変数(この例ではVariable1という名前)を作成します。図40-42に詳細を示します。

    図40-42 「変数」ダイアログ

    図40-42の説明が続きます
    「図40-42 「変数」ダイアログ」の説明
  26. assignアクティビティを追加して、文字列値をVariable1に割り当てます。
  27. Oracle BPELデザイナのassignアクティビティの下にcallアクティビティをドラッグします。図40-43に詳細を示します。

    図40-43 メインBPEL 2.0プロセスに追加されたサブプロセス

    図40-43の説明が続きます
    「図40-43 メインBPEL 2.0プロセスに追加されたサブプロセス」の説明
  28. 「パートナ・リンク」スイムレーンを右クリックして、「パートナ・リンクの作成」を選択します。
  29. 図40-44に示すように、BPELProcess2を起動するパートナ・リンクを設計します。

    図40-44 「パートナ・リンクの作成」ダイアログ

    図40-44の説明が続きます
    「図40-44 「パートナ・リンクの作成」ダイアログ」の説明
  30. callアクティビティを右クリックして、「編集」をクリックします。

    コールの編集ダイアログに、サブプロセスでこれまでに作成されたパートナ・リンクが表示されます。

  31. 「result」行の「値」列をクリックして、「変数チューザ」ダイアログを起動します。
  32. 「Variable1」を選択し、「OK」をクリックします。
  33. 「PartnerLink1」行の「値」列をクリックして、「パートナ・リンク・チューザ」ダイアログを起動します。
  34. 「PartnerLink1」を選択して「OK」をクリックします。図40-45に、設計が完了したコールの編集ダイアログを示します。変数は参照によって送信されるので、なんらかの理由でサブプロセスがパートナ・リンクを変更すると(別のパートナ・リンクへのコピーなど)、コール・プロセスのパートナ・リンクが影響を受けます。これは、変数を含む場合と同じプロセスです。

    図40-45 callの編集ダイアログ

    図40-45の説明が続きます
    「図40-45 callの編集ダイアログ」の説明
  35. callアクティビティの下のassignアクティビティをドラッグして、結果を返します。
  36. 「コピー・ルール」タブで、Variable1resultにマッピングして、コール元に結果を返します。図40-46に詳細を示します。

    図40-46 assignの編集ダイアログ

    図40-46の説明が続きます
    「図40-46 assignの編集ダイアログ」の説明
  37. SOAコンポジット・アプリケーションをデプロイします。