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

この付録では、SOAコンポジット・アプリケーションでBPELプロセスを設計する際に使用するBPELプロセスのアクティビティとサービスについて説明します。

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

A.1 アクティビティおよびコンポーネントの概要

Oracle BPELデザイナの「コンポーネント」ウィンドウで「SOAコンポーネント」を開くと、サービス・コンポーネントが表示されます。図A-1は、BPEL 2.0または1.1プロセスに対して表示されるサービス・コンポーネントを示しています。

図A-1 SOAコンポーネント

図A-1の説明
「図A-1 SOAコンポーネント」の説明

サービス・コンポーネントの詳細は、次に示す項を参照してください。

Oracle BPELデザイナの詳細は、「Oracle BPEL Process Managerのスタート・ガイド」を参照してください。

A.2 BPEL 1.1および2.0アクティビティの概要

この項では、BPELアクティビティの概要を紹介し、それらのアクティビティの使用方法が説明されているドキュメントを参照先として示します。

Oracle BPELデザイナには、BPELプロセスに追加できるBPEL 1.1およびBPEL 2.0アクティビティが含まれています。これらのアクティビティを使用すると、プロセス内で特定のタスクを実行できます。一部のアクティビティはBPEL 1.1とBPEL 2.0のどちらでも使用できます。その他はBPEL 1.1かBPEL 2.0の一方でのみ使用できます。

これらのアクティビティにアクセスするには、Oracle BPEL Designerの「コンポーネント」ウィンドウに進みます。アクティビティは次のカテゴリに分けて表示されます。

  • BPELコンストラクト: BPEL 1.1および2.0の標準機能で提供されるコア・アクティビティ(コンストラクトとも言います)が表示されます。このカテゴリのアクティビティは、BPEL 1.1の場合は「Webサービス」「アクティビティ」「構造化アクティビティ」、BPEL 2.0の場合は「Webサービス」「基本アクティビティ」「構造化アクティビティ」という追加サブカテゴリの下にそれぞれ表示されます。

  • サブプロセス: 作成されたサブプロセスを表示します。サブプロセスが作成されていない場合、このカテゴリは空です。サブプロセスの詳細は、「スタンドアロンおよびインラインBPELサブプロセスの起動の概要」を参照してください。

  • Oracle Extensions: BPEL 1.1および2.0機能に価値と使いやすさを追加する拡張アクティビティが表示されます。

  • SOAコンポーネント: BPELプロセスに追加できるビジネス・ルール、ヒューマン・タスクおよびOracle Mediatorサービス・コンポーネントが表示されます。

  • BPELサービス: JCAアダプタ(AQ、ファイル、FTP、データベース、JMS、MQ、Oracle User Messaging Service、ソケット、JDE World、SAP、LDAPサーバー、Coherenceキャッシュおよびサード・パーティ)、Oracle BAM 11gバインディング・コンポーネント、Oracle Healthcareバインディング・コンポーネント、Oracle B2Bバインディング・コンポーネント、EJBバインディング・コンポーネント、ADF-BCバインディング・コンポーネント、Oracle E-Business Suiteアダプタ、直接バインディング・コンポーネント、HTTPバインディング・コンポーネント、Oracle Managed File Transfer (MFT)アダプタなどのBPELプロセスに追加可能なパートナ・リンクが表示されます。

  • カスタム・アクティビティ・テンプレート: 作成されたすべてのカスタムscopeアクティビティのテンプレートが表示されます。テンプレートの詳細は、「テンプレートの概要」を参照してください。

表A-1に、使用可能なアクティビティを示します。

表A-1 BPEL 1.1とBPEL 2.0のコンストラクトおよび拡張

アクティビティ 上位のカテゴリ BPEL 1.1でサポートされているか BPEL 2.0でサポートされているか 詳細

Assign

BPELコンストラクト

はい

はい

「Assignアクティビティ」

Assert

Oracle Extensions

はい

はい

「Assertアクティビティ」

Bind Entity

Oracle Extensions

はい

いいえ

「Bind Entityアクティビティ」

Call

Oracle Extensions

いいえ

はい

「Callアクティビティ」

Compensate

BPELコンストラクト

はい

はい

「Compensateアクティビティ」

CompensateScope

BPELコンストラクト

いいえ

はい

「CompensateScopeアクティビティ」

Create Entity

Oracle Extensions

はい

いいえ

「Create Entityアクティビティ」

Dehydrate

Oracle Extensions

はい

はい

「Dehydrateアクティビティ」

Dynamic Partner Link

BPELコンストラクト

はい

いいえ

「Dynamic Partner Linkアクティビティ」

電子メール

Oracle Extensions

はい

はい

「Emailアクティビティ」

Empty

BPELコンストラクト

はい

はい

「Emptyアクティビティ」

Exit

BPELコンストラクト

いいえ

はい

ノート: BPEL 2.0ではterminateアクティビティから置き換わります。

「Exitアクティビティ」

Flow

BPELコンストラクト

はい

はい

「Flowアクティビティ」

FlowN

Oracle Extensions

はい

いいえ

ノート: BPEL 2.0ではforEachアクティビティに置き換わります。

「FlowNアクティビティ」

forEach

BPELコンストラクト

いいえ

はい

ノート: BPEL 2.0ではFlowNアクティビティから置き換わります。

「forEachアクティビティ」

If

BPELコンストラクト

いいえ

はい

ノート: BPEL 2.0ではswitchアクティビティから置き換わります。

「Ifアクティビティ」

IM

Oracle Extensions

はい

はい

「IMアクティビティ」

Invoke

BPELコンストラクト

はい

はい

「Invokeアクティビティ」

Java Embedding

Oracle Extensions

はい

はい

「Java Embeddingアクティビティ」

Partner Link

BPELコンストラクト

はい

はい

「Partner Linkアクティビティ」

Phase

Oracle Extensions

はい

はい

「Phaseアクティビティ」

Pick

BPELコンストラクト

はい

はい

「Pickアクティビティ」

Receive

BPELコンストラクト

はい

はい

「Receiveアクティビティ」

Receive Signal

Oracle Extensions

はい

はい

「Receive Signalアクティビティ」

Remove Entity

Oracle Extensions

はい

いいえ

「Remove Entityアクティビティ」

RepeatUntil

BPELコンストラクト

いいえ

はい

「RepeatUntilアクティビティ」

Replay

Oracle Extensions

はい

はい

「Replayアクティビティ」

Reply

BPELコンストラクト

はい

はい

「Replyアクティビティ」

Rethrow

BPELコンストラクト

いいえ

はい

