ヘッダーをスキップ
Oracle BPEL Process Manager開発者ガイド
10g(10.1.3.1.0)
B31874-03
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

B BPELプロセスのアクティビティとサービス

この付録では、Oracle JDeveloperでBPELプロセスを設計する際に使用するアクティビティとサービスについて説明します。

この付録の内容は次のとおりです。

B.1 プロセス・アクティビティの概要

Oracle JDeveloperには、BPELプロセスにドラッグ・アンド・ドロップできるアクティビティが用意されています。これらのアクティビティを使用すると、プロセス内で特定のタスクを実行できます。この項では、これらのアクティビティについて簡単に概説し、これらのアクティビティの使用方法が説明されている他のドキュメントを参照先として示します。

この項の内容は次のとおりです。


関連項目:

アクティビティの詳細は、次のドキュメントを参照してください。
  • 『Oracle BPEL Process Managerクイック・スタート・ガイド』

  • 『Oracle BPEL Process Manager Order Bookingチュートリアル』

  • 『Business Process Execution Language for Web Services Specification』

  • SOA_Oracle_Home¥bpel¥samples¥referencesディレクトリ


B.1.1 多くのアクティビティに共通のタブ

アクティビティはそれぞれ特定のタスクを実行しますが、同様のタスクを実行できるタブが多くのアクティビティに用意されています。この項では、これらの共通タブについて説明します。

  • 「センサー」タブは、すべてのアクティビティで表示されます。アクティビティの詳細を取得するためのセンサーをここで作成できます。

  • 「相関」タブは、invoke、receiveおよびreplyアクティビティ、pickアクティビティのonMessageブランチ、イベント・ハンドラのOnMessage変数で表示されます。相関セットを使用すると、サービス・インスタンスにおける操作の相関グループを明示的に指定できるため、プロセスとそのパートナ間の複雑な対話の処理が可能になります。相関トークンのセットは、相関グループのすべてのメッセージで共有されるプロパティのセットとして定義されます。

  • 「アダプタ」タブは、invoke、receiveおよびreplyアクティビティ、pickアクティビティのonMessageブランチで表示されます。アドバンスト・キューイング(AQ)、ファイル、FTP、MQおよびJava Message Service(JMS)用のアダプタで使用するヘッダー変数を作成します。

  • 「注釈」タブはすべてのアクティビティで表示され、コードへのコメントや名前と値のペアの割当てという形でアクティビティを説明するために使用できます。

    Oracle JDeveloperで注釈を使用する際には、次の問題に注意してください。

    • Oracle JDeveloperのアクティビティの「注釈」タブには、注釈の順序を変更するための方法が用意されていません。解決策として、Oracle JDeveloperでプロジェクトのBPELファイルの「ソース」ビューを使用して注釈の順序を変更します。

    • switchアクティビティのotherwiseブランチでは、注釈を作成できません。ただし、switchアクティビティのcaseブランチには、この機能が用意されています。


関連項目:


B.1.2 Assignアクティビティ

このアクティビティは、ある変数の内容を別の変数にコピーするなどのデータ操作の手段を提供します。このアクティビティには、任意の数の基本的な割当てを含めることができます。

「Assign」アイコンをダブルクリックすると、「Assign」ウィンドウが表示されます。次のタスクを実行できます。

  • 「一般」タブをクリックし、assignアクティビティに意味のある名前を付けます。

  • 「コピー操作」タブで「作成」アイコン(図B-1を参照)をクリックし、「コピー操作」を選択して「コピー操作の作成」ウィンドウにアクセスします。その他に、「追加操作」「後ろに挿入操作」などの選択項目も使用可能です。このウィンドウでは、「送信先」フィールドのソース要素(変数、式、XMLフラグメントまたはパートナ・リンク)の内容を「宛先」フィールドの宛先要素の内容にコピーできます。パート(通常はペイロード)およびXPath問合せ(XMLドキュメントの一部をアドレス指定するための言語)も選択できます。

図B-1 Assignアクティビティ・ウィンドウの「コピー・ルール」タブ

図ex_assign.gifの説明が続きます
図ex_assign.gifの説明

assignアクティビティに複数のbpelx:append設定が含まれる場合、このアクティビティを2つのassignアクティビティに分割する必要があります。分割しない場合、bpelx:appendがそれぞれリストの最後に移動し、問題が発生する可能性があります。解決策として、この設定を手動で移動します。


関連項目:

assignアクティビティの使用例は、次のドキュメントを参照してください。
  • 『Oracle BPEL Process Manager Order Bookingチュートリアル』

  • 『Oracle BPEL Process Managerクイック・スタート・ガイド』

  • SOA_Oracle_Home¥bpel¥samples¥references¥Assign


B.1.3 Compensateアクティビティ

このアクティビティは、すでに正常に完了している内側のscopeアクティビティでの補正を起動します。このアクティビティが起動できるのは、フォルト・ハンドラまたは別の補正ハンドラの中からのみです。補正は、プロセスでいくつかの操作を完了できず、その他の操作はすでに完了している場合に行われます。プロセスは、以前に完了した操作に戻り、それらを先に戻す必要があります。たとえば、あるプロセスがレンタカー、ホテルおよび航空券を予約するように設計されているとします。レンタカーおよびホテルを予約しましたが、正しい日付の航空券を予約できません。この場合、レンタカーおよびホテルの予約を取り消すことで補正を実行します。compensateアクティビティ(補正ハンドラが起動されるスコープを指定)で補正ハンドラが起動されます。

