|
この節は、ビジネス プロセスの開始点になる、ビジネス プロセスの最初のノード (開始ノード) を設計する方法について説明します。
ビジネス プロセスは、ビジネス プロセスがサブスクライブされるメッセージ ブローカのチャネルからメッセージを受信した結果またはクライアントから要求を受信した結果、複数のイベントから 1 つを選択して開始できます (ビジネス プロセスは、チャネルをサブスクライブしてイベントを受信できます。たとえば、ファイル イベント ジェネレータ、JMS イベント ジェネレータ、タイマー イベント ジェネレータなどがあります)。この節では、次のトピックについて説明します。
開始ノードは、ビジネス プロセスの開始点です。ビジネス プロセスを開始するメソッドにより、プロセスの開始イベントには、Client Request、Client Request with Return または Subscription ノードの任意の組み合わせが入ります。開始ノードの真下にある開始イベント プレースホルダをダブルクリックし、プロセスの開始イベントを設計します。
新たなビジネス プロセスを作成するには、「ビジネス プロセス アプリケーションの作成」で説明するタスクを完了します。新たなビジネス プロセスを作成すると、以下の図 3-1 に示すように、空の開始ノード、開始イベントプレースホルダおよび Finish ノードが最初に入ります。
ビジネス プロセスの最初の操作は、開始ノードにより指定されます。つまり、開始イベントを定義することにより、ビジネス プロセスの実行時の開始方法を指定します。前述の図に示すように、開始ノードに添付された空のノードおよび灰色のチェック ボックスの は、このビジネス プロセスの開始メソッドが定義されていないことを示します。
プロセス ノードを追加してビジネス プロセスを構築する際、開始ノードに戻ってプロセスのステートレスのステータスをチェックできます。プロセスがステートフルになると、開始ノードのプロパティ エディタのステートレス プロパティは false を表示します。ステートレスおよびステートフルのビジネス プロセスの詳細については、「ステートレス/ステートフル ビジネス プロセスの構築」を参照してください。
開始ノードでは、ビジネス プロセス全体の問題も示されます。たとえば、コントロール宣言にエラーがある場合または誤った変数の型が使用されている場合です。このような問題はいずれも、開始ノードの次に表示される により示されます。このアイコンの上にカーソルを置くと、Oracle Workshop for WebLogic により問題に関するメッセージが表示されます。
開始するイベント ノード ビルダを呼び出し、開始ノードのプロパティを設計できます。ノード ビルダでは、タスク駆動型のインタフェースにより、ビジネス プロセスのノードで必要なロジックを指定できます。
ノード ビルダが、図 3-2 のように表示されます。
クライアントからメッセージを受信してビジネス プロセスを開始する場合は、このオプションを選択します。
クライアントから同期の要求を受信してビジネス プロセスを開始する場合は、このオプションを選択します。戻り値のあるクライアント要求グループ内の受信ノードおよび送信ノードの間に追加された任意のノードは、同期処理のスコープ内で実行されます。
メッセージ ブローカ チャネルから非同期のメッセージを受信してビジネス プロセスを開始する場合は、このオプションを選択します。このノードでメッセージ ブローカ チャネルへの静的なサブスクリプションを作成します。また、このオプションでは、メッセージ ブローカ チャネルへのイベントのパブリッシュを容易にするファイル、JMS、電子メール、タイマーイベント ジェネレータによるイベントを通じてビジネス プロセスを開始できます。
注意 : | Oracle WebLogic Integration では、開始ノードで定義されるメッセージ ブローカ チャネルのサブスクリプションは静的であり、メッセージ ブローカ サブスクリプション コントロールを使用して定義されるサブスクリプションは動的です。Javadoc の「静的および動的サブスクリプションに関する注意」を参照してください。 |
メッセージ ブローカ チャネルから同期のメッセージを受信してビジネス プロセスを開始する場合は、このオプションを選択します。このノードでメッセージ ブローカ チャネルへの静的なサブスクリプションを作成します。また、このオプションでは、メッセージ ブローカ チャネルへのイベントのパブリッシュを容易にするファイル、JMS、電子メール、タイマーイベント ジェネレータによるイベントを通じてビジネス プロセスを開始できます。
多数の可能なイベントから 1 つを受信してビジネス プロセスを開始する場合は、このオプションを選択します。ビジネス プロセスの開始時にイベント選択ノードを使用する場合は、Client Request、Client Request with Return、または Message Broker Subscription ノードが入るようにコンフィグレーションできます。
ビジネス プロセスに対して、開始ノードを指定する詳細については、以下を参照してください。
クライアントからメッセージを受信してビジネス プロセスを開始することを指定した場合、つまりクライアント要求を通じた呼び出しオプションを使用する場合は、開始ノードが図 3-3 のように表示されます。
クライアント操作およびコントロール コミュニケーション メソッド
クライアントからメッセージを受信してビジネス プロセスを開始することを指定し、同期のレスポンスをクライアントに返信することを指定した場合、つまり [戻り値のあるクライアント要求で同期的に呼び出す] オプションを使用する場合、開始ノードは図 3-4 のように表示されます。
Client Request with Return グループ ノードについて、以下のプロパティを注意してください。
任意のノードをビジネス プロセスに追加した後は、そのノード ビルダを呼び出してノードに適したタスクを完了し、そのプロパティおよび動作を設計できます。また、戻り値のあるクライアント要求ノードの要求部分および戻り値部分の間に、ノードを必要に応じて追加することもできます。この操作により、クライアントからメッセージを受信した後および戻り値がクライアントに返信される前に、データの処理またはタスクの実行を行うことが可能になります。戻り値のあるクライアント要求ノードに必要に応じてノードを追加する方法の詳細については、「Client Request with Return ノード グループへのノードの追加」を参照してください。
以下の節では、Client Request with Return ノードの設計を完了する方法を説明します。
Client Request with Return ノードを設計するには、以下の節を完了する必要があります。
ノード ビルダが呼び出されます。これには、[一般的な設定] および [データの受信] の 2 つのタブがあります。
メソッドに割り当てた名前は、ビジネス プロセスを Web サービスとして利用可能にする際に、Web Services Description Language (WSDL) を介してエクスポーズされるメソッド名です。プロジェクトのメソッドをクライアントにエクスポーズする方法については、「アプリケーションのコンポーネント」を参照してください。
ビジネス プロセス プロジェクトで利用できる XML スキーマ、型なしの XMLObject、および XMLObjectList データ型を示します。プロジェクトにスキーマをインポートする方法については、「XML スキーマのインポート」を参照してください。
ビジネス プロセス プロジェクトで利用できるメッセージ フォーマット言語 (Message Format Language : MFL) ファイルおよび型なしの RawData データ型を示します。Oracle WebLogic Integration では、XML に基づき、メッセージ フォーマット言語 (MFL) と呼ばれるメタデータ言語を使用し、非 XML データの構造を記述します。プロジェクトで利用できる各 MFL ファイルは、非 XML 型に表示されます。各 MFL ファイルの XML スキーマの表示は、Oracle Workshop for WebLogic により構築され、XML 型のリストでも利用できます。
データ型の詳細については、「データ型の操作」を参照してください。
注意 : | 前述の手順で型付きの XML または型付きの非 XML データ型を選択した場合は、[検証] ボックスを選択し、ノードによりメッセージを受信する前に、指定したスキーマに対して着信するメッセージを検証できます。スキーマの詳細については、「スキーマの検証」および「スキーマ ファイルのインポートと作成」を参照してください。 |
このタブでは、1 つまたは複数の変数を定義し、ビジネス プロセスがクライアントから受信するデータを保持できます。[データの受信] タブには、モードが 2 つあります。
[クライアントが送信する値] フィールドには、[一般的な設定] タブで指定したパラメータが移入されます。
ノード ビルダのトランスフォーメーション ウィンドウにより、[クライアントが送信する値] ペインでメソッドにより予想できるデータ型が表示されます。
注意 : | ノード ビルダ ペインからパラメータを削除するには、このリストのパラメータを選択し、[削除] をクリックします。この操作により、ビジネス プロセスからではなく、ノード ビルダから変数が削除されます。変数は、まだビジネス プロセスに入っており、[データ パレット] の [変数] ペインに表示されます。 |
ビジネス プロセスを設計する際、トランスフォーメーションを使用し、異種のデータ型の間のマップを作成します。トランスフォーメーション コントロールのインスタンス (データ トランスフォーメーション ファイルにより定義される) がプロジェクトにある場合は、そのインスタンスはマップの作成に使用されます。
XQuery Mapper ツールで、ソース スキーマおよびターゲット スキーマ表現を [ソース] および [対象] ペインに表示します。メソッド パラメータのデータ型および 1 つまたは複数の変数のデータ型の間のマップを作成し、それにデータを割り当てることができます。XQuery Mapper ツールを使用してマップを作成およびテストする方法については、『XQuery Mapper を使用したデータの変換』を参照してください。
注意 : | ノード ビルダに戻るには、[パッケージ・エクスプローラー] ペインで Process.java ファイルをダブルクリックします。 |
ノード ビルダを開いて既存の設定を変更することにより、任意のノードでコンフィグレーションを編集できます。コンフィグレーションされたトランスフォーメーションの入ったノード ビルダに変数を追加または削除する場合は、トランスフォーメーションを編集または再作成する必要があります。この操作を行うには、変数を追加または削除し、[トランスフォーメーションの編集] または [トランスフォーメーションの作成] をクリックします。
注意 : | ノード ビルダの [トランスフォーメーション] ペインで変数を選択し、その後 [削除] をクリックすると、ビジネス プロセスからではなく、ノード ビルダから選択した変数が削除されます。変数は、まだビジネス プロセスに入っており、[データ パレット] の [変数] ペインに表示されます。 |
ノード ビルダの要求部分が表示されます。これには、[一般的な設定] および [データの送信] の 2 つのタブがあります。
メソッドに割り当てた名前は、ビジネス プロセスを Web サービスとして利用可能にする際に、Web Services Description Language (WSDL) を介してエクスポーズされるメソッド名です。プロジェクトのメソッドをクライアントにエクスポーズする方法については、「アプリケーションのコンポーネント」を参照してください。
ビジネス プロセス プロジェクトで利用できる XML スキーマ、型なしの XMLObject および XMLObjectList データ型を示します。
ビジネス プロセス プロジェクトで利用できるメッセージ フォーマット言語 (Message Format Language : MFL) ファイルおよび型なしの RawData データ型を示します。Oracle WebLogic Integration では、XML に基づき、メッセージ フォーマット言語 (MFL) と呼ばれるメタデータ言語を使用し、非 XML データの構造を記述します。プロジェクトで利用できる各 MFL ファイルは、非 XML 型に表示されます。各 MFL ファイルの XML スキーマの表示は、Oracle Workshop for WebLogic により構築され、XML 型のリストでも利用できます。
データ型の詳細については、「データ型の操作」を参照してください。
このタブでは、1 つまたは複数の変数を定義し、ビジネス プロセスによりクライアントに送信するデータを保持できます。
[クライアントが予期する値] フィールドは、[一般的な設定] タブに指定した戻り値で移入されます。
ノード ビルダのトランスフォーメーション ウィンドウで、[クライアントが予期する値] ペインに表示されるメソッドにより予想されるデータ型が表示されます。
注意 : | ノード ビルダ ペインから変数を削除するには、このリストの変数を選択し、[削除] をクリックします。この操作により、ビジネス プロセスからではなく、ノード ビルダから変数が削除されます。変数は、まだビジネス プロセスに入っており、[データ パレット] の [変数] ペインに表示されます。 |
ビジネス プロセスを設計する際、トランスフォーメーションを使用し、異種のデータ型の間のマップを作成します。トランスフォーメーション コントロールのインスタンスがプロジェクトにある場合は、そのインスタンスはマップの作成に使用されます。
XQuery Mapper ツールで、ソース スキーマおよびターゲット スキーマ表現を [ソース] および [対象] ペインに表示します。メソッド パラメータと変数の間のマップを作成し、それにデータを割り当てることができます。XQuery Mapper ツールを使用してマップを作成およびテストする方法については、『XQuery Mapper を使用したデータの変換』を参照してください。
注意 : | ノード ビルダに戻るには、[パッケージ・エクスプローラー] ペインで Process.java ファイルをダブルクリックします。 |
注意 : | ノード ビルダの [トランスフォーメーション] ペインで設計するコンフィグレーションの変更の詳細については、「ノード コンフィグレーションの編集について」を参照してください。 |
デザイン ビューで、 アイコンは、このノードの作成およびコンフィグレーションが完了したことを示します。
Client Request with Return ノードは、Client Request ノードおよび Client Receive ノードのコンビネーションとして同期の対話内で機能します。そのため、Client Request ノードの要求部分および戻り値の部分の間にノードを追加できますが、wait または block ノードはいずれも追加できません。Client Request with Return ノードにノードを追加するには、パレットで追加するノードを選択し、それを Client Request with Return ノードにドラッグおよびドロップします。
Client Request with Return ノードでメソッドに割り当てた名前は、ビジネス プロセスを Web サービスとして利用可能にする際に、Web サービス記述言語 (WSDL) を通じてエクスポーズされるメソッド名に対応します。この名前は、有効な Java クラス名であることが必要です。
クライアント操作およびコントロール コミュニケーション メソッド
メッセージ ブローカ チャネルをサブスクライブし、イベントを通じて開始する (タイマー、電子メール、ファイル、アダプタなど) オプションを通じてビジネス プロセスを開始することを指定した場合 (「ビジネス プロセス用の開始メソッドを定義するには」) には、開始ノードが図 3-5 のように表示されます。
メッセージ ブローカ チャネルへの静的なサブスクリプションは、Subscription ノードで定義されます。ビジネス プロセスは、メッセージ ブローカ チャネルからメッセージを受信して開始されます。
注意 : | Oracle WebLogic Integration では、開始ノードで定義されるメッセージ ブローカ チャネルのサブスクリプションは静的であり、メッセージ ブローカ サブスクリプション コントロールを使用して定義されるサブスクリプションは動的です。「静的および動的サブスクリプションに関する注意」を参照してください。 |
注意 : | 非同期のサブスクリプション開始では、サブスクライブされたビジネス プロセスが、パブリッシャのトランザクションとは異なるトランザクション内で実行されます。一般的に、ビジネス プロセスがメッセージ ブローカ チャネルからメッセージを受信する際にビジネス プロセスを開始するように設計する場合には、通常このデザイン パターンの使用をお勧めします。同期のサブスクリプション開始が推奨されるシナリオの詳細については、「同期または非同期の Subscription 開始ノードの選択について」を参照してください。 |
サブスクリプション要求メソッドのデータ型およびデータ形式 (メソッド パラメータ用のデータ型) は、チャネル ファイルのコンフィグレーションに基いて自動的に指定されます。
注意 : | 選択に適したチャネルが利用できない場合は、アプリケーション用にメッセージ ブローカ チャネルを指定するチャネル ファイルを作成する必要があります。 |
フィルタの指定は、省略可能です。フィルタは、ビジネス プロセスがチャネルから受信するデータ型に適用でき、またはチャネルのコンフィグレーションで限定されるメタデータ型を指定した場合に適用できます。
[フィルタの指定] タブのフィールドには、前のタブで指定したサブスクリプション メソッド パラメータ用のデータ型が入力されます。限定されたメタデータを受信できるチャネルを指定した場合は、Qualified Metadata 属性も示され、代わりにそのパラメータをフィルタすることもできます。
このタブでは、ビジネス プロセスがチャネルから受信するデータを保持するための 1 つまたは複数の変数を定義できます。
[クライアントが送信する値] フィールドには、[一般的な設定] タブで指定したパラメータ、すなわちチャネルのパラメータ型が入力されます。
ノード ビルダのトランスフォーメーション画面が表示され、メソッドにより予想されるデータ型が [クライアントが送信する値] ペインに表示されます。
注意 : | ノード ビルダ ペインから変数を削除するには、このリストの変数を選択し、[削除] をクリックします。この操作により、ビジネス プロセスからではなく、ノード ビルダから変数が削除されます。変数は、まだビジネス プロセスに入っており、[データ パレット] の [変数] ペインに表示されます。 |
ビジネス プロセスを設計する際、トランスフォーメーションを使用し、異種のデータ型の間のマップを作成します。マップを作成するには、データ トランスフォーメーション ファイルにより定義されるトランスフォーメーション コントロールのインスタンスがプロジェクトに含まれている必要があります。
トランスフォーメーション ツールにより、ソース スキーマおよびターゲット スキーマが [ソース] および [対象] ペインに表示されます。メソッド パラメータのデータ型および 1 つまたは複数の変数のデータ型の間のマップを作成し、それにデータを割り当てることができます。
注意 : | ノード ビルダに戻るには、[パッケージ・エクスプローラー] ペインで Process.java ファイルをダブルクリックします。 |
注意 : | ノード ビルダの [トランスフォーメーション] ペインで設計するコンフィグレーションの変更の詳細については、「ノード コンフィグレーションの編集について」を参照してください。 |
デザイン ビュー では、 アイコンにより、このノードのコンフィグレーションおよび設計が完了したことが示されます。サブスクリプション ノードのバッファリングの詳細については、「クライアント メッセージのバッファリング」を参照してください。
クライアント操作およびコントロール コミュニケーション メソッド
メッセージ ブローカ チャネルを同期でサブスクライブし、イベントを通じて開始するオプションを通じてビジネス プロセスを開始することを指定した場合 (「ビジネス プロセス用の開始メソッドを定義するには」を参照) には、開始ノードが図 3-7 のように表示されます。
メッセージ ブローカ チャネルへの同期の静的なサブスクリプションは、同期サブスクリプション ノードで定義されます。ビジネス プロセスは、メッセージ ブローカ チャネルから同期のメッセージを受信して開始されます。
注意 : | Oracle WebLogic Integration では、開始ノードで定義されるメッセージ ブローカ チャネルのサブスクリプションは静的であり、メッセージ ブローカ サブスクリプション コントロールを使用して定義されるサブスクリプションは動的です。 |
次のシーケンスでは、ビジネス プロセスの開始時に同期サブスクリプション ノードを設計するシナリオ用の実行時のメッセージ フローについて、概説します。
サブスクライブされるビジネス プロセスがパブリッシャのトランザクションとは異なるトランザクション内で実行されるため、通常は、非同期のサブスクリプション開始パターンの使用をお勧めします。反対に、同期のサブスクリプション開始では、サブスクライブされるビジネス プロセスがパブリッシャと同じトランザクション内で実行されます。このサブスクリプション型は疎結合を減らし、あるサブスクライバのトランザクションのロールバック結果を別段の場合には独立した他のサブスクライバに関連させることができます。同期のサブスクリプション開始パターンが推奨されるシナリオが 2 つあります。
JMS イベント ジェネレータにより、サブスクライバが 1 名いることが分かっているチャネルにパブリッシュすると、通常、そのサブスクライバに同期のサブスクリプション開始メソッドを使用する性能が高まります。この場合、サブスクライバがイベント ジェネレータのスレッドで作業を行うため、それに応じてイベント ジェネレータのスレッドのカウントを調節する必要があります。
suppressible を true に設定すると、動的なサブスクリプションのために静的なサブスクリプションを抑制するように指定します。つまり、suppressible=true を使用してメッセージ ブローカ チャネルの特定のメッセージにより新たなビジネス プロセスが開始されることを防止し、実行中のビジネス プロセスにより動的なサブスクリプションを使用してメッセージを受信できます。
注意 : | ビジネス プロセスで受信したメッセージを示すノードのみをコンフィグレーションできます。同期サブスクリプション開始ノードを示すペア アイコンの最初のアイコン用ノード ビルダのみを呼び出すことができます。 |
フィルタの指定は、省略可能です。フィルタは、ビジネス プロセスがチャネルから受信するデータ型に適用でき、またはチャネルのコンフィグレーションで限定されるメタデータ型を指定した場合に適用できます。
[フィルタの指定] タブのフィールドには、前のタブで指定したサブスクリプション メソッド パラメータ用のデータ型が入力されます。限定されたメタデータを受信できるチャネルを指定した場合は、Qualified Metadata 属性も示され、代わりにそのパラメータをフィルタすることもできます。
このタブでは、ビジネス プロセスがチャネルから受信するデータを保持するための 1 つまたは複数の変数を定義できます。
[クライアントが送信する値] フィールドには、[一般的な設定] タブで指定したパラメータ、すなわちチャネルのパラメータ型が入力されます。
ノード ビルダのトランスフォーメーション ペインにより、メソッドにより予想できるデータ型が [クライアントが送信する値] ペインに表示されます。
注意 : | ノード ビルダ ペインから変数を削除するには、このリストの変数を選択し、[削除] をクリックします。この操作により、ビジネス プロセスからではなく、ノード ビルダから変数が削除されます。変数は、まだビジネス プロセスに入っており、[データ パレット] の [変数] ペインに表示されます。 |
ビジネス プロセスを設計する際、トランスフォーメーションを使用し、異種のデータ型の間のマップを作成します。トランスフォーメーション コントロールのインスタンスがプロジェクトにある場合は、そのインスタンスはマップの作成に使用されます。
トランスフォーメーション ツールにより、ソース スキーマおよびターゲット スキーマが [ソース] および [対象] ペインに表示されます。メソッド パラメータのデータ型および 1 つまたは複数の変数のデータ型の間のマップを作成し、それにデータを割り当てることができます。
注意 : | ノード ビルダに戻るには、[パッケージ・エクスプローラー] ペインで Process.java ファイルをダブルクリックします。 |
注意 : | ノード ビルダの [トランスフォーメーション] ペインで設計するコンフィグレーションの変更の詳細については、「ノード コンフィグレーションの編集について」を参照してください。 |
デザイン ビューで、 のチェック ボックス アイコンにより、このノードの作成およびコンフィグレーションを完了したことが表示されます。
クライアント操作およびコントロール コミュニケーション メソッド
ビジネス プロセスを複数のクライアント要求の 1 つまたは複数のサブスクリプションの 1 つを通じて呼び出す (イベント選択) ことを指定した場合 (「ビジネス プロセス用の開始メソッドを定義するには」を参照) には、開始ノードが図 3-8 のように表示されます。
デフォルトでは、Event Choice ノードが 2 つのブランチとともに作成されます。 をクリックし、追加のブランチを作成します。新しいブランチが既存のブランチの左か右に追加されます。
Event Choice ノードのパスにノードを追加し、ビジネス プロセスの開始後に実行時でイベントの実行を指定できます。各ブランチの最初の開始イベント ターゲットは、これらの場所では特定のノードのみ許可されることを示します。ビジネス プロセスの開始ノードの Event Choice ノードを使用する場合、それには Client Request ノード、Client Request with Return ノードまたは Subscription ノードのみが含まれます。
注意 : | ビジネス プロセスの開始ノード以外の場所に Event Choice ノードを作成した場合、Client Request ノードおよび Control Receive ノードが含まれます。Event Choice ノードの設計の詳細については、「複数イベントの受信」を参照してください。 |
Event Choice 開始ノードの各ブランチで実行されるイベントを指定するためには、ノードの各ブランチについて以下のタスクを完了します。
[Event Choice] ブランチのドロップ ターゲットは、指定したイベントを反映するように変更されます。
開始ノードの例外パスを作成すると、ビジネス プロセスのグローバル例外ハンドラを作成できます。例外ハンドラのパス用のロジックを作成し、ビジネス プロセスにより例外が送出される場合の例外のフローを定義します。グローバル例外ハンドラは、ビジネス プロセスで処理されない例外に応答します。
開始ノードで例外ハンドラのパスを作成する方法については、「例外の処理」を参照してください。