「Rethrowアクティビティ」

Schedule Job

Oracle Extensions

はい

はい

「Schedule Job」

Scope

BPELコンストラクト

はい

はい

「Scopeアクティビティ」

Sequence

BPELコンストラクト

はい

はい

「Sequenceアクティビティ」

Signal

Oracle Extensions

はい

はい

「Signalアクティビティ」

SMS

Oracle Extensions

はい

はい

「SMSアクティビティ」

Switch

BPELコンストラクト

はい

いいえ

ノート: BPEL 2.0ではIfアクティビティに置き換わります。

「Switchアクティビティ」

Terminate

BPELコンストラクト

はい

いいえ

ノート: BPEL 2.0ではExitアクティビティに置き換わります。

「Terminateアクティビティ」

Throw

BPELコンストラクト

はい

はい

「Throwアクティビティ」

Translate

Oracle Extensions

はい

はい

「Translateアクティビティ」

User Notification

Oracle Extensions

はい

はい

「User Notificationアクティビティ」

Validate

Oracle Extensions (BPEL 1.1)

BPELコンストラクト(BPEL 2.0)

はい

はい

「Validateアクティビティ」

Wait

BPELコンストラクト

はい

はい

「Waitアクティビティ」

While

BPELコンストラクト

はい

はい

「Whileアクティビティ」

XQuery Transform

Oracle Extensions

はい

はい

「XQuery Transformアクティビティ」

XSLT Transform

Oracle Extensions

はい

はい

「XSLT Transformアクティビティ」

アクティビティの詳細は、次のURLにアクセスして、「Business Process Execution Language for Web Services Specification」または「Web Services Business Process Execution Language Specification Version 2.0」を参照してください。

http://www.oasis-open.org

A.2.1 多くのアクティビティに共通のタブ

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

A.2.1.1 「注釈」タブ

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

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

A.2.1.2 「アサーション」タブ

「アサーション」タブは、invoke、receive、replyの各アクティビティと、pickおよびscopeアクティビティのonMessageブランチで表示されます。これらのアクティビティでのリクエスト/レスポンス操作時にコールバック・メッセージを受信すると、一連のアサーションが実行されます。アサーションには、falseと評価された場合にアクティビティからBPELフォルトをスローするXPath式を指定します。この機能は、パートナ・コールバック後に多数のswitch、assignおよびthrowアクティビティを使用する可能性がある場合の代替手段として提供されています。

条件を実行するタイミングを次の中から選択できます。

  • Preassert: この条件は、invokeアクティビティまたはreplyアクティビティがアウトバウンド・メッセージを送信する前に実行されます。

  • Postassert: この条件は、invokeアクティビティ、receiveアクティビティまたはonMessageブランチがインバウンド・メッセージを受信した後に実行されます。

詳細は、このタブのオンライン・ヘルプおよび「アサーション条件によるフォルトのスロー」を参照してください。

A.2.1.3 「相関」タブ

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

詳細は、このタブのオンライン・ヘルプおよび「非同期サービスでの相関セットの概要」を参照してください。

A.2.1.4 「ドキュメント」タブ

「ドキュメント」タブでは、BPELファイルのアクティビティにヒューマン・ドキュメントを埋め込むことができます。これらのコメントは、BPELファイルのソース・コードでのみ表示されます。次の例に詳細を示します。

<invoke>
. . .
   <documentation>
      Invokes the credit rating service partner link
   </documentation>
. . .

ノート:

このタブは、BPEL 2.0プロジェクトでのみ使用できます。

A.2.1.5 「ヘッダー」タブ

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

詳細は、このタブのオンライン・ヘルプおよび『テクノロジ・アダプタの理解』を参照してください

A.2.1.6 「プロパティ」タブ

「プロパティ」タブは、invoke、receive、replyの各アクティビティと、pickおよびscopeアクティビティのonMessageブランチで表示されます。Oracle BPEL Process Manager、Oracle Mediator、Oracle JCAアダプタ、RESTアダプタ、Oracle B2Bなどのコンポーネントに対して正規化されたメッセージ・ヘッダー・プロパティを定義できます。

詳細は、このタブのオンライン・ヘルプおよび「メッセージ・ヘッダーを介した正規化メッセージ・プロパティの伝播」を参照してください。

A.2.1.7 「スキップ条件」タブ

「スキップ条件」タブは、ほとんどのアクティビティで表示され、指定したXPath式がtrueと評価された場合に、そのアクティビティがスキップされるようにできます。この拡張機能は、条件付きアクティビティの作成に使用するswitchアクティビティのcaseパターンの代替手段として提供されています。

詳細は、このタブのオンライン・ヘルプおよび「アクティビティの実行をバイパスするためのXPath式の指定」を参照してください。

A.2.1.8 「ソース」タブと「ターゲット」タブ

「ソース」タブと「ターゲット」タブでは、flowアクティビティで実行するソースとターゲットのアクティビティを定義できます。この機能を使用すると、flowアクティビティ内でアクティビティの実行を同期し、ターゲット・アクティビティがソース・アクティビティの完了後にのみ実行されるようにできます。

詳細は、このタブのオンライン・ヘルプおよび「flowアクティビティ内のアクティビティ実行の同期化」を参照してください。

A.2.1.9 「タイムアウト」タブ

「タイムアウト」タブは、receiveアクティビティで表示され、リクエスト/レスポンス操作に対するタイムアウト設定が提供されます。この機能は、パートナ・コールバックのタイムアウト期間を指定する場合に使用する必要があるpickアクティビティのonMessageブランチとonAlarmブランチの代替手段として提供されています。

詳細は、このタブのオンライン・ヘルプおよび「receiveアクティビティのリクエスト/リプライ操作および入力専用操作に対するタイムアウトの設定」を参照してください。

A.2.2 アダプタ構成時以外のネイティブ・フォーマット・ビルダー・ウィザードの使用

ネイティブ・フォーマット・ビルダー・ウィザードを使用して、ネイティブXSDスキーマ・ファイルを作成できます。アダプタ作成時でなくてもネイティブ・フォーマット・ビルダー・ウィザードを起動して、新規スキーマを作成したり、既存のスキーマを編集できるようになりました。

A.2.2.1 「アプリケーション」ウィンドウからネイティブ・フォーマット・スキーマを作成するには:
  1. Oracle JDeveloperメイン・メニューから、「ファイル」「新規」を選択します。

  2. 「カテゴリ」リストで、「SOA層」「インタフェース」を選択します。

  3. 「NXSDスキーマ」をクリックして、ネイティブ・フォーマット・ビルダー・ウィザードを起動します。

  4. 「ようこそ」ページで、「次へ」をクリックします。

  5. 「ファイル名とディレクトリ」ページで、スキーマのファイル名(たとえば、addresses_schema.xsd)とディレクトリ・パスを指定します。

  6. ウィザードの残りのページを実行して、ネイティブ・フォーマット・スキーマを作成します。