「Compensate」アイコンをダブルクリックすると、図B-2に示す「Compensate」ウィンドウが表示されます。次のタスクを実行できます。

  • 「一般」タブをクリックしてアクティビティに意味のある名前を付け、補正ハンドラが起動されるscopeアクティビティを選択します。

図B-2 Compensateアクティビティ

図ex_compen.gifの説明が続きます
図ex_compen.gifの説明


関連項目:


B.1.4 Decideアクティビティ

このアクティビティを使用すると、「デシジョン・サービス・ウィザード」で作成したデシジョン・サービスのパートナ・リンクを起動するプロセスを定義できます。また、ルール・セットまたは関数内のファクト・データとBPEL変数の間にコピー操作の割当てを作成できます。

「Decide」アイコンをドラッグ・アンド・ドロップすると、「Decide」ウィンドウが表示されます。図B-3に示すように、次の情報を提供します。

図B-3 Decideアクティビティ

図ds_edit1.gifの説明が続きます
図ds_edit1.gifの説明

  • 名前を入力し、作成したデシジョン・サービス・パートナ・リンクを選択し、実行する操作(起動パターン)を選択します。デシジョン・サービスを作成していない場合は、「デシジョン・サービス」フィールドの右側にある最初のアイコンをクリックします。

  • 「入力ファクトの割当て」「作成」を順番にクリックして入力ファクトのマッピングを作成します。これにより、アサートするファクトまたは関数の入力パラメータにBPEL変数を割り当てることができます。

    また、BPEL入力変数を入力(アサート)ファクト・タイプに対応して自動的に作成されたBPEL変数にマップするように、割当てを作成することもできます。

  • 結果を取得する起動パターンを選択した場合は、「出力ファクトの割当て」「作成」を順番にクリックして出力ファクトのマッピングを作成します。これにより、関数戻り値またはルール・セットの結果からの値をBPEL変数に割り当てることができます。

    また、出力(監視)ファクト・タイプに対応して自動的に作成されたBPEL変数をマップするように、割当てを作成することもできます。

「OK」をクリックすると、デシジョン・サービス・パートナ・リンクに対するassignおよびinvokeアクティビティで構成されるdecideアクティビティが作成されます。

B.1.5 Emailアクティビティ

このアクティビティを使用すると、イベントに関する電子メール通知を送信できます。

たとえば、オンライン書店のオンライン・ショッピング・ビジネス・プロセスで、商品を出荷した後、ユーザーに儀礼的な電子メール・メッセージを送信するとします。ビジネス・プロセスは、ユーザーIDおよび通知メッセージを指定して通知サービスをコールします。通知サービスは、Oracle Internet Directoryから電子メール・アドレスを取得します。

「Email」アイコンをBPELプロセスにドラッグ・アンド・ドロップすると、図B-4に示す「電子メールの編集」ウィンドウが表示されます。

図B-4 「電子メールの編集」ウィンドウ

図notif3.gifの説明が続きます
図notif3.gifの説明

表B-1のように、「電子メールの編集」ダイアログを使用して通知詳細を入力します。

表B-1 電子メール通知パラメータ

名前 説明
送信元アカウント このメッセージの送信に使用するアカウント名。この電子メール・アカウント名の構成の詳細は、Oracle BPEL Serverに存在している必要があります。
宛先 メッセージの配信先となる電子メール・アドレス。これには、a)メッセージ作成時に入力された静的な電子メール・アドレス、b)アイデンティティ・サービスを使用してルックアップされた電子メール・アドレス、c)ペイロードに基づく動的なアドレスのいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的に電子メール・アドレスを取得できます。詳細は、「電子メール・アドレスおよび電話番号の動的設定」を参照してください。
Cc/Bcc メッセージのコピー先およびブラインド・コピー先となる電子メール・アドレス。これには、「宛先」で説明した静的アドレスまたは動的アドレスを使用できます。
返信先 返信に使用する電子メール・アドレス。これには、「宛先」で説明した静的アドレスまたは動的アドレスを使用できます。
件名 電子メール・メッセージの件名。フリー・テキストまたは動的テキストを入力できます。XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。
本文 電子メール・メッセージのメッセージ本文。これには、プレーン・テキスト、XML、または「件名」パラメータで説明したフリー・テキストか動的テキストを使用できます。
マルチパート・メッセージ添付ファイル数n 電子メール添付を指定します。詳細は、「電子メール添付の設定」を参照してください。

「マルチパート・メッセージ」を選択する場合、添付の数を指定します。この数には、本文も含まれます。たとえば、本文と1つの添付ファイルがある場合、ここに2を指定します。



関連項目:


B.1.6 Emptyアクティビティ

このアクティビティを使用すると、操作なしの指示をプロセスに挿入できます。このアクティビティは、何もしないアクティビティを使用する必要がある場合(フォルトを捕捉して抑止する必要がある場合など)に便利です。emptyアクティビティを図B-5に示します。

図B-5 Emptyアクティビティ

図ex_empty.gifの説明が続きます
図ex_empty.gifの説明

B.1.7 Faxアクティビティ

このアクティビティを使用すると、イベントに関するFAX通知を送信できます。

「Fax」アイコンをBPELプロセスにドラッグ・アンド・ドロップすると、図B-6に示す編集Faxウィンドウが表示されます。

図B-6 編集Faxウィンドウ

図notif6.gifの説明が続きます
図notif6.gifの説明

表B-2のように、編集Faxダイアログを使用して通知詳細を入力します。

表B-2 FAX通知パラメータ

