39 Oracle SOA Suiteテンプレートおよび再利用可能なサブプロセス
この章の内容は次のとおりです。
39.1 Oracle SOA Suiteテンプレートの概要
テンプレートとは、Oracle SOA Suiteプロジェクトの再利用可能な部分で、新規プロジェクトの作成に使用できます。表39-1に示すように、テンプレートには3種類あります。
表39-1 テンプレート・タイプ
テンプレート・タイプ | 説明 |
---|---|
SOAプロジェクト |
SOAプロジェクトがすべてパッケージされ、新規プロジェクトの開始に使用されます。このテンプレートを使用して、新規SOAコンポジット・アプリケーションを作成できます。 |
サービス・コンポーネント |
BPEL 2.0プロセス(センサーを含む)など、他のプロジェクトへのインポート用にパッケージされたサービス・コンポーネントです。すべての依存コンポーネントおよび接続もパッケージされます。SOAコンポジット・アプリケーションの「コンポーネント」ウィンドウに、カスタム・サービス・コンポーネントとして表示されます。 |
カスタムBPELスコープ・アクティビティ |
「コンポーネント」ウィンドウでカスタム・アクティビティとしてパッケージされ、他のBPELプロジェクトにインポートできる、BPELプロセスのスコープ・アクティビティです。このカスタム・アクティビティは、「コンポーネント」ウィンドウのBPELアクティビティ・パレットに表示できる可能性があります。 |
Oracle SOA Suiteテンプレートには、次の利点があります。
-
アプリケーション、コンポジットおよびプロセス間で共通のコード(プロセスまたはスコープのサブパート)を共有します。一度作成すれば、他と共有できます。テンプレートは、何度も再使用できます。
-
Oracle Metadata Servicesリポジトリ(MDSリポジトリ)からテンプレートを保存および再使用します。
-
消費時にすべて編集できます。
-
Oracle JDeveloperでテンプレートを自動的に検出します。テンプレートは保存されると、「コンポーネント」ウィンドウに表示されます。
-
継承はありません。つまり、将来的にソース・テンプレートを変更しても、アプリケーションには表示されません。ソース・テンプレートを変更しても、テンプレートの現在のユーザーには変更されたことがわかりません。
-
コンポーネント・スコープ・テンプレートにカスタム・アイコンが用意されます。
-
テンプレートのバージョニングはありません。バージョン間の区別をするには、テンプレート名でバージョン番号を指定します。
-
BPELバージョン1.1および2.0の両方のテンプレートをサポートします。
特定のテンプレートに対する変更は、以前にそのテンプレートを使用して作成されたプロジェクトには伝播されません。この機能は、レイヤー・カスタマイズで実現できます。
新しい注釈がコンポジット/BPELプロセスに追加され、テンプレートのリレーションシップが識別されます。
テンプレート使用の詳細は、「SOAプロジェクト・テンプレートの作成および使用」、「サービス・コンポーネント・テンプレートの作成および使用」および「BPELスコープ・アクティビティ・テンプレートの作成および使用」を参照してください。
39.2 スタンドアロンおよびインラインBPELサブプロセスの起動の概要
BPELでは、ビジネス・プロセス・ロジックを再利用可能にするモジュール化を制限付きでサポートします。ただ1つの方法は、再利用可能なプロセス・ロジックを完全に独立したプロセスとしてパッケージ化することで、このプロセスを、(起動アクティビティを介して)Webサービスで使用するのと同一のメソッドの親プロセス(再利用可能なプロセス・ロジックを使用するプロセス)で使用します。
この問題に対応するため、Oracle SOA Suiteでは、BPELにサブプロセスの拡張機能を提供しています。サブプロセスは、別個のプロセスが特定のプロセッサ内で再利用できるBPELコードのフラグメントです。このサブプロセス拡張機能には、次の利点があります。
-
BPELプロセス・コードを再使用できることで、同じタスクを実行するために、同じアクティビティを何度も作成する必要がなくなります。
-
コードのモジュール性。
-
コードのメンテナンス(変更内容の伝播により、変更が必要になるたびに複数の場所に更新を実装する必要がなくなります)。
-
起動アクティビティよりオーバーヘッドが減少します。
-
メモリー・フットプリントが減少します。メモリー・フットプリントは、複雑なプロセスでは大量となる場合があります。
ノート:
-
サブプロセスは、BPELバージョン2.0でのみサポートされます。BPELバージョン1.1ではサポートされません。
-
相関セットは、サブプロセスではサポートされません。インラインまたはスタンドアロン・サブプロセスで相関セットを作成すると、実行時に失敗します。
-
サブプロセスを複数のコンポジットで共有することはできません。
-
「監視」ビューは、サブプロセス内ではサポートされていません。「監視」ビューは、Oracle BPELデザイナ上部の「監視ビューに変更」アイコンを選択することで、BPELプロセスからアクセスできます。
表39-2に示すように、Oracle SOA Suiteでは2種類のサブプロセスをサポートします。
表39-2 サブプロセス・タイプ
スタンドアロン・サブプロセス | インライン・サブプロセス |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
該当なし。 |
|
スタンドアロン・サブプロセスの作成の詳細は、「スタンドアロンBPELサブプロセスの作成方法」を参照してください。 |
インライン・サブプロセスの作成の詳細は、「インライン・サブプロセスの作成方法」を参照してください。 |
39.2.1 スタンドアロン・サブプロセスの概要
スタンドアロン・サブプロセスは、次の例に示すように、拡張子が.sbpel
(サブプロセスBPEL拡張子)のファイルで定義されます。
<!-- A subprocess is defined in a SBPEL file, containing a bpelx:subProcess ! document ! The bpelx:subProcess is similar to a standard bpel:process, with ! differences asnoted below. --> <bpelx:subProcess name="NCName" targetNamespace="anyURI" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" ...> <!-- Partner links and variables serve as sub-process arguments --> <partnerLinks>? <partnerLink name="NCName" partnerLinkType="QName" myRole="NCName"? partnerRole="NCName"? bpelx:argumentRequired=["yes"|"no"]? /> <partnerLinks> <variables>? <variable name="BPELVariableName" messageType="QName"? type="QName"? element="QName"? bpelx:argumentRequired=["yes"|"no"]?> from-spec? </variable> </variables> <!-- Standard process definition here, except no <receive> or <pick> with --> <!-- createInstance="yes" --> /activity/ </bpelx:subProcess>
<subProcess>
要素は、WS-BPEL 2.0言語の拡張機能です。<subProcess>
要素は、サブプロセス定義のルート要素です。この要素のネームスペースは次のとおりです。
http://schemas.oracle.com/bpel/extension
Web Services Business Process Execution Language Specification Version 2.0の第10.9項に指定されているとおり、<subProcess>
アクティビティは<extensionActivity>
に埋め込まれている必要があります
次のWS-BPELターゲット・ネームスペースで定義されているように、サブプロセスのタイプはtProcess
です。
http://docs.oasis-open.org/wsbpel/2.0/process/executable
これは、次の点でtProcess
とは異なります。
-
<subProcess>
要素直下の変数およびパートナ・リンクは、サブプロセスの引数として機能します。属性argumentRequired
をyes
(デフォルト値はno
)に設定することにより、必要な引数にマークが付きます。サブプロセスに必要な引数は、コール元が渡す必要がある引数の最小セットです。 -
インライン
from-spec
イニシャライザで定義される変数は、デフォルト値を持つオプションの引数として機能します。コール元がこの引数を渡すと、コール元が引数に指定した値がデフォルト値をオーバーライドします。 -
値を設定する前に変数が参照された場合、必要な引数でないと、検証でエラーがレポートされます。
-
サブプロセスの最初のアクティビティは、
createInstance
をyes
に設定したreceiveアクティビティまたはpickアクティビティにできません。これは、指定されたサブプロセス・タイプにはインスタンスが作成されず、論理的にはこのサブプロセスが既存のプロセス・インスタンスの一部となるためです。
サブプロセスの/@name
属性は、デプロイされたコンポジット内で一意のサブプロセス名を定義します。
このサブプロセスは自己完結型です。つまり、すべての変数およびパートナ・リンクが、ローカル定義または引数に解決されるプロセス・スニペットで参照します。これは、コール・アクティビティで適用範囲内の変数およびパートナ・リンクへの未解決の参照が可能な<inlineSubProcess>
要素とは異なります。
通常は、親とサブプロセスの間で複数の変数が交換されます。大容量のドキュメントの場合、コピーすると負荷が高くなります。このため、参照渡しはオプションになります。
サブプロセスはパートナと同期式(InOut
)または非同期式(InOnly
)で対話できます。これらの相互作用のパートナ・リンクは、親プロセスの引数として渡すか、サブプロセス内で構成できます。非同期リクエストの場合、WSアドレス/正規化されたメッセージの対話IDを親プロセス・インスタンスIDで設定します。これにより、正しいプロセス・インスタンスにコールバック・メッセージをルーティングできます。
SOAコンポジット・アプリケーションのサブプロセスはcomposite.xml
ファイルに列挙されます。コンポーネント要素定義は、定義されたsbpel
ファイルにそのサブプロセス名を関連付けます。デプロイ中にサブプロセス・コンポーネントはBPELプロセス・サービス・エンジンに委任されます。このBPELプロセス・サービス・エンジンはプロセス定義を検証し、サブプロセス・ターゲット名をキーとし、サブプロセス定義を値とするマップを構築します。コンシューマ・カウントから独立したサービス・エンジンに存在するサブプロセスのインスタンスは、多くて1つのみです。メモリーの最適化のため、プロセスはアクティブに使用されていない場合、遅延ロードまたはアンロードされる場合があります。
スタンドアロン・サブプロセスの作成の詳細は、「スタンドアロンBPELサブプロセスの作成方法」を参照してください。
39.2.2 インライン・サブプロセスの概要
インライン・サブプロセスは<process>
レベルのBPEL 2.0プロセスの一部として定義できます。構文を次の例に示します。
<process name="NCName" targetNamespace="anyURI" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" ...> <!-- ! All sub-process definitions must appear prior to the WS-BPEL artifacts of ! the process definition. --> <!-- Inline sub-process definition at process scope --> <bpelx:inlineSubProcess xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="NCName">* ... <!-- Partner links and variables serve as sub-process arguments --> <partnerLinks>? <partnerLink name="NCName" partnerLinkType="QName" myRole="NCName"? partnerRole="NCName"? bpelx:argumentRequired=["yes"|"no"]? />+ <partnerLinks> ... <variables>? <variable name="BPELVariableName" messageType="QName"? type="QName"? element="QName"? bpelx:argumentRequired=["yes"|"no"]?>+ from-spec? </variable> </variables> ... <!-- ! Standard process activity graph here, except that no <receive> or <pick> ! activities with createInstance = "yes" are allowed. --> activity </bpelx:inlineSubprocess> <!-- ! BPEL code stripped for brevity --> </process>
BPELプロセス・インスタンスの最初の作成時には、すべてのサブプロセス参照が解決されます。このプロセスが特定のコール・アクティビティを実行する際は、インスタンスの作成時に解決済のサブプロセスが使用されます。したがって、たとえばサブプロセスのデフォルトのコンポジット・リビジョンが変更された場合など、同じプロセス内の2つの別のインスタンスが、別のバージョンの参照済サブプロセスを使用する可能性があります。
BPELプロセス・インスタンスがコール・アクティビティを実行する際は、プロセスの実行スペース内で実行され、状態を共有します。コール・アクティビティではコントロールをサブプロセスに送信し、その際、サブプロセス・スコープが次の引数の値で初期化されます。
-
各パラメータは、コール・アクティビティからサブプロセスのスコープに(指定に応じて参照または値により)コピーされます。
-
コール・アクティビティのパラメータ・リストで参照されないオプションのパラメータ(デフォルト値で設定)は、デフォルト値で初期化されます。
-
必要なすべてのパラメータが、コール・アクティビティによって指定される必要があります。
-
コール・アクティビティのパラメータによって指定されたすべての値は、サブプロセスで定義された対応する変数(またはパートナ・リンク)と互換性のあるタイプである必要があります。
-
サブプロセスの各変数(またはパートナ・リンク)は、コール・アクティビティのパラメータ・リストで1回のみ設定できます。
サブプロセスの完了時に、コントロールが親プロセスに返されます。通常は、コール・アクティビティの後、引き続き次のアクティビティが実行されます。サブプロセスが正常に完了しなかった場合は、WS-BPELの標準ライフ・サイクル・ルールに従って、親プロセスがこのプロセスを進めます。
サブプロセスの新規プロセス・インスタンスは、監視および管理ビューからは作成できません。親プロセス・インスタンスのコール・アクティビティで表されます。アクティビティを開く(移動する)と、サブプロセスの実行の詳細が表示されます。
実行時のリンク・エラーを最小限にするため、プロセスおよびサブプロセスのデプロイの際は、参照が解決されます。パラメータ・リストはデプロイ後のアクティビティとして検証されます。新規プロセス・インスタンスの作成の前処理では、プロセスのすべてのサブプロセス参照を検証します。解決されない参照がある場合、そのインスタンスは作成されません。かわりに、基本的に次のような意味のエラー・メッセージが返されます。
HTTP Status Code 503, "service not available
リンク・エラーがあると、サービス・コンシューマが待機中の場合、終了アクティビティ処理が行内に含まれたエラー・メッセージがコンシューマに送信されます。それ以外の場合、インスタンスは一時停止され、理由がlinkage
error
に設定されます。適切なサブプロセスがデプロイされて参照が解決可能な場合は、一時停止されたインスタンスをリカバリして、自動リカバリにより通常実行を再開できます。
インライン・サブプロセスの作成の詳細は、「インライン・サブプロセスの作成方法」を参照してください。
39.3 Oracle SOA Suiteテンプレートと再利用可能なサブプロセスの違い
自社のビジネスで使用するには、テンプレートと再利用可能なサブプロセスではどちらが最適なソリューションかを判断する際は、相違点を理解することが重要です。
-
テンプレート
テンプレートは、カスタマイズ可能な、骨組みの状態のプロジェクト、サービス・コンポーネントまたはスコープ・アクティビティです。テンプレートは、SOAコンポジット・アプリケーションまたはBPELプロセスにドラッグ・アンド・ドロップして、変更を加えることができます。基本的には、テンプレートをコピーして貼付けます。たとえば、テンプレートに50行のコードがあり、2回コピーして使用する場合、コードは100行になります。
-
再利用可能なサブプロセス
サブプロセスは、特定の目的を想定したBPELコード・スニペットです。以前に定義されたサブプロセスを呼び出してそのまま使用できます。50行のインライン・サブプロセスを2回呼び出しても、親プロセスのコードは100行ではなく、50行のままとなります。サブプロセスは、テンプレートよりもパフォーマンスが高く、メモリー・フットプリントも小さくなります。
39.4 Oracle SOA Suiteテンプレートの作成
次のタイプのテンプレートを作成できます。
-
SOAプロジェクト
-
サービス・コンポーネント
-
カスタムBPELスコープ・アクティビティ
テンプレートの概念の詳細は、「テンプレートの概要」および「Oracle SOA Suiteテンプレートと再利用可能なサブプロセスの違い」を参照してください。
39.4.1 SOAプロジェクト・テンプレートの作成および使用
この項では、SOAプロジェクトをテンプレートとして作成および使用する方法について説明します。
ノート:
テンプレートの使用は、Oracle JDeveloperカスタマイズ・ロールではサポートされません。
39.4.1.2 別のSOAコンポジットでコンポジット・テンプレートを使用する方法
この項では、「SOAプロジェクト・テンプレートの作成方法」で作成したコンポジット・テンプレートを別のSOAコンポジット・アプリケーションで使用する方法について説明します。
別のSOAコンポジットでコンポジット・テンプレートを使用する方法は次のとおりです。
39.4.2 サービス・コンポーネント・テンプレートの作成および使用
この項では、サービス・コンポーネント・テンプレートを作成および使用する方法について説明します。
39.4.2.2 別のSOAコンポジットでサービス・コンポーネント・テンプレートを使用する方法
この項では、「サービス・コンポーネント・テンプレートの作成方法」で作成したパッケージ済サービス・コンポーネント・テンプレートを別のSOAコンポジット・アプリケーションで使用する方法について説明します。
別のSOAコンポジットでサービス・コンポーネント・テンプレートを使用するには:
39.4.3 BPELスコープ・アクティビティ・テンプレートの作成および使用
この項では、BPELスコープ・アクティビティ・テンプレートを作成および使用する方法について説明します。
39.4.3.1 BPELスコープ・アクティビティ・テンプレートの作成方法
BPELスコープ・アクティビティ・テンプレートを作成するには:
-
Oracle BPELデザイナで、スコープ・アクティビティをBPELプロセスにドラッグします。
-
スコープ・アクティビティのコンテンツを設計してアクティビティ、イベント・ハンドラおよび捕捉を含め、必要に応じて、フォルト変数を含むすべてのブランチを捕捉します。
-
スコープからテンプレートを作成します。
-
スコープを右クリックして、「カスタム・アクティビティ・テンプレートの作成」を選択します。
または
-
図39-11に示すように、スコープを展開して、「カスタム・アクティビティ・テンプレートの作成」を選択します。
図39-12に示すように、カスタム・アクティビティ・テンプレートの作成ウィザード - 「テンプレート情報の指定」ページが表示されます。
図39-12 カスタム・アクティビティ・テンプレートの作成ウィザード - 「テンプレート情報の指定」ページ
「図39-12 カスタム・アクティビティ・テンプレートの作成ウィザード - 「テンプレート情報の指定」ページ」の説明 -
-
詳細を指定し、「次へ」をクリックします。
カスタム・アクティビティ・テンプレートの作成ウィザード - 「変数」ページが表示されます。図39-13に詳細を示します。このページは、変数がスコープで使用されている場合に表示されます。このページは、スコープが空の場合、またはスコープで変数を使用しない場合は表示されません。
-
変数をローカル変数に変換することを選択します。この変数が、receiveアクティビティおよびreplyアクティビティのスコープ・アクティビティ外で使用される場合、この変換は推奨されません。変数がこのスコープ内でのみ使用される場合は、このチェック・ボックスはデフォルトで選択されています。
-
変数の説明(オプション)を入力し、「次へ」をクリックします。
図39-2に示したように、カスタム・アクティビティ・テンプレートの作成ウィザード - 「バンドルするファイル」ページが表示されます。このページには、パッケージされたすべてのファイルが、このテンプレートの一部として表示されます。テスト・スイートを手動で選択して含めることもできます。
-
ファイルを選択し、「終了」をクリックします。
39.4.3.2 BPELスコープ・アクティビティ・テンプレートを別のBPELプロセスで使用する方法
この項では、BPELスコープ・アクティビティ・テンプレートを別のBPELプロセスで使用する方法について説明します。
BPELスコープ・アクティビティ・テンプレートを別のBPELプロセスで使用する方法は次のとおりです。
-
新規BPELプロセスを作成するか、既存のBPELプロセスを開きます。
-
「コンポーネント」ウィンドウの「カスタム・アクティビティ・テンプレート」セクションから、「BPELスコープ・アクティビティ・テンプレートの作成方法」で作成したスコープ・アクティビティ・テンプレートをBPELプロセスにドラッグします。図39-14に詳細を示します。
ノート:
BPELサービス・コンポーネントのバージョンと互換性のあるスコープ・アクティビティ・テンプレートのみを使用できます。たとえば、BPEL 2.0のサービス・コンポーネントの場合、BPEL 2.0のスコープ・アクティビティ・テンプレートのみを選択できます。BPELバージョン1.1のスコープ・アクティビティ・テンプレートは表示されません。
自分で設計したエラー処理(catchおよびcatchallアクティビティなど)や、自分で作成したスコープ変数も、BPELプロセスにコピーされます。
図39-15に示すように、「テンプレートからのカスタム・アクティビティの作成」ページが表示されます。
-
「次へ」をクリックします。
競合がある場合は、図39-16に示すように、テンプレートからのカスタム・アクティビティの作成ウィザード - 「競合の解決」ページが表示されます。
図39-16 テンプレートからのカスタム・アクティビティの作成ウィザード - 「競合の解決」ページ
「図39-16 テンプレートからのカスタム・アクティビティの作成ウィザード - 「競合の解決」ページ」の説明 -
すべてのファイル競合または個別のファイル競合をスキップする選択をして、「次へ」をクリックします。
図39-17に示すように、テンプレートからのカスタム・アクティビティの作成ウィザード - 「変数」ページが表示されます。
「BPELスコープ・アクティビティ・テンプレートの作成方法」のステップ5で、カスタム・アクティビティ・テンプレートの作成ウィザード - 「変数」ページで変数をローカル変数に変換することを選択した場合は、特別な処理は必要なく、このページに表示されません。ローカル変数に変換されなかった変数のみが、「テンプレートからのカスタム・アクティビティの作成」ウィザード - 「変数バインド」ページに表示されます。
図39-17 「テンプレートからのカスタム・アクティビティの作成」ウィザード -「変数バインド」ページ
「図39-17 「テンプレートからのカスタム・アクティビティの作成」ウィザード -「変数バインド」ページ」の説明 -
テンプレートおよびプロジェクトの両方にこの変数が含まれる場合、変数を再使用するか、または「BPEL変数」列のリストから新しい変数をバインドすることを選択できます。
-
新規変数へのバインドを選択した場合は、名前を入力し、変数をテンプレート・スコープ用にローカルに作成するか、BPELプロセス用にグローバルに作成するかを選択して、「OK」をクリックします。図39-18に詳細を示します。
スコープB内のスコープA内にあるアクティビティ・テンプレートを削除した場合、スコープAとスコープBもリストに含まれます。これによって、変数を宣言可能なすべての場所から選択できます。
-
-
「次へ」をクリックします。
-
スコープでパートナ・リンクを使用する場合は、「カスタム・アクティビティ・テンプレートの作成」ウィザード - 「パートナ・リンク」ページが表示されます。
-
「終了」をクリックします。
39.5 BPELプロセスでのスタンドアロンおよびインラインBPELサブプロセスの作成
BPELプロセスで、SOAコンポジットではスタンドアロン・サブプロセスを、BPELプロセスではインラインBPELサブプロセスを作成できます。サブプロセスは、別個のプロセスが特定のプロセッサ内で再利用できるBPELコードのフラグメントです。
サブプロセスの概念の詳細は、「スタンドアロンおよびインラインBPELサブプロセスの起動の概要」および「Oracle SOA Suiteテンプレートと再利用可能なサブプロセスの違い」を参照してください。
ノート:
-
1つのBPELサブプロセスが再帰的にそのサブプロセス自体を呼び出すことに、制限はありません。同じBPELサブプロセスを再帰的に呼び出すかどうかと、サブプロセスを呼び出す回数を指定する必要があります。
-
スタンドアロン・サブプロセスのみを含むSOAコンポジット・アプリケーションは、作成して正常にデプロイできます。たとえば、SOAコンポジット・アプリケーションを作成して、サブプロセスのパラメータを2つ定義したスタンドアロン・サブプロセスを追加し、このサブプロセスでassignアクティビティを定義して、両方のパラメータの値を入れ替えます。ただし、スタンドアロン・サブプロセスのみを含み、他のコンポーネントは含まないSOAコンポジット・アプリケーションはデプロイできますが、実用的ではありません。
-
スタンドアロン・サブプロセスはMDSリポジトリで共有できません。ただし、サブプロセスを呼び出すコール・アクティビティを含むBPELプロセスは、MDSリポジトリで共有できます
39.5.1 スタンドアロンBPELサブプロセスの作成方法
この項では、スタンドアロン・サブプロセスを使用する簡単なアプリケーションの作成方法の例を示します。
ノート:
スタンドアロン・サブプロセスには、インライン・サブプロセスを含めることができます。
スタンドアロンBPELサブプロセスを作成するには:
39.5.2 インライン・サブプロセスの作成方法
インライン・サブプロセスは、スタンドアロン・サブプロセスに類似していますが、インライン・サブプロセスが親プロセスに埋め込まれているという点が異なります。たとえば、顧客注文のステータスを更新するスコープ・アクティビティ内にassignアクティビティとinvokeアクティビティが含まれているBPEL 2.0プロセスがあるとします。これらの同じアクティビティを、後で同じプロセスで繰り返すというビジネス・ニーズがあるとします。スコープの同じassignアクティビティとinvokeアクティビティを、後でプロセス内で物理的に繰り返す方法がありますが、これはエラーが発生しやすい可能性があります。さらに、毎回変更する必要があり、それを両方のスコープに実装する必要があります。アクティビティを繰り返すかわりに、インライン・サブプロセスを使用できます。
ノート:
既存のインライン・サブプロセス内にインライン・サブプロセスを作成することはサポートされません。
インライン・サブプロセスを作成するには:
インラインBPELサブプロセスの使用方法の詳細は、『Oracle SOA Suiteの理解』のインラインBPELサブプロセスによる注文のステータスの更新に関する項を参照してください。
39.5.3 パートナ・リンクをパラメータとして取得するスタンドアロン・サブプロセスの作成方法
この項では、サブプロセスがパートナ・リンクをパラメータとして取得し、それを使用してパートナを呼び出し、結果を返す方法を示します。基本的には、サブプロセスからサブプロセスへパートナ・リンクを使用しています。
パートナ・リンクをパラメータとして取得するスタンドアロン・サブプロセスを作成するには:
39.5.4 サブプロセスの名前変更に関する必知事項
サブプロセスの名前を変更する際、起動中のコール・アクティビティでは更新されません。コール・アクティビティのサブプロセス名は手動で更新する必要があります。
次のステップを実行すると仮定します。
- 非同期BPEL 2.0プロセスを作成します。
- SOAコンポジット・エディタを右クリックし、「挿入」→「サブプロセス」を選択します。
- SubProcessNewという名前のサブプロセスを作成します。
- 「SubProcessNew」を右クリックして、「編集」をクリックします。
- 「コンポーネント」ウィンドウからサブプロセスに、「空」のアクティビティをドラッグします。
- 非同期BPEL 2.0プロセスを開きます。
- 「コンポーネント」ウィンドウからプロセスに、「コール」アクティビティをドラッグします。
- SubProcessNewサブプロセスをcallアクティビティから起動します。
- SOAコンポジット・エディタに戻り、SubProcessNewサブプロセスの名前をSubProcessRenamedに変更します。
- 非同期BPEL 2.0プロセスのcallアクティビティを開き、「サブプロセス」フィールドが空であることに注意してください。
- 「サブプロセス」フィールドに、更新された名前のSubProcessRenamedを手動で入力します。