ネイティブ・フォーマット・ビルダー・ウィザードの詳細は、『テクノロジ・アダプタの理解』ネイティブ・フォーマット・ビルダー・ウィザードに関する項を参照してください。

A.2.2.2 「アプリケーション」ウィンドウで既存のネイティブ・フォーマット・スキーマを編集するには:

スキーマ編集のために、「アプリケーション」ウィンドウからネイティブ・フォーマット・ビルダー・ウィザードにアクセスできます。スキーマ・ファイルがネイティブ・フォーマット・スキーマ・ファイルであることが検出された場合は、コンテキスト・メニュー・オプション「NXSDの編集」が選択可能になります。

  1. 「アプリケーション」ウィンドウで、ネイティブ・フォーマット・スキーマ・ファイル(たとえば、addresses.xsd)を右クリックします。

  2. 「NXSDの編集」を選択します。

ネイティブ・フォーマット・ビルダー・ウィザードの詳細は、『テクノロジ・アダプタの理解』ネイティブ・フォーマット・ビルダー・ウィザードに関する項を参照してください。

A.2.3 Assignアクティビティ

このアクティビティには、変数の内容を別の変数にコピーする操作など、データ操作のメソッドが用意されています。コピー操作により、変数、式、エンドポイントおよびその他の要素の間で情報を転送できます。

図A-2に、BPEL 1.1における「割当て」ダイアログの「コピー・ルール」タブを示します。次の方法のいずれかで、ツリー内のソース・ノードとターゲット・ノードの間のマッピングを作成します。

  • ソース・ノードをターゲット・ノードにドラッグして、ソース・ノードからターゲット・ノードへのBPELコピー・ルールを作成します。このアクションで、ソースとターゲットのタイプを接続する線が作成されます。

  • ソース・ノードを選択してから、ターゲット・ノードを選択し、ダイアログの下部にある表の上の「追加」アイコンをクリックします。その後、マッピングが表に追加され、それらのノード間の接続線がツリー内に描画されます。

コピー・ルールは、ダイアログの下部にある「開始」セクションと「終了」セクションに表示されます。

図A-2 割当ての編集ダイアログの「コピー・ルール」タブ

図A-2の説明が続きます
「図A-2 割当ての編集ダイアログの「コピー・ルール」タブ」の説明

ソース・ノード・セクションの上にある「挿入モードの選択」リストを使用すると、作成する次のコピー・ルールを、ダイアログの下部で選択されているルールの前か後ろに挿入できます。

ターゲット・ノードの上に表示されるアイコンを使用すると、ターゲット・ノードに対して次のタスクを実行できます(左から右の順)。デフォルトでは、センター・キャンバスが開きます。それが閉じている場合は、開いているバーをドラッグし、センター・キャンパスを表示します。

  • 「式」アイコン: このアイコンをターゲット・ノードにドラッグすると、そのノードにXPath式を割り当てるための「式ビルダー」ダイアログが開きます。このアイコンを、センター・キャンバスにドラッグしてこのダイアログを呼び出し、式を指定し、ダイアログを保存して閉じ、アイコンをターゲット・ノードにドラッグすることもできます。

  • 「リテラル」(BPEL 2.0仕様)アイコンまたは「フラグメント」(BPEL 1.1仕様)アイコン: このアイコンをターゲット・ノードにドラッグすると、そのターゲット・ノードにリテラル(BPELプロジェクトがBPEL 2.0仕様をサポートしている場合)またはXMLフラグメント(BPELプロジェクトがBPEL 1.1仕様をサポートしている場合)を割り当てるためのダイアログが開きます。このアイコンを、センター・キャンバスにドラッグしてこのダイアログを呼び出し、値を指定し、ダイアログを保存して閉じ、アイコンをターゲット・ノードにドラッグすることもできます。

  • 「削除」アイコン: このアイコンをターゲット・ノードにドラッグして、bpelx:remove拡張ルールを作成します。このアイコンを、センター・キャンバスにドラッグしてこのダイアログを呼び出し、ルールを指定し、ダイアログを保存して閉じ、アイコンをターゲット・ノードにドラッグすることもできます。

  • 「名前の変更」アイコン: このアイコンをドラッグして、ターゲット・ノードの名前を変更します。こうすると、elementTo属性にbpelx:rename拡張ルールが追加されます。このアイコンを、センター・キャンバスにドラッグしてダイアログを呼び出し、ルールを指定し、ダイアログを保存して閉じ、アイコンをターゲット・ノードにドラッグすることもできます。

  • 「再キャスト」アイコン: このアイコンをドラッグして、ターゲット・ノードを再キャストします。こうすると、typeCastTo属性にbpelx:rename拡張ルールが追加されます。XML出力で、xsi:type属性になります。このアイコンを、センター・キャンバスにドラッグしてダイアログを呼び出し、ルールを指定し、ダイアログを保存して閉じ、アイコンをターゲット・ノードにドラッグすることもできます。

選択したコピー・ルールをbpelx拡張タイプ(bpelx:copyListbpelx:insertAfterbpelx:insertBeforebpelx:append)に変更することもできます。

選択の方法は、BPEL 1.1とBPEL 2.0で異なります。

図A-3に、BPEL 1.1における拡張タイプの選択方法を示します。コピー・ルールを選択して「コピー」ドロップダウン・リストを選択し、適切な拡張を選択します。

図A-3 コピー・ルールをBPEL 1.1のbpelx拡張に変更

図A-3の説明が続きます
「図A-3 コピー・ルールをBPEL 1.1のbpelx拡張に変更」の説明

図A-4に、BPEL 2.0における拡張タイプの選択方法を示します。コピー・ルールを右クリックしてルール・タイプの変更を選択し、適切な拡張を選択します。

図A-4 コピー・ルールをBPEL 2.0のbpelx拡張に変更

図A-4の説明が続きます
「図A-4 コピー・ルールをBPEL 2.0のbpelx拡張に変更」の説明

bpelx拡張によるXMLデータの操作の詳細は、「bpelx拡張要素を使用したXMLデータの操作」を参照してください。