名前 説明
FAX番号 メッセージの配信先となるFAX番号。これには、a)メッセージ作成時に入力された静的なFAX番号、b)アイデンティティ・サービスを使用してルックアップされたFAX番号、c)ペイロードに基づく動的なFAX番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的にFAX番号を取得できます。
表紙 表紙の名前。表紙の詳細がサーバー上に存在する必要があります。表紙には、PDF、Microsoft Word、HTMLまたはプレーン・テキストのいずれかのファイル形式を使用できます。(このフィールドはオプションです。)XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。
本文 FAXメッセージ本文。これには、プレーン・テキストまたはHTMLを使用する必要があります。この場合、「表紙」パラメータで説明したフリー・テキストか動的テキストを使用できます。

B.1.8 Flowアクティビティ

このアクティビティを使用すると、同時に実行する1つ以上のアクティビティを指定できます。フロー内のすべてのアクティビティが処理を終了すると、flowアクティビティは完了します。flowアクティビティが完了しても、許可条件がfalseの場合はスキップされている可能性があります。

たとえば、flowアクティビティを使用して、2つの融資斡旋業者(United LoanサービスおよびStar Loanサービス)を並行して起動できるようにするとします。この場合、flowアクティビティには2つのパラレル・アクティビティ(United Loanサービスを起動するシーケンスとStar Loanサービスを起動するシーケンス)が含まれます。各サービスは、任意の時間をかけて融資プロセスを完了できます。

パラレル処理用の2つのパネルを持つ初期flowアクティビティを図B-7に示します。アクティビティを両方のパネルにドラッグ・アンド・ドロップしてパラレル処理を作成します。完成したflowアクティビティは図B-8のようになります。

図B-7 Flowアクティビティ(作成時)

図flow1.gifの説明が続きます
図flow1.gifの説明

図B-8 Flowアクティビティ(設計完了後)

図ex1_scope.gifの説明が続きます
図ex1_scope.gifの説明


関連項目:

flowアクティビティの使用例は、次のドキュメントを参照してください。

B.1.9 FlowNアクティビティ

このアクティビティを使用すると、フロー内にアクティビティを作成できます。作成するアクティビティのブランチの数を指定します。

flowNアクティビティを図B-9に示します。

図B-9 FlowNアクティビティ

図ex_flown.gifの説明が続きます
図ex_flown.gifの説明


関連項目:


B.1.10 Human Taskアクティビティ

このアクティビティを使用すると、タスク、入力または出力情報、およびユーザーまたはグループがエンドツーエンドのビジネス・プロセスの一部として実行する手順を記述できます。たとえば保険会社では、請求が最初の電話から最終的な解決まで一貫して処理されることを保証するワークフロー・アプリケーションを設計できます。このワークフロー・アプリケーションでは、請求を処理する各担当者が正しいオンライン・フォームを使用して自分の手順を正常に完了しないと、プロセスを次の担当者および手順に進めることができません。

作業の一貫した処理を管理および実施するワークフローを作成します。作成したワークフローを変更することもできます。実行時には、Oracle BPEL Worklistアプリケーションを介してアクセス可能なタスクがワークフローから作成されます。

「Human Task」アイコンをドラッグ・アンド・ドロップすると、図B-10に示す「ヒューマン・タスクの追加」ウィンドウが表示されます。

図B-10 Human Taskアクティビティ

図ex_human_task.gifの説明が続きます
図ex_human_task.gifの説明

「タスク定義」フィールドの右側にある2番目のアイコンをクリックし、タスク定義を作成します。ヒューマン・タスク・エディタが開きます。図B-11のように、このエディタでヒューマン・ワークフロー・タスクを作成します。入力はhuman_task_name.taskファイルに保存されます。

図B-11 ヒューマン・タスク・エディタ

図ex_human_task_edit.gifの説明が続きます
図ex_human_task_edit.gifの説明


関連項目:

human taskアクティビティおよびワークフローの使用例は、次のドキュメントを参照してください。

B.1.11 Invokeアクティビティ

このアクティビティを使用すると、サービス(パートナ・リンクで識別)に対して起動する操作を指定できます。操作は、サービスによって指定されたポートでの一方向またはリクエスト/レスポンスです。invokeアクティビティで変数を自動的に作成することも可能です。invokeアクティビティは、同期サービスを起動するか、非同期Webサービスを開始します。

invokeアクティビティは、プロセス内でデータを送受信するためのポートをオープンします。このポートを使用して、必要なデータの送信およびレスポンスの受信を行います。同期コールバックの場合、関数の送受信に必要なポートは1つのみです。

「Invoke」アイコンをダブルクリックすると、図B-12に示す「Invoke」ウィンドウが表示されます。次のタスクを実行できます。

  • アクティビティに意味のある名前を付けます。

  • 操作を指定するパートナ・リンクを選択します。

  • 実行する操作を選択します。

  • データ(ペイロード)をトランスポートするための変数を自動的に作成するか、既存の変数を選択します。

図B-12 Invokeアクティビティ

図ex_invoke.gifの説明が続きます
図ex_invoke.gifの説明


関連項目:

invokeアクティビティの使用例は、次のドキュメントを参照してください。

B.1.12 Java Embeddingアクティビティ

このアクティビティを使用すると、Java BPEL execの拡張機能である<bpelx:exec>を使用してBPELプロセスにカスタムJavaコードを追加できます。これは、関数を実行できるJavaコードがすでに存在し、最初からコーディングをやりなおすのではなくこの既存コードを使用する場合に便利です。

このアクティビティをダブルクリックすると、図B-13に示す「編集Java Embedding」ウィンドウが表示されます。

