BPEL デザイナー開発者ガイド: パレット要素の使用
執筆:
Bob May
、管理:
Irina Filippova
2007 年 12 月
目次
BPEL デザイナー開発者ガイド
呼び出し要素の使用
呼び出し要素により、ビジネスプロセスは、パートナーによって提供される「ポート型 」に対する単方向操作または要求-応答操作を起動できます。呼び出し要素は、ビジネスプロセスがパートナーにメッセージを送信できるようにします。操作は、パートナーの WSDL ファイル内で定義されます。
使用
デザインビューで、パレットから図へ呼び出し要素をドラッグします。
次のいずれかの手順で、呼び出し要素をパートナーリンク要素に関連付けます。
呼び出し要素からターゲットのパートナーリンクにメッセージフローを直接描画します。
呼び出し要素をダブルクリックします。次のものを調査または変更可能なダイアログが開きます。
呼び出し要素の名前。
呼び出されるパートナーリンク.
呼び出し要素に関連付けられた操作.
呼び出し要素に関連付けられた入力変数.
出力変数。
入力変数と出力変数の両方をこのダイアログで作成したり、参照したりできます。
「プロパティーエディタ」ダイアログでは、入力データと出力データ用に変数を新規に作成するか、既存の変数を使用できます。呼び出し要素に変数を作成するには「作成」ボタンを、既存の変数を選択するには「参照」をクリックします。
「参照」ボタンをクリックすると、「入力変数の選択」ダイアログまたは「出力変数の選択」ダイアログが開きます。これらのダイアログには、適切な型の変数だけを表示するチェックボックスがあります。このチェックボックスを選択すると、設定しているアクティビティーに適切な型の変数だけがリストに表示されます。これにより、有効な BPEL コードをデザインビューで開発しやすくなります。
相互関係
アウトバウンド操作を処理する呼び出しアクティビティーの相互関係セットは、指定された相互関係セットインスタンス内に格納されたデータと整合するデータが送信メッセージに含まれていることを妥当性検査するために使用されます。
呼び出しのプロパティーエディタダイアログの「相互関係」タブでは、相互関係セットを確認または指定できます。
このタブには次のものが表示されます。
相互関係セットの名前
相互関係子の開始
相互関係に関係付けられたパターン
「追加」ボタンをクリックすると、相互関係セットを追加できます。
相互関係セットの定義、および要素への相互関係セットの追加
相互関係は、特定のプロセスインスタンスとそのパートナーサービスの対応インスタンスとの間の変換を BPEL 実行環境が追跡するための手段です。相互関係は、受信メッセージと送信メッセージを相互に関係付けて、それらのメッセージを適切にルーティングするために BPEL 実行環境が使用する主キーと考えることができます。
相互関係セットは、メッセージを受信するための正しいプロセスを識別するために BPEL 実行環境が使用する、プロパティーの相互関係です。相互関係セット内の各プロパティーは、プロパティー別名を通じて、1 つ以上のメッセージタイプ内の要素にマップされます。
相互関係セットを定義するには、パートナーサービスからのメッセージに、パートナー WSDL ファイル内で定義されたプロパティーとプロパティー別名が必要です。WSDL エディタ またはナビゲータ を使用すると、WSDL ファイルにプロパティーおよびプロパティー別名を追加できます。
プロセスに関連付けられた WSDL ファイルにプロパティーとプロパティー別名を追加したあと、プロセス要素に相互関係セットを定義できます。
相互関係セットを定義するには、次の手順に従います。
デザインビューで、プロセス要素を右クリックし、「追加」>「相互関係セット」を選択します。「相互関係セットを追加」ダイアログが表示されます。
相互関係セットの名前を変更し、「追加」をクリックしてプロパティーを追加します。
「プロパティーの選択」ダイアログで、WSDL ファイルノードを展開し、セットに追加するプロパティーを選択して、「了解」をクリックします。
デフォルトでは、「プロパティーの選択」ダイアログには、すでにプロセスで参照されたファイルだけが表示されます。ただし、プロセスにまだインポートされていないそのほかの .wsdl ファイルや .xsd ファイルがプロジェクトに含まれている可能性もあります。インポートされていないファイルで定義されているプロパティーを選択すると、必要なインポートが自動的に BPEL プロセスに追加されます。
前述のとおりに相互関係セットを定義したあと、相互関係セットを呼び出し、受信、または返信のいずれかの要素に追加します。相互関係セットをピックアクティビティーのメッセージ時分岐へ関連付けたり、イベントハンドラコンテナ内のイベント時要素へ関連付けたりすることもできます。
ナビゲータに表示される相互関係セットを次に示します。
要素に相互関係セットを追加するには、次の手順に従います。
デザインビューで、要素 (呼び出し、受信、返信、ピックのメッセージ時分岐、イベントハンドラコンテナのイベント時分岐) をダブルクリックします。
「プロパティーエディタ」ダイアログで、「相互関係」タブを選択し、「追加」をクリックします。
「相互関係セットの選択」ダイアログボックスで、相互関係セットを選択して「了解」をクリックします。
「開始」ドロップダウンリストから、この相互関係セットの開始属性を選択します。次のいずれかのオプションを選択できます。
はい 。アクティビティーで相互関係セットの開始を試みる必要があります。
結合 。相互関係セットが開始されていない場合、アクティビティーで開始を試みる必要があります。
いいえ 。アクティビティーで相互関係セットの開始を試みてはいけません。これがデフォルトのオプションです。
request 操作、response 操作、または request-response 操作のいずれかのメッセージパターンを指定します。
「了解」をクリックします。
相互関係セット、プロパティー、およびプロパティー別名については、チュートリアル「
BPEL での相互関係セット、プロパティー、およびプロパティー別名の使用 」を参照してください。
ページの先頭へ
受信要素の使用
受信要素によって、ビジネスプロセスは特定のメッセージの着信のブロック待機できます。
使用
デザインビューで、パレットから図へ受信要素をドラッグします。
受信要素をダブルクリックするか、右クリックして「編集」を選択して、そのプロパティーを設定します。ここでは、旅行予約サービスサンプルの例を示します。
受信要素の名前 (ReceiveItinerary )。
パートナーリンク (Travel )。
受信要素に関連付けられた操作 (buildItinerary )。
受信要素への入力変数 (ItineraryIn )。
このプロセスに関連付けられたほかの変数を選択できる「入力変数の選択」を開くには、入力変数の「参照」を選択します。「作成」を選択して、新しい変数を作成します。
「インスタンスを作成」。選択すると、関連付けられたメッセージの着信時に BPEL プロセスのインスタンスが開始します。受信アクティビティーがビジネスプロセス内の最初のアクティビティーである場合は、「インスタンスを作成」チェックボックスを選択する必要があります。
受信要素を右クリックして「プロパティー」を選択すると、「プロパティー」ウィンドウが開きます。「プロパティー」ウィンドウには、受信のプロパティーエディタにリストされた項目のほかに次のものがあります。
ポート型 。パートナーリンクと操作を指定すると、「ポート型」フィールドの値が入力されます。
相互関係
受信のプロパティーエディタダイアログの「相互関係」タブでは、相互関係セットを確認または指定できます。
このタブには次のものが表示されます。
「追加」ボタンをクリックすると、相互関係セットを追加できます。詳細については、「 相互関係セットの定義、および要素への相互関係セットの追加 」を参照してください。
ページの先頭へ
返信要素の使用
このアクティビティーは、操作を開始した同じパートナーにプロセスからメッセージを返すのに使用します。受信アクティビティーと返信アクティビティーの組み合わせは、要求と応答の操作を作成します。
このアクティビティーは同期 (要求と応答) 操作で使用され、プロセスを呼び出した受信アクティビティーと同じパートナー、ボート型、および操作を指定します。
使用
デザインビューで、パレットから返信要素を図へドラッグします。
返信要素をダブルクリック (または右クリックして「編集」を選択) して、返信要素の「プロパティーエディタ」ダイアログを開きます。このダイアログでは、次の項目を指定できます。
要素の名前.
パートナーリンク。
操作.
応答の種類: 正常応答またはフォルト応答。
正常応答のメッセージタイプに返信要素を使用する場合は、「正常応答」を選択します。任意で、出力変数について、新しい出力変数を作成するか既存の変数を参照するかのいずれかを指定できます。
返信要素をフォルトメッセージの送信に使用する場合は、「フォルト応答」を選択します。フォルト名を選択します。このときフォルト変数について、新しいフォルト変数を作成するか既存の変数を参照するかのいずれかを指定することもできます (任意)。
返信要素を右クリックして「プロパティー」を選択すると、「プロパティー」ウィンドウが開きます。「プロパティー」ウィンドウには、「プロパティーエディタ」ダイアログにリストされた項目のほかに次のものがあります。
ポート型。 パートナーリンクと操作を指定すると、「ポート型」フィールドの値が入力されます。
相互関係
返信のプロパティーエディタダイアログの「相互関係」タブでは、相互関係セットを確認または指定できます。
このタブには次のものが表示されます。
「追加」ボタンをクリックすると、相互関係セットを追加できます。詳細については、「 相互関係セットの定義、および要素への相互関係セットの追加 」を参照してください。
ページの先頭へ
パートナーリンク要素の使用
パートナーリンク要素はビジネスプロセスと対話する相手を識別します。各リンクはパートナーリンク型とロール名によって定義されます。
パートナーリンク型とロール
型は、各サービスが対話で演じるロールを定義することによって、プロセスとそのパートナーとの間の関係を決定します。関係は、メッセージを受信するために各サービスが提供するポート型を指定することによって、さらに詳細に決定されます。各ロールは WSDL ファイル内で 1 つのポート型を指定します。
ロールは、このプロセスまたはそのパートナーの対話のアスペクトを決定します。同期操作では、同じ操作を使用して結果が返されるので、1 つのロールを使用します。非同期操作では、パートナーのロールがコールバック中に切り替わるので、2 つのロールを使用します。
ただし、パートナーリンクとパートナーリンク型は混同しやすい場合があります。
パートナーリンクの型およびロールは、BPEL 仕様で定義された特別な WSDL 拡張です。このため、これらはプロセスの BPEL ファイルではなく WSDL ファイルで定義されます。
パートナーリンクは BPEL 2.0 要素です。これはプロセスの BPEL ファイルで定義されます。
パートナーリンク型はパートナーリンク要素を定義するための前提条件です。パートナーリンク要素を定義する唯一の方法は、特定のパートナーリンク型および WSDL ファイルで定義される必要があるロールを参照することです。
使用
BPEL プロセスにパートナーリンク要素を追加するには、次のいずれかを実行します。
パレットから図にパートナーリンク要素をドラッグします。
「プロジェクト」ウィンドウ内の同じプロジェクトから図に WSDL ファイルノードをドラッグします。
「プロジェクト」ウィンドウの別のプロジェクトから図に WSDL ファイルノードをドラッグします。
「プロジェクト」ウィンドウの EJB プロジェクトまたは Web アプリケーションプロジェクトから図に Web サービスノードをドラッグします。
注: Web サービスノードをドラッグすると、BPEL デザイナーは、アプリケーションサーバーから WSDL ファイルを取得します。WSDL ファイルを正常に取得するには、アプリケーションサーバーが実行されていて、かつ Web サービスプロジェクトが配備されている必要があります。
パートナーリンク要素、WSDL ファイルノード、または Web サービスノードを図にドラッグすると、パートナーリンクプロパティーエディタが表示されます。
パートナーリンクプロパティーエディタ
「パートナーリンクプロパティーエディタ」ダイアログでは、BPEL プロセスのパートナーリンクを確立できます。
パートナーリンクプロパティーエディタを呼び出すには、図でパートナーリンク要素をダブルクリックするか、パートナーリンク要素を右クリックして「編集」を選択します。パートナーリンクプロパティーエディタは、パートナーリンク要素、WSDL ファイルノード、または Web サービスノードを図にドラッグしても表示されます。
パートナーリンクプロパティーエディタでは、次のものを指定できます。
パートナーリンク名
パートナーリンクに関連付ける WSDL ファイル
さらに、既存のパートナーリンク型を使用するか、新しいパートナーリンク型を作成するかを選択できます。
選択した WSDL ファイルにパートナーリンク型が含まれている場合、「既存のパートナーリンク型を使用」オプションが選択され、WSDL ファイル内で見つかったパートナーリンク型が「パートナーリンク型」ドロップダウンリストに入ります。既存のパートナーリンク型のいずれかを使用したり、または「新規作成したパートナーリンク型を使用」オプションを選択して新しいパートナーリンク型を作成したりできます。
WSDL ファイルにパートナーリンク型が含まれていない場合は、「新規作成したパートナーリンク型を使用」オプションが選択されます。
「既存のパートナーリンク型を使用」
ドロップダウンリストからパートナーリンク型を選択します。「自分のロール」、「パートナーのロール」のいずれかまたは両方のフィールドに、自動的に値が入ります。
ビジネスプロセス自体 (「自分のロール」) とパートナー (「パートナーのロール」) のロールを入れ替えるには、「ロールを交換」ボタンをクリックします。
「新規作成したパートナーリンク型を使用」
パートナーリンクの型を追加する WSDL ファイルを指定します。次のいずれかの操作を実行できます。
パートナーリンク型を、「ファイルに作成」フィールドにデフォルトで入力されるラッパー WSDL ファイルに追加します。このオプションを選択すると、プロジェクト構造にラッパー WSDL ファイルが自動的に作成されます。ラッパー WSDL ファイルは、元の WSDL ファイルが読み取り専用の場合、または元の WSDL ファイルを変更しない場合に使用できます。元の WSDL ファイルは、新しく作成されたラッパー WSDL ファイルにインポートされます。
パートナーリンクの型を、プロジェクト内の WSDL ファイルに追加します。「参照」をクリックし、パートナーリンク型を追加する WSDL ファイルを指定します。
パートナーリンク型の名前を指定します。
ビジネスプロセス自体 (「自分のロール」) とパートナー (「パートナーのロール」) のいずれかまたは両方のロールを次の手順で指定します。
適切なチェックボックスを選択します。
ロール名を指定します。
ドロップダウンリストからポート型を選択します。
要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、パートナーリンクのプロパティーを確認したり、変更したりできます。
ページの先頭へ
空要素の使用
空要素には、関連付けられた操作はありません。通常、空要素はプレースホルダとして使用されたり、フォルトの捕捉と抑止のために使用されたり、同時に実行されるフローアクティビティー内で同期アクションを支援するために使用されます。
空要素は、ほかの開発者がビジネスプロセスを実装するとき、またはフローアクティビティー内の複数のアクティビティーを同期する必要があるときに使用できます。
使用
パレットから図へ空要素をドラッグします。
ページの先頭へ
待機要素の使用
待機要素は、時間単位または期間に基づく待機条件を指定するのに使用します。
使用
パレットから図へ待機要素をドラッグします。ほかの要素と同様に、プロセスフロー内の正しい位置に配置してください。そうしないと、図に要素が表示されなくなります。
図で要素を右クリックして「プロパティー」を選択し、「プロパティー」ウィンドウを呼び出します。「プロパティー」ウィンドウでは、次のものを指定できます。
要素の名前.
アラーム型。使用可能なオプションは次のとおりです。
For – プロセスが待機する期間を指定します。
Until – プロセスを遅らせる時間を指定します。
For/Until。省略符号ボタン (...) をクリックすると、選択した有効期限の型に従って時間を指定するダイアログが開きます。
ページの先頭へ
スロー要素の使用
このアクティビティーは、内部フォルトを通知するのに使用します。
使用
この要素のプロパティーの定義では、フォルト名とフォルト変数を指定できます。これらの詳細を、その種の例外を処理するよう構成されたフォルトハンドラへ渡すことができます。
スロー要素のプロパティー
スロー要素のプロパティーは、要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで構成できます。オプションは次のとおりです。
名前
フォルト名 。省略符号ボタン (「...」) をクリックすると、「フォルト名」ダイアログが呼び出され、WSDL ファイルで定義されたフォルトを含むリストからフォルトを選択できます。
フォルト定義は、WSDL エディタを使用して WSDL ファイルに追加できます。詳細は、『WSDL エディタ開発者ガイド 』の「WSDL ビューを使用したポート型の設定」を参照してください。
フォルト変数。BPEL ファイル内ですでに宣言されていて、フォルトメッセージが格納される変数の名前を指定するには省略符号ボタン (「...」) をクリックします。
ページの先頭へ
代入要素の使用
代入アクティビティーは変数に値を割り当てます。データを 1 つの変数から別の変数にコピーしたり、式の構築や値の計算を行ったり、変数に新しいデータを格納したりするには、代入要素を使用します。式は、単純な計算を実行したり、メッセージ選択、プロパティー、およびリテラル定数を操作して変数の新しい値を生成したりするために必要にです。Assign アクティビティーには、1 つ以上の初歩的な割り当てを含めることができます。
使用
Assign アクティビティーのコピー規則の定義や式の追加には、BPEL マッパーを使用します。詳細については、「 Assign アクティビティーシナリオ 」の節を参照してください。
図で代入アクティビティーを選択すると、「BPEL マッパー」ウィンドウが開きます。このウィンドウが表示されていない場合は、メインメニューから「ウィンドウ」>「その他」>「BPEL マッパー」を選択して手動で開くことができます。
代入要素のプロパティー
要素を右クリックして「プロパティー」を選択すると呼び出される、代入要素の「プロパティー」ウィンドウには、次の 2 つのプロパティーがあります。
名前. 要素の名前です。
割り当て数。要素に指定された割り当て規則の数です。
ページの先頭へ
フロー要素の使用
フロー要素は、同時に (並列に) 実行される一連のアクティビティーを定義するのに使用します。
Flow アクティビティーは、個々の制御パスまたは分岐に分離されるほかのアクティビティーを含む、構造化されたアクティビティーです。必要な数だけパスをアクティビティーに埋め込むことができ、それらのパスはすべて、同時に実行されます。
実行中に、各パスは同時に実行され、それぞれのパス上のアクティビティーはリンクのソースでない限り、現れる順に実行されます。アクティビティーがリンクのソースである場合、リンクの条件とアクティビティーの結合条件が評価される必要があります。アクティビティーを引き起こすリンク条件が結合条件のリンク条件と衝突する場合、そのアクティビティーに対してフォルトがスローされます。
使用
デザインビューで、パレットから図へフロー要素をドラッグします。
フロー要素内のプレースホルダに要素をドラッグします。フロー要素の同じ分岐に別の要素を追加する場合、分岐内の要素は自動的にシーケンス要素にラップされます。
フロー要素への分岐の追加
1 つ以上の分岐をフロー要素に追加できます。フロー要素には、ユーザーとの特別な相互作用スタイルがあります。追加する可能性がある次の分岐のプレースホルダが常に表示されます。新しい分岐を追加するには、要素をパレットから次の分岐のプレースホルダまでドラッグします。
フロー内の要素の順序の変更
フロー要素内のアクティビティーの順序を変更するには、次の手順に従います。
デザインビューで、フロー要素を右クリックし、「順序を変更」を選択します。
要素を選択し、「上へ移動」ボタンまたは「下へ移動」ボタンを使用して、コンテナ内での要素の位置を変更します。
ページの先頭へ
シーケンス要素の使用
シーケンス要素は、一連のアクティビティーをプロセスに入れ子にするのに使用します。シーケンス内のアクティビティーは、厳密な連続順序で実行されます。入れ子内の最後のアクティビティーが完了すると、プロセスの実行はビジネスプロセスに戻ります。
使用
パレットから図へシーケンス要素をドラッグします。
Sequence への子アクティビティーの追加
1 つ以上の子アクティビティーを Sequence に追加できます。シーケンス要素には、ユーザーとの特別な相互作用スタイルがあります。シーケンス要素は、追加する次のアクティビティーの、1 つ以上の有効なプレースホルダを常に表示します。新しい子アクティビティーを追加するには、パレットから、すぐに使用可能な次または前のアクティビティープレースホルダに要素をドラッグ & ドロップします。
シーケンス内の要素の順序の変更
シーケンス要素内のアクティビティーの順序を変更するには、次の手順に従います。
デザインビューで、シーケンス要素を右クリックし、「順序を変更」を選択します。
要素を選択し、「上へ移動」ボタンまたは「下へ移動」ボタンを使用して、コンテナ内での要素の位置を変更します。
ページの先頭へ
If 要素の使用
If アクティビティーは、ビジネスプロセスインスタンスの条件付き動作をサポートします。If アクティビティーは、If 要素と Else If 要素によって定義された条件分岐からなり、オプションとして Else 分岐を伴う場合があります。If 分岐と Else If 分岐の条件は、出現する順序で評価されます。実行時には、条件が真となる最初の分岐を取得し、その分岐は If アクティビティーに指定したアクティビティーを提供します。つまり、条件が真となる複数の Else If 分岐が存在しても、そのうちの最初の分岐だけが実行されます。
どの分岐も真と評価されない場合、Else パスが選択されます。Else 分岐が明示的に指定されていない場合、その分岐は空アクティビティーを含むと見なされます。If アクティビティーは、選択された分岐のアクティビティーが完了したときに完了します。
使用
デザインビューで、パレットから図へ If 要素をドラッグします。
図上で If 要素を選択します。IDE の下部に「BPEL マッパー」ウィンドウが表示されます。「BPEL マッパー」ウィンドウが表示されない場合は、If 要素を右クリックし、「BPEL マッパーを表示」を選択します。
BPEL マッパーを使用して If 要素の条件を指定します。詳細については、「 If アクティビティーシナリオ 」の節を参照してください。要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、手動で条件を指定することもできます。
(省略可)「プロパティー」ウィンドウで、If 要素の名前を入力します。
条件が真の場合に実行される要素を If 要素に追加します。入れ子にされた要素を構成します。別の要素を If 要素に追加する場合、入れ子にされた要素は自動的にシーケンス要素にラップされます。
次のようにして、そのほかの分岐 (Else If および Else) を追加します。
If 要素への Else If 分岐の追加
If 要素を右クリックし、「Else If を追加」を選択します。
Else If 要素に定義した条件が真の場合に実行されるアクティビティーを Else If に追加します。条件を定義するには、BPEL マッパー を使用します。
(省略可) さらに Else If アクティビティーを追加するために、「Else If を追加」を選択してアクティビティーを追加します。
If 要素への Else 分岐の追加
Else 分岐上で実行するアクティビティーを、スラッシュマークで示されたコネクタパスまでドラッグします。入れ子にされたアクティビティーを構成します。
Else If 分岐の順序の変更
デザインビューで、順序変更する Else If 分岐をドラッグし、別の Else If 分岐の横にあるプレースホルダにドロップします。
ページの先頭へ
ピック要素の使用
ピック要素はプロセスをブロックし、指定されたイベントの 1 つが発生するまで待機します。特定のイベントが発生したあと、そのイベントに関連したアクティビティーが実行されます。可能性があるイベントは、メッセージの到着、またはタイマーに基づいたアラームの到着です。これらのイベントの発生は、相互排他的です。1 つ以上のイベントが発生した場合、実行するアクティビティーの選択は、どのイベントが最初に発生したかによって決まります。
ピックアクティビティーには、メッセージ時とアラーム時の 2 つの分岐があります。最初に条件が満たされた (メッセージが受信されるか、指定されたタイマーが満了になった) 分岐が実行されます。図にピック要素を追加すると、この要素に自動的に 1 つのメッセージ時文が組み込まれ、ユーザーはその中に、プロセスがパートナーサービスから待つメッセージのプロパティーを指定します。それぞれのピック要素には、少なくとも 1 つのメッセージ時文を組み込む必要があります。アラーム時分岐にはタイマーが含まれており、これを使用してプロセスの待ち時間を指定できます。
使用
デザインビューで、パレットから図へピック要素をドラッグします。
メッセージ時分岐には、プロセスが待機するメッセージのプロパティーを構成します。構成は、 受信 要素の場合に似ています。
パレットから、実行される予定のアクティビティーをドラッグし、メッセージ時分岐の内部に配置します。アクティビティーのプロパティーを設定します。
(省略可) さらにメッセージ時分岐を追加するには、「追加」>「メッセージ時」をポップアップメニューから選択し、前述のようにそれらの分岐を構成します。
(省略可) 次の手順に従って、1 つ以上のアラーム時分岐を追加します。
アラーム時分岐の追加
ピック要素を右クリックし、ポップアップメニューから「追加」>「アラーム時」を選択します。
要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、タイマーを構成します。使用可能なオプションは次のとおりです。
アラーム型 - アラーム型の選択に使用します。型は次のいずれかです。
For – プロセスが待機する期間を指定します。
Until - プロセスの締切期限を指定します。
For/Until - 選択したアラーム型の締切期限または期間を構成するのに使用します。時間を指定するには、省略符号ボタン (「...」) をクリックします。BPEL マッパー を使用することもできます。
時間が満了したあと、実行するアクティビティーを見つけ、それをパレットからアラーム時要素内のプレースホルダにドラッグします。
(省略可) 上記のように、1 つまたは複数のアラーム時分岐を追加します。
ピック要素のプロパティー
要素を右クリックして「プロパティー」を選択すると呼び出される、ピック要素の「プロパティー」ウィンドウには、次のフィールドがあります。
「インスタンスを作成」。「 yes 」に設定した場合、指定したイベントが発生したときに新しいプロセスインスタンスが作成されます。新しいプロセスのインスタンスを開始しない場合は、デフォルトの「 N/A 」の値にしておきます。
名前. 要素の名前を指定するのに使用します。
ページの先頭へ
スコープ要素の使用
スコープアクティビティーは、実質的には独自の変数、フォルトハンドラとイベントハンドラ、および相互関係セットを持つことができる子アクティビティーの集合です。スコープアクティビティーは、子要素の動作のコンテキストを提供します。親スコープ用に定義された属性は、そのスコープの内部でローカルでの可視性を持ちます。たとえば、あるスコープ用に宣言された変数は、そのスコープと、入れ子になったすべてのスコープの内部でのみ可視となります。それらの変数は、そのスコープの子アクティビティーに使用できます。
使用
デザインビューで、パレットから図へスコープ要素をドラッグします。
要素を右クリックし、ポップアップメニューから「追加」を選択して、次のものを追加します。
デザインビューで、要素をパレットからドラッグし、スコープ要素内に配置します。
要素を構成します。
(省略可) 要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、スコープ要素の名前を指定します。
変数
BPEL プログラミングにおける変数は、ほかのプログラミング言語と同じように機能し、一時的な値を保持したり、式の一部になったり、外部のパートナーにパラメータとして渡されたりします。通常、パートナーサービスと送受信するすべてのメッセージに変数が必要です。BPEL デザイナーは、次の型の変数をサポートしています。
WSDL メッセージ型。 これらの変数は、プロセスによってインポートされた WSDL ファイルの中で定義されている Web サービスメッセージ型に対応します。BPEL ファイル (.bpel ) では、これらの変数はメッセージ型 (messageType ) 属性の値を指定する必要があります。メッセージ型変数は、プロセスとそのパートナーサービス間との対話でのデータを保持するために使用されます。
XML スキーマ型。 これらの変数は、単純 または複合 XML スキーマデータ型に対応します。XML スキーマ型自体は、プロセスへインポートされた XML スキーマファイル ( .xsd ) または WSDL ファイルの中で定義されます。BPEL ファイルでは、この型の変数は、型 ( type ) 属性の値を指定する必要があります。
XML スキーマ要素。 これらの変数は、XML スキーマ要素に対応します。XML スキーマ要素自体は、プロセスへインポートされた XML スキーマファイル ( .xsd ) または WSDL ファイルの中で定義されます。BPEL ファイルでは、この型の変数は、要素 ( element ) 属性の値を指定する必要があります。
組み込み型 。この型の変数は、XML スキーマ仕様に定義された標準の単純型です。
大域変数とローカル変数
プロセスのルートで定義された変数は大域変数であり、これらはプロセス全体に渡って大域的な可視性を持ちます。特定のスコープ内で定義された変数は、そのスコープと、そのスコープの入れ子になっているスコープの内部でのみ可視となります。これらの変数は、ローカル変数と呼ばれます。内部のスコープ要素について定義された変数は、それより上にある同じ名前で定義された変数を隠すことができます。
変数の名前は、同じスコープ内で定義されているすべての変数の名前の間で一意の名前にしてください。
変数を定義するには、次の手順に従います。
プロセス要素またはスコープ要素を右クリックして、「追加」>「変数」を選択します。
「新規変数の作成」ダイアログで、変数の名前を指定します。名前は、必ずスコープ要素内で一意の名前にします。
新しい変数の型に対応するノードを展開し、型を選択します。次のオプションがあります。
組み込み型 。「組み込み型」ノードを展開し、型の名前を選択して「了解」をクリックします。
メッセージ型 。.wsdl ファイルノードを展開し、メッセージ型を選択して「了解」をクリックします。
XML スキーマ . 埋め込まれたスキーマを含んでいる .xsd ファイルノードまたは .wsdl ファイルを展開します。「大域複合型」、「大域単純型」、「大域要素」のいずれかのノードを展開し、適切な型を選択して「了解」をクリックします。
わかりやすいように、大域型の変数は太字で表示されます。
(省略可) 「インポートしたファイルのみを表示」チェックボックスを選択解除し、インポートされなかった WSDL ファイルと XML スキーマファイルの内容を表示します。
「了解」をクリックします。
デフォルトでは、「新規変数の作成」ダイアログには、すでにプロセスで参照されたファイルだけが表示されます。ただし、プロセスにまだインポートされていないそのほかの WSDL ファイルや XSD ファイルがプロジェクトに含まれている可能性もあります。インポートされていないファイルで定義されている新しい変数の型を選択すると、必要なインポートが自動的に BPEL プロセスに追加されます。
「 ナビゲータ 」ウィンドウから変数を追加することもできます。変数を追加するには、「ナビゲータ」で「BPEL 論理ビュー」を選択し、BPEL モジュールプロジェクトのノードを展開して、変数ノードを右クリックし、「変数を追加」を選択します。
変数を編集するには、次の手順に従います。
「ナビゲータ」ウィンドウで、「BPEL 論理ビュー」を選択します。
BPEL モジュールプロジェクトのノード、「変数」ノードの順に展開し、編集する変数をダブルクリックします。
変数の「プロパティーエディタ」ダイアログで変数の型と名前を変更します。
「了解」をクリックします。
ページの先頭へ
While 要素の使用
While 要素は、1 つ以上のアクティビティーを各反復の開始時に特定の条件が真である限り、繰り返し実行するのに使用します。While 要素はほかの要素を含んでおり、それらの要素はユーザーが指定した成功基準が満たされている間、繰り返されます。指定した条件が偽になると、リストされたどのアクティビティーも実行されなくなります。
注: While 要素は最初に条件の妥当性を検査し、そのあとで反復アクティビティーを実行します。逆に、 Repeat Until 要素は最初にアクティビティーを実行し、そのあとで条件の妥当性を検査します。
使用
デザインビューで、パレットから図へ While 要素をドラッグします。
繰り返し実行されるアクティビティーをドラッグし、While 要素の内部に配置します。必要な場合は、アクティビティーのプロパティーを設定します。
「プロパティー」ウィンドウを使用して、While 要素の名前と条件を指定します。条件を手動で入力したり、 BPEL マッパー を使用して条件を生成したりできます。「BPEL マッパー」ウィンドウを開くには、「ウィンドウ」>「BPEL マッパー」を選択するか、図の中で While 要素を右クリックして「BPEL マッパーを表示」を選択します。
ページの先頭へ
プロセス要素の使用
プロセス要素はすでに図に存在します。「新規プロジェクト」ウィザードでは、プロセス要素を少なくとも 1 つ含む、骨格だけの BPEL ファイルを常に作成します。したがって、プロセス要素はパレットの一部ではありません。プロセス要素は BPEL ファイルの最小要件であるため、存在しているものと見なされます。
次のスクリーンショットは、 旅行予約サービス のサンプル内のプロセスの表現を示しています。
使用
プロセス要素を右クリックし、ポップアップメニューから「追加」を選択して、次のものを追加します。
要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、プロセス要素の名前とターゲット名前空間を指定します。
プロセス
BPEL プロセスには、同期と非同期があります。同期 BPEL プロセスは、プロセスが完了して結果がクライアントに返されるまで、クライアント (プロセスを使用しているクライアント) をブロックします。非同期プロセスはクライアントをブロックしません。非同期プロセスはは、結果がある場合、コールバックを使用して結果を返します。通常は、時間が長くかかるプロセスに非同期プロセスを使用し、比較的短い時間で結果を返すプロセスに同期プロセスを使用します。BPEL プロセスが非同期 Web サービスを使用する場合、通常はそのプロセス自体も非同期です。
ページの先頭へ
Repeat Until 要素の使用
Repeat Until 要素は、各反復の実行後に特定の条件が真である限り、1 つ以上のアクティビティーを繰り返し実行するのに使用します。Repeat Until 要素はほかの要素を含んでおり、それらの要素はユーザーが指定した成功基準が満たされている間、繰り返されます。指定した条件が真であると、列挙されたアクティビティーが 1 回実行されます。
注: Repeat Until 要素は最初に反復アクティビティーを実行し、そのあとで条件の妥当性を検査します。逆に、 While 要素は最初に条件の妥当性を検査し、そのあとでアクティビティーを実行します。
使用
デザインビューで、パレットから Repeat Until 要素を図へドラッグします。
繰り返し実行されるアクティビティーをドラッグし、Repeat Until 要素の内部に配置します。必要な場合は、アクティビティーのプロパティーを設定します。
「プロパティー」ウィンドウを使用して、Repeat Until 要素の名前と条件を指定します。条件を手動で入力したり、 BPEL マッパー を使用して条件を生成したりできます。「BPEL マッパー」ウィンドウを開くには、「ウィンドウ」>「その他」>「BPEL マッパー」を選択するか、図の中で Repeat Until 要素を右クリックして「BPEL マッパーを表示」を選択します。
ページの先頭へ
For Each 要素の使用
For Each 要素は、格納しているスコープアクティビティーを N+1 回だけ繰り返して実行するのに使用します。ここで、N は、最終カウンタ値から開始カウンタ値を減算した値です。
使用
デザインビューで、パレットから図へ For Each 要素をドラッグします。
繰り返し実行される要素をパレットから For Each 要素に追加します。追加した要素は、自動的にスコープ要素にラップされます。
For Each 要素を右クリックして「プロパティー」を選択し、「プロパティー」ウィンドウを呼び出します。
For Each 要素の「プロパティー」ウィンドウは、次のプロパティーを含みます。
名前 。For Each 要素の名前を指定します。
カウンタ変数名 。カウンタ変数名を宣言します。
開始カウンタ値 。開始カウンタ値を設定します。BPEL マッパー を使用して、整数値式を生成します。
最終カウンタ値 。最終カウンタ値を設定します。BPEL マッパー を使用して、整数値式を生成します。
For Each アクティビティーが開始されると、「開始カウンタ値」内および「最終カウンタ値」内の式が、最初に 1 度だけ評価されます。つまり、2 つの値が返されると、そのアクティビティーが存続する間、それらの値は定数として残ります。開始カウンタ値が最終カウンタ値より大きい場合、反復は実行されません。
完了条件 (省略可)。整数値式を指定します。直接囲まれた各アクティビティーの実行後、完了したアクティビティーの数がこの値に対して検査されます。完了したアクティビティーの数が、指定された式の値と等しい場合、それ以上のアクティビティーは開始されません。式の値が、可能な反復数より大きい場合、反復は開始されません。
カウント完了分岐のみ (省略可)。このチェックボックスを選択すると、実行環境は正常に完了した分岐だけをカウントします。このチェックボックスの選択を解除すると、正常に完了したかどうかに関係なくすべての分岐がカウントされます。
ページの先頭へ
終了要素の使用
このアクティビティーは、プロセス内、構造化アクティビティー内、またはハンドラ内のいずれかで、アクティビティーまたはプロセスの実行を停止するのに使用します。
使用
デザインビューで、パレットから終了要素を図へドラッグします。
注: BPEL 実行環境は、フロー要素とアラーム時要素の中、およびイベントハンドラ要素のイベント時子の中では、終了をサポートしません。
ページの先頭へ