「送信元XPath」「送信先XPath」の各フィールドで、ソース・タイプの左にあるアイコンにカーソルを重ねて、実行する操作(コピー、追加など)を表示することもできます。それぞれの操作が、タイプごとに異なるアイコンで表されます。コピー・ルールを右クリックして、実行するアクションのリストを表示することも可能です。

  • 「'From'式の編集」または「'To'式の編集」: 作成したコピー・ルールにソース・ノードまたはターゲット・ノードへの問合せが含まれるときにXPath式を編集するには、このオプションを選択します。これを選択すると、「式ビルダー」ダイアログが開きます。表示されるメニュー・オプションは、コピー・ルールの現在の選択内容によって異なります。

  • ignoreMissingFromData: コピー・ルールのignoreMissingFromData属性の有効と無効を切り替える場合は、このオプションを選択します。有効にすると、bpel:selectionFailure標準フォルトが抑制されます。詳細は、「ignoreMissingFromData属性」を参照してください。

  • insertMissingToData: コピー・ルールのinsertMissingToData属性の有効と無効を切り替える場合は、このオプションを選択します。詳細は、「insertMissingToData属性」を参照してください。

  • keepSrcElementName (BPEL 2.0プロジェクトでのみ): コピー・ルールのkeepSrcElementName属性の有効と無効を切り替える場合は、このオプションを選択します。このオプションを使用すると、ターゲットの要素名(to-specで指定される)を、ソースの要素名で置き換えることができます。

  • ルール・タイプの変更 (BPEL 2.0プロジェクトでのみ): 選択したルールのタイプを、BPEL拡張ルールであるbpelx:copyListbpelx:insertAfterbpelx:insertBeforebpelx:appendのいずれかに変更する場合は、このオプションを選択します。

  • 「ルールの削除」: 選択したルールを削除する場合は、このオプションを選択します。

ignoreMissingFromDatainsertMissingToDatakeepSrcElementNameの各属性の詳細は、「assign拡張要素の属性の使用方法」を参照してください。

「終了」セクションの上にあるアイコンを使用すると、選択したコピー・ルールの追加、削除および上下への移動が可能です。

assignアクティビティの詳細は、「コピー・ルール」ダイアログのオンライン・ヘルプおよび「BPELプロセスでのXMLデータの操作」を参照してください。

ノート:

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

A.2.4 Assertアクティビティ

このアクティビティを使用すると、指定した式に対してアサーションを実行できます。

これは、アサーションを指定するスタンドアロンのアクティビティです。このアクティビティは、BPELプロセス・フロー内のすべての場所に配置できます。invokeアクティビティ、replyアクティビティ、receiveアクティビティおよびpickアクティビティとscopeアクティビティのonMessageブランチで、「アサーション」タブからメッセージ交換アクティビティのアサーションを指定することもできます。

図A-5は、「アサート」ダイアログを示しています。

図A-5 「Assert」ダイアログ

図A-5の説明が続きます
「図A-5 「Assert」ダイアログ」の説明

スタンドアロンのassertアクティビティの詳細は、「スタンドアロンassertアクティビティでのアサーション条件」および「アサーション条件作成時の処理内容」を参照してください。

A.2.5 Bind Entityアクティビティ

このアクティビティを使用すると、エンティティ変数を選択できます。エンティティ変数は、様々なデータ・プロバイダ・サービス・テクノロジにアクセスし、プラグインするためのデータ・ハンドルとして機能します。

エンティティ変数は、サービス・データ・オブジェクト(SDO)ベースのデータを使用して、Oracle Application Development Framework (ADF) Business Componentデータ・プロバイダ・サービスと一緒に使用できます。エンティティ変数を使用すると、基礎となるデータ・プロバイダ・サービスがBPELデータ操作を実行するように指定できます。データ・プロバイダ・サービスはデータ・ストア内でデータ操作をバックグラウンドで実行しますが、Oracle BPEL Process Manager提供の他のデータ・ストア関連の機能(たとえば、データベース・アダプタ)を使用しません。この操作により、Oracle BPEL Process Managerの実行時パフォーマンスを高め、コンパイルおよび実行時に、基礎となるデータ・プロバイダ・サービスのネイティブの機能を組み込みます。

図A-6は、「Bind Entity」ダイアログを示しています。

図A-6 「Bind Entity」ダイアログ

図A-6の説明が続きます
「図A-6 「Bind Entity」ダイアログ」の説明

A.2.6 Callアクティビティ

このアクティビティにより、BPEL 2.0でスタンドアロン・サブプロセスおよびインライン・サブプロセス内の参照サブプロセス・コードを実行できます。サブプロセスは、別個のプロセスが特定のプロセッサ内で再利用できるBPELコードのフラグメントです。

図A-7は、コールの編集ダイアログを示しています。

図A-7 コールの編集ダイアログ

図A-7の説明が続きます
「図A-7 コールの編集ダイアログ」の説明

callアクティビティの詳細は、「スタンドアロンおよびインラインBPELサブプロセスの起動の概要」および「BPELプロセスでのスタンドアロンおよびインラインBPELサブプロセスの作成」を参照してください。

A.2.7 Compensateアクティビティ

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

図A-8は、BPEL 1.1における「Compensate」ダイアログを示しています。次のタスクを実行できます。

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

  • 補正ハンドラを起動するscopeアクティビティを選択します。

図A-8 「Compensate」ダイアログ

図A-8の説明が続きます
「図A-8 「Compensate」ダイアログ」の説明

BPEL 2.0の場合、「Compensate」ダイアログには「ドキュメント」タブがあります。

compensateアクティビティの詳細は、「一連の操作を元に戻した後の補正の使用」を参照してください。

A.2.8 CompensateScopeアクティビティ

このアクティビティを使用すると、正常に完了している特定の内側のscopeに対して補正を開始できます。このアクティビティは、フォルト・ハンドラ、別の補正ハンドラまたは終了ハンドラ内からのみ使用します。

ノート:

このアクティビティは、BPEL 2.0プロジェクトでのみサポートされます。

図A-9は、「CompensateScope」ダイアログを示しています。

図A-9 「CompensateScope」ダイアログ

図A-9の説明が続きます
「図A-9 「CompensateScope」ダイアログ」の説明

compensateScopeアクティビティの詳細は、「一連の操作を元に戻した後の補正の使用」を参照してください。

A.2.9 Create Entityアクティビティ

このアクティビティを使用すると、エンティティ変数を作成できます。エンティティ変数は、SDOベースのデータを使用して、Oracle ADF Business Componentデータ・プロバイダ・サービスと一緒に使用できます。

図A-10は、「Create Entity」ダイアログを示しています。

図A-10 「Create Entity」ダイアログ

図A-10の説明が続きます
「図A-10 「Create Entity」ダイアログ」の説明