図B-13 Java Embeddingアクティビティ

図ex_javaembed.gifの説明が続きます
図ex_javaembed.gifの説明

このアクティビティを使用する場合、必ずJARファイルをOracle JDeveloperクラスパスに追加するか、JDev_Oracle_Home¥jdev¥lib¥extディレクトリに配置して、設計時にプロジェクトが適切にコンパイルされるようにします。

また、該当するクラス・ファイルをSOA_Oracle_Home¥bpel¥system¥classesディレクトリに配置します。

次のJava JARファイルの構成手順を実行し、実行時の動作が正しくなるようにします。この例では、Windowsオペレーティング・システムの場合の構成手順が示されています。UNIXオペレーティング・システムの場合も同じ手順を実行してください。

  1. ファイルをBPELクライアントのbpelc CLASSPATHに追加します。

    1. SOA_Oracle_Home¥bpel¥bin¥obsetenv.batを開きます。UNIXオペレーティング・システムの場合は、obsetenv.shファイルを開きます。

    2. このファイルを次のように編集します。

      @REM set MY_CLASSES_DIR=%CLASSPATH%
      set MY_CLASSES_DIR=%OB_HOME%¥system¥classes
      set MY_CLASSPATH=%MY_CLASSES_DIR%;your_jar_files
      
      
  2. 次の2つのいずれかの方法を使用して、各ファイルをOracle BPEL Serverのbpelc CLASSPATHに追加します。

    1. SOA_Oracle_Home¥bpel¥domains¥default¥config¥domain.xmlを開きます(defaultドメインが使用されている場合)。

    2. このファイルを次のように編集します。

      <property id="bpelcClasspath">
         <name>BPEL process compiler classpath</name>
         <value>your_jar_files;...</value>
         <comment>...</comment>
      </property>
      
      
    3. Oracle BPEL Serverを再起動します。

    または

    1. Oracle BPEL Controlで「BPELドメインの管理」「構成」を選択します。

    2. bpelcClasspathプロパティを見つけます。

    3. 「値」フィールドにyour_jar_files;を入力します。

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

    5. Oracle BPEL Serverを再起動します。

  3. ファイルをOracle Application ServerのCLASSPATHに追加します。

    1. application.xmlを開きます。このファイルは次のディレクトリにあります。

      SOA_Oracle_Home¥j2ee¥home¥config¥
      
      
    2. このファイルを次のように編集します。

          <library path=your_jar_files/>
          <library path="C:¥Ora_Home¥bpel¥system¥classes"/>
      

B.1.13 Pagerアクティビティ

このアクティビティを使用すると、イベントに関するポケットベル通知を送信できます。

「Pager」アイコンをBPELプロセスにドラッグ・アンド・ドロップすると、図B-14に示す編集Pagerウィンドウが表示されます。

図B-14 編集Pagerウィンドウ

図notif7.gifの説明が続きます
図notif7.gifの説明

表B-3のように、編集Pagerダイアログを使用して通知詳細を入力します。

表B-3 ポケットベル通知パラメータ

名前 説明
送信元番号 メッセージの送信元となるポケットベル番号。これには、a)メッセージ作成時に入力された静的なポケットベル番号、またはb)ペイロードに基づく動的なポケットベル番号を使用できます。XPath式ビルダーを使用すると、入力から動的にポケットベル番号を取得できます。
ポケットベルの番号 このメッセージの受信者の番号。これには、a)メッセージ作成時に入力された静的なポケットベル番号、b)アイデンティティ・サービスを使用してルックアップされたポケットベル番号、c)ペイロードに基づく動的なポケットベル番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的にポケットベル番号を取得できます。
本文 ポケットベル・メッセージ本文。これには、プレーン・テキストを使用する必要があります。この場合、「送信元番号」パラメータで説明したフリー・テキストか動的テキストを使用できます。

B.1.14 Pickアクティビティ

このアクティビティは、イベント・セット内のあるイベントの発生を待ち、そのイベントに関連付けられたアクティビティを実行します。多くの場合、イベントの発生は相互排他的です(プロセスは承認メッセージと拒否メッセージの両方ではなくいずれかを受信します)。2つ以上のイベントが発生した場合、実行するアクティビティは、どちらのイベントが先に発生したかに基づいて選択されます。イベントがほとんど同時に発生した場合は競争になり、実行するアクティビティはタイミングと実装の両方に基づいて選択されます。

pickアクティビティには2つのブランチがあり、それぞれに条件があります。「Pick」アイコンをダブルクリックすると、図B-15に示すpickアクティビティが現れ、onMessage(左側)およびonAlarm(右側)の2つのブランチが表示されます。onMessageブランチには、(融資サービスなどから)リプライを受信するためのコードが含まれています。onAlarmブランチには、タイムアウト(1分後など)のコードが含まれています。先に完了したブランチが実行されます。もう一方のブランチは実行されません。最初に条件が満たされたブランチが実行されます。

図B-15 Pickアクティビティ

図ex_pick.gifの説明が続きます
図ex_pick.gifの説明

Oracle JDeveloperでPickアクティビティのOnMessageブランチに相関を追加すると、相関構文はassignアクティビティ構文の下に配置されます。しかし、相関構文は、assignアクティビティの上に配置する必要があります。

これを解決するには、次の手順を実行します。

  1. Oracle JDeveloperで相関セットを作成します。

  2. この相関セットをOnMessageブランチに割り当てます。

  3. 残りの設計タスクを完了します。

  4. BPELソース・コード内で相関構文をassignアクティビティの前に移動してから、BPELプロセスを作成またはデプロイします。


関連項目:


B.1.15 Receiveアクティビティ

このアクティビティでは、情報の受信先となるパートナ・リンクと、起動するパートナ・リンクのポート・タイプおよび操作を指定します。このアクティビティは、サービス(融資申請の承認サービスなど)からの非同期コールバック・レスポンス・メッセージを待ちます。待機中のBPELプロセスは、コールバック・メッセージが到着するまでデハイドレーション(圧縮して格納)されます。このレスポンスの内容は、プロセスのレスポンス変数に格納されます。

「Receive」アイコンをダブルクリックすると、図B-16に示す「Receive」ウィンドウが表示されます。次のタスクを実行できます。

  • receiveアクティビティに意味のある名前を付けます。

  • 操作を指定するパートナ・リンク・サービスを選択します。

  • 実行する操作を選択します。

  • コールバック・レスポンスをトランスポートするための変数を自動的に作成するか、既存の変数を選択します。

図B-16 Receiveアクティビティ

図ex_receive.gifの説明が続きます
図ex_receive.gifの説明


関連項目:

receiveアクティビティの使用例は、次のドキュメントを参照してください。

B.1.16 Replyアクティビティ

このアクティビティでは、receiveアクティビティで受信したメッセージに応答するメッセージを送信できます。receiveアクティビティとreplyアクティビティを組み合せると、プロセスのWSDLポート・タイプでのリクエスト/レスポンス操作が形成されます。

replyアクティビティを図B-17に示します。

図B-17 Replyアクティビティ

図ex_reply.gifの説明が続きます
図ex_reply.gifの説明


関連項目:


B.1.17 Scopeアクティビティ

このアクティビティは、独自のローカル変数、フォルト・ハンドラ、補正ハンドラなどを持つことができる、ネストされたアクティビティの集合で構成されます。scopeアクティビティは、プログラミング言語の{ }ブロックに似ています。

各スコープに、その動作を定義する1次アクティビティがあります。1次アクティビティは、多数のアクティビティが任意の深さにネストされている複雑な構造化アクティビティでもかまいません。スコープは、すべてのネストされたアクティビティによって共有されます。

「Scope」アイコンをダブルクリックすると、図B-18に示す「Scope」ウィンドウが表示されます。scopeアクティビティ内に適切なアクティビティを定義します。

図B-18 Scopeアクティビティ

図ex_scope.gifの説明が続きます
図ex_scope.gifの説明

フォルト処理はscopeアクティビティに関連付けられています。その目的は、フォルトが発生したscopeアクティビティの失敗した不完全な処理を先に戻すことです。scopeアクティビティでcatchアクティビティを定義すると、カスタム・フォルト処理アクティビティのセットを作成できます。catchアクティビティは、特定のタイプのフォルトを捕捉するように定義します。

scopeアクティビティ内の「Catchブランチの追加」アイコンを図B-19に示します。図B-20は、「Catchブランチの追加」アイコンをクリックすると表示されるcatchアクティビティ領域を示しています。「アクティビティをここにドロップ」という領域で、追加のアクティビティをドラッグ・アンド・ドロップし、例外の捕捉および管理を行うフォルト処理ロジックを作成します。

たとえば、顧客は融資の申請の際に信用格付けサービスに社会保障番号を提示します。この番号を使用して信用調査が行われます。問題のある信用履歴が確認された場合、または社会保障番号が無効であると認識された場合には、catchアクティビティ内のassignアクティビティは融資提案が拒否されたことを顧客に通知します。融資申請プロセス全体がterminateアクティビティで終了します。

図B-19 Catchブランチの作成

図addcatch.gifの説明が続きます
図addcatch.gifの説明

図B-20 Catchアクティビティ・アイコン

図ex_catch.gifの説明が続きます
図ex_catch.gifの説明


関連項目:

scopeアクティビティおよびフォルト処理の使用例は、次のドキュメントを参照してください。

B.1.18 Sequenceアクティビティ

このアクティビティを使用すると、順に実行するアクティビティの集合を定義できます。たとえば、次のアクティビティを特定の順序で実行できます。

  • receiveアクティビティで顧客リクエストを受信します。

  • 同時動作を可能にするflowアクティビティ内でリクエストを処理します。

  • replyアクティビティで、リクエストの最終承認ステータスを含むリプライ・メッセージを顧客に戻します。

sequenceアクティビティでは、リクエストを妥当な時間内に処理できると想定しています。この想定により、インボーカが同期レスポンスを待つ必要性が正当化されます(このサービスがリクエスト/レスポンス操作として提供されるため)。

この想定ができない場合は、顧客との対話を非同期メッセージ交換のペアとして定義することをお薦めします。

「Sequence」アイコンをダブルクリックすると、図B-21に示すアクティビティ領域が表示されます。sequenceアクティビティ内に適切なアクティビティを定義します。

図B-21 Sequenceアクティビティ

図ex_sequence.gifの説明が続きます
図ex_sequence.gifの説明

B.1.19 SMSアクティビティ

このアクティビティを使用すると、イベントに関するショート・メッセージ・システム(SMS)通知を送信できます。

「SMS」アイコンをBPELプロセスにドラッグ・アンド・ドロップすると、図B-22に示す編集SMSウィンドウが表示されます。

図B-22 編集SMSウィンドウ

図notif5.gifの説明が続きます
図notif5.gifの説明

表B-4のように、編集SMSダイアログを使用して通知詳細を入力します。

表B-4 SMS通知パラメータ