詳細は、「データ・プロバイダ・サービスへのXMLデータ操作の委任」を参照してください。

A.2.10 Dehydrateアクティビティ

デフォルトでは、receive、onMessage、onAlarm、waitなどのアクティビティにデハイドレーション・ポイントが設定されています。dehydrateアクティビティを使用すると、デハイドレーション・ポイントを明示的に指定できます。このアクティビティは、非同期コールバックの待機中、長期間にわたる非同期プロセスとその現在の状態の情報をデータベースに自動的に保持するためのデハイドレーション・ポイントとして機能します。データベースにプロセスを格納することにより、プロセスを維持し、システムの停止やネットワークの問題が発生した場合の状態や信頼性の低下を防ぎます。この機能により、BPELプロセスの信頼性とスケーラビリティの両方が向上します。

bpelx:dehydrate拡張は、デハイドレーションを実装します。BPELバージョン1.1をサポートするBPELの場合、構文は次のようになります。

<bpelx:dehydrate name="DehydrateInstance"/>

BPELバージョン2.0をサポートするBPELの場合、構文は次の例のようになります。

<extensionActivity>
      <bpelx:dehydrate name="DehydrateInstance"/>
 </extensionActivity>

図A-11は、BPEL 2.0における「Dehydrate」ダイアログを示しています。

図A-11 「Dehydrate」ダイアログ

図A-11の説明が続きます
「図A-11 「Dehydrate」ダイアログ」の説明

A.2.11 Dynamic Partner Linkアクティビティ

このアクティビティを使用して、BPELバージョン1.1で実行時に使用するパートナ・リンクへのエンドポイント参照を動的に割り当てることができます。

図A-12は、BPEL 1.1の「動的パートナ・リンク」ダイアログを示しています。

図A-12 「動的パートナ・リンク」ダイアログ

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

詳細は、「実行時に使用するための動的パートナ・リンクの設計時の作成」を参照してください。

A.2.12 Emailアクティビティ

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

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

図A-13は、BPEL 2.0での「電子メール」ダイアログを示しています。

図A-13 「電子メール」ダイアログ

図A-13の説明が続きます
「図A-13 「電子メール」ダイアログ」の説明

emailアクティビティの詳細は、「電子メール通知チャネルの構成方法」を参照してください。

A.2.13 Emptyアクティビティ

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

図A-14は、BPEL 2.0の「Empty」ダイアログを示しています。

図A-14 「Empty」ダイアログ

図A-14の説明が続きます
「図A-14 「Empty」ダイアログ」の説明

emptyアクティビティの詳細は、「emptyアクティビティによる操作なしの命令のビジネス・プロセスへの挿入方法」を参照してください。

A.2.14 Exitアクティビティ

このアクティビティを使用すると、終了ハンドラ、フォルト・ハンドラ、補正ハンドラのメカニズムを利用せずに、すべてのパラレル・ブランチで現在実行されているすべてのアクティビティを即時終了できます。

ノート:

BPEL 2.0プロジェクトでは、このアクティビティのかわりにterminateアクティビティが使用されます。

図A-15は、「終了」ダイアログを示しています。

図A-15 「終了」ダイアログ

図A-15の説明が続きます
「図A-15 「終了」ダイアログ」の説明

exitアクティビティの詳細は、「BPEL 2.0のexitアクティビティによるビジネス・プロセス・インスタンスの即時終了」を参照してください。

A.2.15 Flowアクティビティ

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

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

図A-16に、パラレル処理用の2つのパネルを持つ初期flowアクティビティを示します。アクティビティを両方のパネルにドラッグしてパラレル処理を作成します。完了したflowアクティビティは図A-17のようになります。

図A-16 「フロー」ダイアログ(作成時)

図A-16の説明が続きます
「図A-16 「フロー」ダイアログ(作成時)」の説明

図A-17 「フロー」ダイアログ(設計完了後)

図A-17の説明が続きます
「図A-17 「フロー」ダイアログ(設計完了後)」の説明

flowアクティビティ内で、アクティビティの実行を同期することもできます。こうすると、特定のアクティビティを他のアクティビティの完了後にのみ実行することができます。

ノート:

OracleのBPEL実装では、個別のスレッドではなく、BPELプロセスの同一で単一の実行スレッドでフローが実行されます。

flowアクティビティの詳細は、「パラレル・フローの作成」を参照してください。

A.2.16 FlowNアクティビティ

このアクティビティを使用すると、Nの値に等しい複数のフローを作成できます。この値は、使用可能なデータおよびプロセス内のロジックに基づいて実行時に定義されます。索引変数は、Nの値に到達するまで、新しいブランチが作成されるたびに増分されます。

ノート:

このアクティビティは、BPEL 2.0プロジェクトではforEachアクティビティに置き換えられます。

図A-18は、FlowNダイアログを示しています。

図A-18 FlowNダイアログ

図A-18の説明が続きます
「図A-18 FlowNダイアログ」の説明

flowNアクティビティの詳細は、「BPEL 1.1のflowNアクティビティによるflowアクティビティ数のカスタマイズ」を参照してください。

A.2.17 forEachアクティビティ

このアクティビティを使用すると、アクティビティの複数のセットを順次、または並行して処理できます。forEachアクティビティは、それに含まれている(子)scopeアクティビティを正確にN+1回実行し、Nは、最終カウンタ値から、「For Each」ダイアログの「カウンタの値」タブで指定する開始カウンタ値を引いた値に等しくなります。flowアクティビティなど、他の構造化アクティビティは、含まれているアクティビティとして任意のタイプのアクティビティを使用できますが、forEachアクティビティにはscopeアクティビティのみ使用することができます。

ノート:

BPEL 2.0プロジェクトでは、このアクティビティのかわりにflowNアクティビティが使用されます。

図A-19に、内部のscopeを伴うforEachアクティビティを示します。

図A-19 forEachアクティビティ

図A-19の説明が続きます
「図A-19 forEachアクティビティ」の説明

forEachアクティビティの詳細は、「BPEL 2.0のforEachアクティビティによるアクティビティの複数のセットの処理」を参照してください。

A.2.18 Ifアクティビティ

このアクティビティを使用すると、特定のアクティビティが複数のブランチから処理を判定する条件処理を定義できます。ブランチのセットから、実行するアクティビティが1つだけ選択されます。

ノート:

BPEL 2.0プロジェクトでは、このアクティビティのかわりにswitchアクティビティが使用されます。

図A-20に、ifアクティビティと、後続のif、elseif、elseブランチが定義されている例を示します。

図A-20 ifアクティビティ