名前 説明
送信元番号 SMS通知の送信元となる電話番号。これには、メッセージ作成時に入力された静的な電話番号、またはペイロードに基づく動的な電話番号を使用できます。XPath式ビルダーを使用すると、入力から動的に電話番号を取得できます。詳細は、「電子メール・アドレスおよび電話番号の動的設定」を参照してください。
電話番号 メッセージの配信先となる電話番号。これには、a)メッセージ作成時に入力された静的な電話番号、b)アイデンティティ・サービスを使用してルックアップされた電話番号、c)ペイロードに基づく動的な電話番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的に電話番号を取得できます。
件名 SMSメッセージの件名。フリー・テキストまたは動的テキストを入力できます。XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。
本文 SMSメッセージ本文。これには、プレーン・テキストを使用する必要があります。この場合、「件名」パラメータで説明したフリー・テキストか動的テキストを使用できます。

B.1.20 Switchアクティビティ

このアクティビティは、caseブランチに定義された1つ以上の条件付きブランチ(オプションでotherwiseブランチが続く)の順序付きリストで構成されます。ブランチは、出現順に考慮されます。条件がtrueである最初のブランチが選択され、switchに対して実行されるアクティビティを提供します。条件付きブランチが選択されない場合、otherwiseブランチが選択されます。otherwiseブランチが明示的に指定されていない場合、emptyアクティビティを持つotherwiseブランチが使用可能とみなされます。選択されたブランチのアクティビティが完了すると、switchアクティビティは完了します。

switchアクティビティは、flowアクティビティとは機能的に異なります。たとえば、flowアクティビティを使用すると、1つのプロセスで2つの融資提案を同時に収集できますが、それぞれの値は比較されません。2つの提案の値を比較して決定を下すには、switchアクティビティを使用します。定義された条件(caseブランチ内)が満たされると、最初のブランチが実行されます。条件が満たされない場合はotherwiseブランチが実行されます。

次のブランチが定義されたswitchアクティビティを図B-23に示します。

図B-23 Switchアクティビティ

図scope7.gifの説明が続きます
図scope7.gifの説明


関連項目:

switchアクティビティの使用例は、次のドキュメントを参照してください。

B.1.21 Terminateアクティビティ

terminateアクティビティを使用すると、アクティビティのタスク(catchブランチのフォルト処理タスクなど)を終了できます。たとえば、クライアントの信用履歴に問題があることが確認された場合や、社会保障番号が無効であると認識された場合には、融資申請プロセスは終了し、クライアントの融資申請の申込書は融資サービス業者に提出されません。

switchアクティビティのotherwiseブランチにあるterminateアクティビティを図B-24に示します。

図B-24 Terminateアクティビティ

図loanflowplus.gifの説明が続きます
図loanflowplus.gifの説明


関連項目:

terminateアクティビティの使用例は、次のドキュメントを参照してください。

B.1.22 Throwアクティビティ

このアクティビティは、ビジネス・プロセス内からフォルトを生成します。

「Throw」アイコンをダブルクリックすると、図B-25に示す「Throw」ウィンドウが表示されます。

図B-25 Throwアクティビティ

図ex_throw.gifの説明が続きます
図ex_throw.gifの説明


関連項目:

throwアクティビティの使用例は、次のドキュメントを参照してください。

B.1.23 Transformアクティビティ

このアクティビティを使用すると、ソース要素をターゲット要素にマップ(たとえば、受信した注文書データを送信する注文確認書データにマップ)するトランスフォーメーションを作成できます。

「Transform」アイコンをダブルクリックすると、図B-26に示す「Transform」ウィンドウが表示されます。このウィンドウでは、次のタスクを実行できます。

  • マップするソースおよびターゲットの変数およびパートを定義します。

  • トランスフォーメーション・マッパー・ファイルを指定します。

  • 「マッパー・ファイル」フィールドの右側にある2番目のアイコン(「マッピングの作成」アイコン)をクリックし、ソースおよびターゲットの要素をグラフィカルにマッピングするウィンドウにアクセスします。このウィンドウでは、ソース要素をターゲット要素にドラッグ・アンド・ドロップ(マップ)できます。

図B-26 Transformアクティビティ

図ex_transform1.gifの説明が続きます
図ex_transform1.gifの説明


関連項目:

transformアクティビティの使用例は、次のドキュメントを参照してください。

B.1.24 Voiceアクティビティ

このアクティビティを使用すると、イベントに関する電話ボイス通知を送信できます。

「Voice」アイコンをBPELプロセスにドラッグ・アンド・ドロップすると、図B-27に示す編集Voiceウィンドウが表示されます。

図B-27 編集Voiceウィンドウ

図notif4.gifの説明が続きます
図notif4.gifの説明

表B-5のように、編集Voiceダイアログを使用して通知詳細を入力します。

表B-5 ボイス通知パラメータ

名前 説明
電話番号 メッセージの配信先となる電話番号。これには、a)メッセージ作成時に入力された静的な電話番号、b)アイデンティティ・サービスを使用してルックアップされた電話番号、c)ペイロードに基づく動的な電話番号のいずれかを使用できます。XPath式ビルダーを使用すると、入力から動的に電話番号を取得できます。
本文 メッセージ本文。これには、プレーン・テキストまたはXMLを使用できます。フリー・テキストまたは動的テキストも使用できます。XPath式ビルダーを使用すると、指定したプロセス変数のデータに基づいて動的にテキストを設定できます。

B.1.25 Waitアクティビティ

このアクティビティでは、一定期間内、または特定の期限に達するまでの遅延を指定できます。このアクティビティの一般的な用途は、あるタイミングで操作を起動することです。このアクティビティを使用すると、指定された期間の間、または指定された時刻まで、待機できます。有効期限条件を1つのみ指定する必要があります。