図A-20の説明が続きます
「図A-20 ifアクティビティ」の説明

ifアクティビティの詳細は、「BPEL 2.0のifアクティビティの作成による条件分岐の定義」を参照してください。

A.2.19 IMアクティビティ

このアクティビティを使用すると、非同期のインスタント・メッセージ(IM)通知をユーザー、グループまたは宛先アドレスに自動的に送信できます。図A-21は、「IM」ダイアログを示しています。

図A-21 「IM」ダイアログ

図A-21の説明が続きます
「図A-21 「IM」ダイアログ」の説明

詳細は、「IM通知チャネルの構成方法」を参照してください。

A.2.20 Invokeアクティビティ

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

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

図A-22は、BPEL 2.0における「起動」ダイアログを示しています。次のタスクを実行できます。

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

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

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

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

図A-22 「起動」ダイアログ

図A-22の説明が続きます
「図A-22 「起動」ダイアログ」の説明

invokeアクティビティの詳細は、次を参照してください。

A.2.21 Java Embeddingアクティビティ

このアクティビティによって、Java BPELの拡張要素であるbpelx:execを使用してBPELプロセスにカスタムJavaコードを追加できます。この方法は、関数を実行できるJavaコードが存在していて、最初からコーディングしなおすのではなくこの既存のコードを使用する場合に役立ちます。BPEL 2.0プロジェクトでは、bpelx:exec拡張要素とJavaコードが<extensionActivity>要素でラップされます。

図A-23は、BPEL 2.0でのJava Embeddingの編集ダイアログを示しています。

図A-23 Java Embeddingの編集ダイアログ

図A-23の説明が続きます
「図A-23 Java Embeddingの編集ダイアログ」の説明

Java Embeddingアクティビティの詳細は、「BPELプロセスへのJavaおよびJava EEコードの組込み」を参照してください。

A.2.22 Partner Linkアクティビティ

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

図A-24は、BPEL 2.0における「パートナ・リンク」ダイアログを示しています。次の詳細を指定します。

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

  • 外部サービスのWeb Services Description Language (WSDL)ファイル。

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

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

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

図A-24 Partner Linkアクティビティ

図A-24の説明が続きます
「図A-24 Partner Linkアクティビティ」の説明

パートナ・リンクの詳細は、「BPELプロセスからの非同期Webサービスの起動」を参照してください。

A.2.23 Phaseアクティビティ

このアクティビティは、BPELプロセスと統合するためのOracle Mediatorおよびビジネス・ルール・サービス・コンポーネントを作成します。メッセージ・リクエストの入力変数およびメッセージ・レスポンスの出力変数を作成し、BPELプロセスの変数のコンテンツを評価するビジネス・ルールを設計します。

これらのタスクを完了すると、次のアクティビティとサービス・コンポーネントが作成されます。

  • assignアクティビティ: メッセージ・リクエストの入力変数およびメッセージ・レスポンスの出力変数が含まれます。

  • invokeアクティビティ: BPELプロセスでOracle Mediatorパートナ・リンクを起動するように自動的に設計されます。

  • Oracle Mediatorパートナ・リンク: メッセージ・リクエストの入力変数を、このBPELプロセスが含まれるSOAコンポジット・アプリケーションのビジネス・ルール・サービス・コンポーネントにルーティングするように自動的に設計されます。ビジネス・ルール・サービス・コンポーネントはSOAコンポジット・エディタに表示されます。Oracle Mediatorもサービス・コンポーネントとしてSOAコンポジット・エディタに表示されます。

  • ビジネス・ルール・サービス・コンポーネント: メッセージ・リクエストの入力変数のコンテンツを評価し、メッセージ・レスポンスの出力変数の結果をOracle Mediatorに戻します。Oracle Mediatorはルーティングを決定し、メッセージを適切なターゲット宛先にルーティングします。

図A-25は、BPEL 2.0での「フェーズ」ダイアログを示しています。

図A-25 「フェーズ」ダイアログ

図A-25の説明が続きます
「図A-25 「フェーズ」ダイアログ」の説明

詳細は、「動的ビジネス・プロセスの作成」を参照してください。

A.2.24 Pickアクティビティ

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

pickアクティビティには、OnMessageブランチがあります。BPEL 2.0で「onMessage」アイコンをクリックすると、図A-26に示すダイアログが表示されます。

図A-26 「onMessage」ダイアログ

図A-26の説明が続きます
「図A-26 「onMessage」ダイアログ」の説明

pickアクティビティの2つのブランチは次のとおりです。

  • OnMessage (pickアクティビティ・アイコンの下に自動的に表示されます)

    (融資サービスなどから)リプライを受信するためのコードが含まれています。

  • OnAlarm (自動的には表示されません。pickアクティビティ・アイコンを選択して「OnAlarmの追加」アイコンをクリックし、手動で追加する必要があります)

    タイムアウト(1分後など)のコードが含まれています。

先に完了したブランチが実行されます。もう一方のブランチは実行されません。最初に条件が満たされたブランチが実行されます。

図A-27は、BPEL 2.0でのpickアクティビティの「OnAlarm」ダイアログを示しています。

図A-27 PickアクティビティのOnAlarmブランチ・ダイアログ

図A-27の説明が続きます
「図A-27 PickアクティビティのOnAlarmブランチ・ダイアログ」の説明

ノート:

BPEL 1.1のscopeアクティビティにおけるOnMessageブランチと、BPEL 1.1および2.0のscopeアクティビティにおけるOnAlarmブランチも作成できます。Oracle JDeveloperscopeアクティビティを開き、左側でアイコンを参照して追加するブランチを検索します。

onMessageブランチに相関を追加する場合は、相関構文がassignアクティビティの構文の後ろに配置されます。相関構文をassignアクティビティの前に移動する必要があります。

A.2.24.1 assignアクティビティの前に相関構文を配置するには:
  1. Oracle JDeveloperで相関セットを作成します。

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

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

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

pickアクティビティの詳細は、次を参照してください。

A.2.25 Receiveアクティビティ

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

図A-28は、BPEL 2.0における「Receive」ダイアログを示しています。次のタスクを実行できます。

  • 意味のある名前を付けます。

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

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

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

図A-28 「Receive」ダイアログ

図A-28の説明が続きます
「図A-28 「Receive」ダイアログ」の説明

receiveアクティビティの詳細は、次を参照してください。

A.2.26 Receive Signalアクティビティ

このアクティビティは、詳細プロセスではマスター・プロセスからの処理開始の通知シグナルを待機するために使用し、マスター・プロセスではすべての詳細プロセスからの処理の完了を示す通知シグナルを待機するために使用します。

図A-29は、シグナル受信の編集ダイアログを示しています。

図A-29 「シグナルの受信」ダイアログ

図A-29の説明が続きます
「図A-29 「シグナルの受信」ダイアログ」の説明

詳細は、「マスター・プロセスと詳細プロセスの調整」を参照してください。

A.2.27 Remove Entityアクティビティ

このアクティビティを使用すると、エンティティ変数を削除できます。このアクションによって行が削除されます。

図A-30は、「Remove Entity」ダイアログを示しています。

図A-30 エンティティの削除ダイアログ

図A-30の説明が続きます
「図A-30 エンティティの削除ダイアログ」の説明

A.2.28 RepeatUntilアクティビティ

アクティビティの本体を1回以上実行する必要がある場合には、このアクティビティを使用します。repeatUntilアクティビティのXPath式の条件は、アクティビティの本文が完了した後に評価されます。条件は、指定したブール条件がtrueになるまで繰返し評価されます(アクティビティの本体も処理されます)。図A-31は、「繰返し期限」ダイアログを示しています。

ノート:

このアクティビティは、BPEL 2.0プロジェクトでのみサポートされます。

図A-31 「繰返し期限」ダイアログ

図A-31の説明が続きます
「図A-31 「繰返し期限」ダイアログ」の説明

repeatUntilアクティビティの詳細は、「repeatUntilアクティビティによる条件分岐の定義」を参照してください。

A.2.29 Replayアクティビティ

このアクティビティを使用すると、選択した範囲内でアクティビティを再実行することができます。

図A-32は、BPEL 2.0での「再実行」ダイアログを示しています。

図A-32 「再実行」ダイアログ

図A-32の説明が続きます
「図A-32 「再実行」ダイアログ」の説明

replayアクティビティの詳細は、「replayアクティビティによるscopeアクティビティ内でのアクティビティの再実行」を参照してください。

A.2.30 Replyアクティビティ

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

図A-33は、BPEL 2.0での「Reply」ダイアログを示しています。

図A-33 「Reply」ダイアログ

図A-33の説明が続きます
「図A-33 「Reply」ダイアログ」の説明

replyアクティビティの詳細は、次を参照してください。

A.2.31 Rethrowアクティビティ

このアクティビティを使用すると、直接囲んでいるフォルト・ハンドラによって当初取得されたフォルトを再スローできます。

ノート:

このアクティビティは、BPEL 2.0プロジェクトでのみサポートされます。

図A-34に、フォルト・ハンドラ(catchアクティビティ)内部のrethrowアクティビティを示します。

図A-34 Rethrowアクティビティ

図A-34の説明が続きます
「図A-34 Rethrowアクティビティ」の説明

フォルトの再スローの詳細は、「rethrowアクティビティによるフォルトの再スロー」を参照してください。

A.2.32 Schedule Job

このアクティビティを使用して、BPELプロセス内でOracle Enterprise Schedulerジョブをスケジュールできます。図A-35は、「ジョブのスケジュール」ダイアログを示しています。

図A-35 「ジョブのスケジュール」ダイアログ

図A-35の説明が続きます
「図A-35 「ジョブのスケジュール」ダイアログ」の説明

詳細は、「BPELプロセスにおけるOracle Enterprise Schedulerジョブの起動」を参照してください。

A.2.33 Scopeアクティビティ

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

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

図A-36は、BPEL 2.0での「Scope」ダイアログを示しています。scopeアクティビティ内に適切なアクティビティを定義します。

図A-36 「Scope」ダイアログ

図A-36の説明が続きます
「図A-36 「Scope」ダイアログ」の説明

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

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

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

図A-37 Catchブランチの作成

図A-37の説明が続きます
「図A-37 Catchブランチの作成」の説明

図A-38 Catchアクティビティ・アイコン

図A-38の説明が続きます
「図A-38 Catchアクティビティ・アイコン」の説明

scopeアクティビティおよびフォルト処理の詳細は、次を参照してください。

A.2.34 Sequenceアクティビティ

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

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

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

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

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

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

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

図A-39 sequenceアクティビティ

図A-39の説明が続きます
「図A-39 sequenceアクティビティ」の説明

sequenceアクティビティの詳細は、次を参照してください。

A.2.35 Signalアクティビティ

このアクティビティは、マスター・プロセスでは実行時に処理を実行するように詳細プロセスに通知するために使用し、詳細プロセスでは処理が完了したことをマスター・プロセスに通知するために使用します。図A-40は、シグナルの編集ダイアログを示しています。

図A-40 「シグナル」ダイアログ

図A-40の説明が続きます
「図A-40 「シグナル」ダイアログ」の説明

詳細は、「マスター・プロセスと詳細プロセスの調整」を参照してください。

A.2.36 SMSアクティビティ

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

図A-41は、BPEL 2.0における「SMS」ダイアログを示しています。

図A-41 「SMS」ダイアログ

図A-41の説明が続きます
「図A-41 「SMS」ダイアログ」の説明

SMSアクティビティの詳細は、「SMS通知チャネルの構成方法」を参照してください。

A.2.37 Switchアクティビティ

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

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

ノート:

このアクティビティは、BPEL 2.0プロジェクトではifアクティビティに置き換えられます。

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

図A-42 Switchアクティビティ

図A-42の説明が続きます
「図A-42 Switchアクティビティ」の説明

switchアクティビティの詳細は、次を参照してください。

A.2.38 Terminateアクティビティ

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

ノート:

  • terminateアクティビティは、BPEL 2.0プロジェクトではexitアクティビティに置き換えられます。

  • タイムアウトになる可能性があるため、同期BPELプロセスでterminateアクティビティを使用しないでください。

図A-43に、switchアクティビティのotherwiseブランチにある複数のterminateアクティビティを示します。

図A-43 Terminateアクティビティ

図A-43の説明が続きます
「図A-43 Terminateアクティビティ」の説明

terminateアクティビティの詳細は、「BPEL 1.1のterminateアクティビティによるビジネス・プロセス・インスタンスの停止」を参照してください。

A.2.39 Throwアクティビティ

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

図A-44は、BPEL 2.0の「Throw」ダイアログを示しています。

図A-44 「Throw」ダイアログ

図A-44の説明が続きます
「図A-44 「Throw」ダイアログ」の説明

throwアクティビティの詳細は、「throwアクティビティによる内部フォルトのスロー」を参照してください。

A.2.40 Translateアクティビティ