「Wait」アイコンをダブルクリックすると、図B-28に示す「Wait」ウィンドウが表示されます。

図B-28 Waitアクティビティ

図ex_wait.gifの説明が続きます
図ex_wait.gifの説明


関連項目:

waitアクティビティの使用例は、次のドキュメントを参照してください。

B.1.26 Whileアクティビティ

このアクティビティは、指定された反復アクティビティの繰返し実行をサポートします。反復アクティビティは、特定のwhile条件がtrueでなくなるまで繰り返されます。

「While」アイコンをダブルクリックすると、図B-29に示す「While」ウィンドウが表示されます。このウィンドウで式を入力できます。

図B-29 Whileアクティビティ

図ex_while1.gifの説明が続きます
図ex_while1.gifの説明


関連項目:

whileアクティビティの使用例は、次のドキュメントを参照してください。

B.2 サービスの概要

次のサービスを使用すると、BPELプロセスでWebベースのアプリケーションおよびクライアントと通信できます。


関連項目:

  • 以降の各項で説明するアダプタの詳細は、『Oracle Application Server Adapters for Files, FTP, DatabasesおよびEnterprise Messagingユーザーズ・ガイド』を参照してください。

  • 概念については、『Oracle Application Server Adapter概要』を参照してください。

  • アダプタの使用例は、『Oracle BPEL Process Manager Order Bookingチュートリアル』を参照してください。


この項の内容は次のとおりです。

B.2.1 AQアダプタ

このアダプタは、デキュー(インバウンド)およびエンキュー(アウトバウンド)の両方のメッセージ・アダプタとして機能します。インバウンド方向では、このアダプタはメッセージを宛先からデキューできるようにキューをポーリングします。アウトバウンド方向では、サブスクライバがデキューできるようにメッセージをキューにエンキューします。


関連項目:

このアダプタの使用例は、次のドキュメントを参照してください。
  • SOA_Oracle_Home¥bpel¥samples¥tutorials¥124.AQAdapter


B.2.2 データベース・アダプタ

このアダプタを使用すると、BPELプロセスでJDBCを介してOracleデータベースやサード・パーティ・データベースと通信できます。既存のリレーショナル・スキーマにアクセスするには、「アダプタ構成ウィザード」で次の操作を行います。

  • リレーショナル・スキーマをインポートし、XMLスキーマ(XSD)としてマップします。

  • SELECTINSERTおよびUPDATEなどのSQL操作をWebサービスとして抽象化します。

BPELプロセスでXMLを処理してWebサービスを起動する間に、データベースの行と値の問合せ、挿入および更新が実行されます。


関連項目:

このアダプタの使用例は、次のドキュメントを参照してください。
  • SOA_Oracle_Home¥bpel¥samples¥tutorials¥122.DBAdapter


B.2.3 デシジョン・サービス

このサービスを使用すると、BPELプロセスをビジネス・ルール・エンジンで作成されるルール・セットまたは関数と統合できます。デシジョン・サービスにより、これらのルールに基づいてビジネス上の決定を下すことができます。ウィザードの複数のステップに従って、選択したルール・セットまたは関数(および実行する操作)を、BPELプロセスに使用するWebサービスに変換します。ウィザードでは、Oracle Business Rulesエンジンがサポートされています。このWebサービス用の新規デシジョン・サービス・パートナ・リンクが自動的に作成され、ビジネス・ルール・エンジンとのインタフェースを提供します。

ルール・エンジンとリポジトリに関するメタデータ情報は、BPELプロジェクトの.decs構成ファイルに格納されます。このファイルは実行時に使用されます。起動するルール・セットに基づくWSDLファイルも作成されます。


関連項目:

このサービスの使用例は、次のドキュメントを参照してください。

B.2.4 EJB Webサービス

このサービスを使用すると、ステートレス・セッションEJBからWebサービスをパブリッシュできます。ウィザードでは、コードをWebサービスとしてパブリッシュするために必要なWSDL文書とデプロイメント・ファイルが作成されます。

B.2.5 ファイル・アダプタ

このアダプタは、インバウンドおよびアウトバウンドの両方のアダプタとして機能します。インバウンド方向では、このアダプタは取得して処理するファイルをディレクトリ内でポーリングします。アウトバウンド方向では、ディレクトリにファイルを作成します。


関連項目:

このアダプタの使用例は、次のドキュメントを参照してください。
  • SOA_Oracle_Home¥bpel¥samples¥tutorials¥121.FileAdapter


B.2.6 FTPアダプタ

このアダプタは、インバウンドおよびアウトバウンドの両方のアダプタとして機能します。インバウンド方向では、このアダプタは取得して処理するファイルをディレクトリ内でポーリングします。アウトバウンド方向では、ディレクトリにファイルを作成します。


関連項目:

このアダプタの使用例は、次のドキュメントを参照してください。
  • SOA_Oracle_Home¥bpel¥samples¥tutorials¥129.FTPAdapter


B.2.7 Java Webサービス

このサービスを使用すると、JavaクラスからWebサービスをパブリッシュできます。ウィザードでは、コードをWebサービスとしてパブリッシュするために必要なWSDL文書とデプロイメント・ファイルが作成されます。パブリッシュするクラスとメソッドを選択すると、アプリケーション・サーバーにデプロイできるデプロイメント・ディスクリプタ、JAX-RPCマッピング・ファイルおよびWSDL文書が生成されます。

B.2.8 JMSアダプタ