このアクティビティを使用して、インバウンド変換(doTranslateFromNative関数を自動的に使用)、またはアウトバウンド変換(doTranslateToNative関数を自動的に使用)を構成できます。

  • インバウンド変換には、ネイティブ・フォーマットからXMLへの変換、および不透明型からXMLへの変換があります。

  • アウトバウンド変換には、XMLからネイティブ・フォーマットへの変換、および大きなXMLからディレクトリ内の添付への変換があります。

このアクティビティは、BPEL 1.1と2.0の両方でサポートされます。図A-45は、「変換」ダイアログを示しています。

図A-45 「変換」ダイアログ

図A-45の説明が続きます
「図A-45 「変換」ダイアログ」の説明

詳細は、「ネイティブ・データとXMLとの間における変換」を参照してください。

A.2.41 User Notificationアクティビティ

このアクティビティを使用すると、設計時に通知チャネルを明示的に選択せずに、通知を送信する必要性のみを示すBPELプロセスを設計できます。通知の送信に使用するチャネルは、Oracle User Messaging Serviceのユーザー・メッセージング・プリファレンス・ユーザー・インタフェースでエンド・ユーザーが定義したプリファレンスに基づいて、実行時に決定されます。したがって、通知チャネルの選択権は、Oracle BPELデザイナからエンド・ユーザーに移動します。エンド・ユーザーが優先チャネルまたはルールを選択していない場合、そのユーザーへの通知の送信には、デフォルトで電子メールが使用されます。図A-46に詳細を示します。

図A-46 「ユーザー通知」ダイアログ

図A-46の説明が続きます
「図A-46 「ユーザー通知」ダイアログ」の説明

ユーザー通知の詳細は、「エンド・ユーザーによる通知チャネル選択の許可」を参照してください。

Oracle User Messaging Serviceの詳細は、『Oracle User Messaging Serviceの管理』および『Oracle User Messaging Serviceによるアプリケーションの開発』を参照してください。

A.2.42 Validateアクティビティ

このアクティビティを使用すると、リストの変数を検証できます。変数は、XMLスキーマと照合して検証されます。

図A-47は、BPEL 2.0での「検証」ダイアログを示しています。

図A-47 「検証」ダイアログ

図A-47の説明が続きます
「図A-47 「検証」ダイアログ」の説明

validateアクティビティの詳細は、「XMLデータの検証」を参照してください。

A.2.43 Waitアクティビティ

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

図A-48は、BPEL 2.0でのWaitダイアログを示しています。

図A-48 Waitダイアログ

図A-48の説明が続きます
「図A-48 Waitダイアログ」の説明

waitアクティビティの詳細は、「waitアクティビティによる有効期限の設定」を参照してください。

A.2.44 Whileアクティビティ

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

図A-49は、BPEL 2.0でのWhileダイアログを示しています。このダイアログで式を入力できます。

図A-49 Whileダイアログ

図A-49の説明が続きます
「図A-49 Whileダイアログ」の説明

whileアクティビティの詳細は、「whileアクティビティによる条件分岐の定義」を参照してください。

A.2.45 XQuery Transformアクティビティ

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

図A-50は、BPEL 2.0でのXQueryダイアログを示しています。このダイアログでは、次のタスクを実行できます。

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

  • XQueryマッパー・ファイルを指定します。

  • 「マッパー・ファイル」フィールドの右側にある2番目のアイコン(「追加」アイコン)をクリックして、XQueryマッパーにアクセスします。XQueryマッパーで、新規のXQueryファイルを作成し、ソース要素とターゲット要素をグラフィカルにマッピングします。既存のXQueryファイルを編集する場合は、「編集」アイコン(3番目のアイコン)をクリックします。

図A-50 XQueryダイアログ

図A-50の説明が続きます
「図A-50 XQueryダイアログ」の説明

詳細は、「XQueryマッパーを使用したトランスフォーメーションの作成」を参照してください。

A.2.46 XSLT Transformアクティビティ

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

図A-51は、BPEL 2.0でのTransformダイアログを示しています。このダイアログでは、次のタスクを実行できます。

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

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

  • 「マッパー・ファイル」フィールドの右側にある2番目のアイコン(「追加」アイコン)をクリックして、XSLTマップ・エディタにアクセスして、新規のXSLファイルを作成し、ソース要素とターゲット要素をグラフィカルにマッピングします。既存のXSLファイルを編集する場合は、「編集」アイコン(3番目のアイコン)をクリックします。

図A-51 Transformダイアログ

図A-51の説明が続きます
「図A-51 Transformダイアログ」の説明

transformアクティビティの詳細は、「XSLTマップ・エディタを使用したトランスフォーメーションの作成」を参照してください。

A.3 BPELサービスの概要

BPELプロセスは、SOAP Webサービス、Oracle ADFのビジネス・コンポーネント(BC)サービス、JCAアダプタ、Oracle B2Bサービス、Oracle Healthcareサービス、Oracle Business Activity Monitoring 11g、HTTPバインディング、直接バインディング、EJBサービス、RESTアダプタ、Oracle E-Business Suite、JDE World、SAP、クラウド・アダプタおよびパートナ・リンクを介してWebベースのアプリケーションおよびクライアントと通信できます。

BPELサービスにアクセスするには:

  1. Oracle BPELデザイナの「コンポーネント」ウィンドウで、「BPELサービス」を展開してサービスを表示します。
  2. サービスを適切なスイムレーンにドラッグ・アンド・ドロップします。表A-2に使用可能なサービスをリストし、これらのサービスについて説明されているドキュメントを参照先として示します。

    表A-2 BPELサービス

    BPELサービス 詳細の参照先

    ADF-BCサービス

    「ADF-BCサービス」

    AQアダプタ

    Oracle B2B

    Oracle Business Activity Monitoring (BAM) 11g

    Coherenceキャッシュ

    データベース・アダプタ

    直接バインディング・サービス

    Oracle E-Business Suiteアダプタ

    EJBサービス

    ファイル・アダプタ

    FTPアダプタ

    Healthcareアダプタ

    HTTPバインディング

    「HTTPバインディング・サービス」

    JDE Worldアダプタ

    http://www.oracle.com/technetwork/middleware/adapters/documentation/index.html

    JMSアダプタ

    LDAP

    Oracle MFT

    MQアダプタ

    RESTサービス

    REST操作とSOAコンポジット・アプリケーションとの統合

    クラウド・アダプタ

    「クラウド・アダプタ」

    SAPアダプタ

    http://www.oracle.com/technetwork/middleware/adapters/documentation/index.html

    SOAP

    ソケット・アダプタ

    サードパーティ・アダプタ

    Oracle User Messaging Service。