このアダプタは、消費(インバウンド)および発行(アウトバウンド)の両方のメッセージ・アダプタとして機能します。インバウンド方向では、このアダプタはJMS宛先からのメッセージをポーリング(消費)します。アウトバウンド方向では、JMS宛先にメッセージを送信(発行)します。


関連項目:

このアダプタの使用例は、次のドキュメントを参照してください。
  • SOA_Oracle_Home¥bpel¥samples¥tutorials¥123.JmsAdapter


B.2.9 MQアダプタ

このアダプタは、BPELプロセスとIBM MQSeriesメッセージ・ソフトウェアの間のメッセージ交換機能を提供します。


関連項目:

MQアダプタ・チュートリアルは、次の場所にあります。
  • http://www.oracle.com/technology/products/integration/adapters/dev_support.html#tutorials


B.2.10 Oracle Applications

このアダプタは、Oracle Applicationsへの包括的な双方向、マルチモードの同期接続と非同期接続を提供します。このアダプタはOracle Applicationsリリース11.5.1から11.5.10までのモジュールをすべてサポートしています。インタフェース表、ビュー、Application Program Interface(API)およびXMLゲートウェイを介して、Oracle Applicationsへのリアルタイムの双方向の接続性を提供します。また、インタフェース表とAPIを使用してOracle Applicationsにデータを挿入します。このアダプタは、Oracle Applicationsからデータを取得するためにビューを使用します。また、Oracle Applicationsとの双方向統合にもXMLゲートウェイを使用します。XMLゲートウェイは、Oracle Applicationsとの間でOpen Application Group Integration Specification(OAGIS)準拠のドキュメントの挿入と受信にも使用されます。


関連項目:

このアダプタの使用例は、次のドキュメントを参照してください。
  • 『Oracle Application Server Adapter for Oracle Applicationsユーザーズ・ガイド』

  • SOA_Oracle_Home¥bpel¥samples¥tutorials¥150.AppsAdapter


B.2.11 PartnerLink

このサービスを使用すると、プロセスが対話する外部サービスを定義できます。パートナ・リンク・タイプでは、各サービスが対話中に果たすロールを定義し、対話のコンテキスト内でメッセージを受信するために各サービスが提供するポート・タイプを指定することで、2つのサービス間での対話の関係が決まります。たとえば、信用格付けサービスおよび2つの融資斡旋業者サービス(United LoanおよびStar Loan)と対話するプロセスを作成する場合、3つのサービスすべてにパートナ・リンクを作成します。

「PartnerLink」アイコンをダブルクリックすると、図B-30に示す「パートナ・リンク」ウィンドウが表示されます。次の詳細を指定します。

  • サービスの意味のある名前

  • 外部サービスのWebサービス記述言語(WSDL)ファイル

  • 実際のサービス・タイプ(パートナ・リンク・タイプとして定義)

  • サービスのロール(パートナ・ロールとして定義)

  • サービスをリクエストするプロセスのロール(マイ・ロールとして定義)

図B-30 PartnerLinkアクティビティ

図ex_partnerlink.gifの説明が続きます
図ex_partnerlink.gifの説明


関連項目:

パートナ・リンクの使用例は、次のドキュメントを参照してください。

B.3 プロセス・ダイアグラムのロード時の検証

scopeやassignなどのアクティビティを初めて作成して開くと、無効な設定を示すアイコン(感嘆符が付いた黄色い三角形)が表示されることがあります。設定が無効なのは、まだ詳細を入力していないためです。

現在のプロジェクトでこのオプションをオフにする手順は、次のとおりです。

  1. BPELダイアグラムを右クリックして「表示」「ダイアグラム・プロパティ」を選択します。

  2. 「自動検証の有効化」オプションの選択を解除します。

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

  4. 「ファイル」メイン・メニューから「すべて保存」を選択します。

これ以降のすべての新規プロジェクトでこのメッセージを無効にする手順は、次のとおりです。

  1. Oracle JDeveloperの「ツール」メイン・メニューから「プリファレンス」「BPELエディタ」を選択します。

  2. 「自動検証の有効化」オプションの選択を解除します。

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

B.3.1 Oracle JDeveloperでの変更内容が自動的に更新されない場合

「BPEL検証ブラウザ」ウィンドウで行った更新が、BPELプロセスに自動的に反映されないことがあります。たとえば、次の手順を実行した場合です。

  1. パートナ・リンクを作成し、WSDLファイルを指定せずに「適用」「OK」を順番にクリックします。このエラーが原因でpartnerLinkアイコンの左上隅に感嘆符アイコンが表示されます。

  2. 感嘆符をクリックして「BPEL検証ブラウザ」ウィンドウを表示します。

  3. このウィンドウの「BPEL構造」セクションでパートナ・リンクをダブルクリックし、表示される「パートナ・リンクの編集」ウィンドウのすべてのフィールドに適切に入力し、変更内容を適用して保存します。

  4. 「BPEL構造」ウィンドウを右クリックして「パートナ・リンクのリフレッシュ」を選択します。パートナ・リンクに引き続きエラーが表示されることに注意してください。

回避策として、「BPEL検証ブラウザ」ウィンドウを閉じ、Oracle JDeveloperの「ダイアグラム」ウィンドウでpartnerLinkアイコンをダブルクリックして、「適用」「OK」を順番にクリックします。このアクションにより、エラーが表示されなくなります。

B.4 まとめ

この付録では、BPELプロセスを作成するためにドラッグ・アンド・ドロップできるプロセス・アクティビティとサービスについて説明しました。