FeaturesPluginsDocs & SupportCommunityPartners

BPEL デザイナー開発者ガイド: パレット要素の使用


目次

BPEL デザイナー開発者ガイド

次の各節で、表示の順に説明を行います。

  • 特定のパレット要素を使用する状況。
  • オーケストレーションデザイナーのコンテキスト内でのパレット要素の使用

呼び出し要素の使用



いつ使用するか使用

呼び出し要素により、ビジネスプロセスは、パートナーによって提供されるポート型に対する単方向操作または要求と応答の操作を起動できます。呼び出し要素は、ビジネスプロセスがパートナーにメッセージを送信できるようにします。操作は、パートナーの WSDL 内で定義されます。

使用

呼び出し要素を使用するには、次の手順に従います。

  1. パレットから図へ呼び出し要素をドラッグ & ドロップします。
  2. 次のいずれかの操作を実行します。
    • メッセージフローを直接描きます。または (より複雑な場合)
    • 呼び出し要素をダブルクリックします。次のものを調査または変更可能なダイアログが開きます。
      • 呼び出し要素の名前
      • 呼び出されるパートナーリンク
      • 呼び出し要素に関連付けられた操作
      • 呼び出し要素に関連付けられた入力変数
      • 出力変数
        入力変数と出力変数の両方をこのダイアログで作成したり、参照したりできます。

      呼び出し要素のプロパティーエディタのメインタブ

ほかの要素のプロパティーエディタと同様に、「新規変数」ダイアログまたは「変数の選択」を使用して、呼び出し要素の変数を変更できます。要素に使用されている変数がない場合 (たとえば、出力変数がない場合)、その変数の「新規変数」ダイアログと「変数の選択」はありません。

Web サービスアクティビティーのプロパティーエディタで「参照」ボタンをアクティブにした場合、「入力変数の選択」ダイアログと「出力変数の選択」ダイアログでは、使用可能な変数のリストが、構成している Web サービス操作にとって適切な型の変数に限定されます。これにより、有効な BPEL をデザインビューで開発しやすくなります。

相互関係

アウトバウンド操作を処理する呼び出しアクティビティーの相互関係セットは、指定された相互関係セットインスタンス内に格納されたデータと整合するデータが送信メッセージに含まれていることを妥当性検査するために使用されます。

呼び出し要素プロパティーエディタのタブでは、相互関係セットを調べたり、指定したりできます。

「相互関係」タブ

このタブには次のものが表示されます。

  • 相互関係セットの名前
  • 相互関係子の開始
  • 相互関係に関係付けられたパターン

「追加」ボタンをクリックすると、相互関係セットを追加できます。

相互関係セットの定義、および要素への相互関係セットの追加

相互関係は、特定のプロセスインスタンスとそのパートナーサービスの対応インスタンスとの間の変換を BPEL 実行環境が追跡するための手段です。相互関係は、受信メッセージと送信メッセージを相互に関係付けて、それらのメッセージを適切にルーティングするために BPEL 実行環境が使用する主キーと考えることができます。

相互関係セットは、メッセージを受信するための正しいプロセスを識別するために BPEL 実行環境が使用する、プロパティーの相互関係です。相互関係セット内の各プロパティーは、プロパティー別名を通じて、1 つ以上のメッセージタイプ内の要素にマップされます。

相互関係セットを定義するには、パートナーサービスからのメッセージに、パートナー WSDL ファイル内で定義されたプロパティーとプロパティー別名が必要です。WSDL エディタまたはナビゲータを使用すると、WSDL ファイルにプロパティーおよびプロパティー別名を追加できます。

プロジェクトに関連付けられた WSDL ファイルにプロパティーとプロパティー別名を追加したあと、プロセス要素に相互関係セットを定義できます。

相互関係セットを定義するには、次の手順に従います。

  1. デザインビューで、プロセス要素を右クリックし、「追加」>「相互関係セットを追加」を選択します。「相互関係セットを追加」ダイアログが表示されます。
  2. 相互関係セットの名前を変更し、「追加」をクリックしてプロパティーを追加します。
  3. 「プロパティーの選択」ダイアログで、セットに追加するプロパティーを選択し、「了解」をクリックします。

前述のとおりに相互関係セットを定義したあと、相互関係セットを呼び出し、受信、または返信のいずれかの要素に追加します。相互関係セットをピックアクティビティーのメッセージ時分岐へ関連付けたり、イベントハンドラコンテナ内のイベント時要素へ関連付けたりすることもできます。

ナビゲータに表示される相互関係セットを次に示します。

ナビゲータ内の相互関係セット

要素に相互関係セットを追加するには、次の手順に従います。

  1. デザインビューで、要素 (呼び出し、受信、返信、ピックのメッセージ時分岐、またはイベントハンドラコンテナ内のイベント時要素) をダブルクリックします。
  2. プロパティーエディタで、「相互関係」タブを選択し、「追加」をクリックします。
  3. 「相互関係セットの選択」ダイアログボックスで、相互関係セットを選択して「了解」をクリックします。
  4. (省略可) 必要に応じてさらに相互関係セットを追加し、「了解」をクリックします。

先頭へ


受信要素の使用



いつ使用するか

受信要素によって、ビジネスプロセスは特定のメッセージの着信のブロック待機できます。

使用

  1. 図へ受信要素をドラッグ & ドロップします。
  2. 受信要素をダブルクリック (または右クリックして「編集」を選択) すると、モード付きプロパティーエディタが開き、次のものを変更できます。ここでは、旅行予約サービスサービスからの例を示します。
    • 要素の名前 (ReceiveItinerary)
    • パートナーリンク (Travel)
    • 受信要素に関連付けられた操作 (buildItinerary)
    • 受信要素への入力変数 (ItineraryIn)このプロセスに関連付けられたほかの変数を選択できる「入力変数の選択」を開くには、入力変数の「参照」を選択します。「作成」を選択して、新しい変数を作成します。
    • 「インスタンスを作成」。選択すると、関連付けられたメッセージの着信時に BPEL プロセスのインスタンスが作成されます。

      受信要素のプロパティーエディタのメインタブ

  3. 受信要素を右クリックして「プロパティー」を選択すると、「プロパティー」ウィンドウが開きます。「プロパティー」ウィンドウには、プロパティーエディタにリストされた項目のほかに次のものがあります。
    • 「ポート型」。パートナーリンクと操作を指定すると、「ポート型」フィールドの値が入力されます。

      Receive の「プロパティー」ウィンドウ

相互関係

受信要素プロパティーエディタの「相互関係」タブでは、相互関係セットを調べたり、指定したりできます。

「相互関係」タブ

このタブには次のものが表示されます。

  • 相互関係セットの名前
  • 相互関係子の開始

「追加」ボタンをクリックすると、相互関係セットを追加できます。詳細については、「相互関係セットの定義、および要素への相互関係セットの追加」を参照してください。

先頭へ


返信要素の使用



いつ使用するか

このアクティビティーは、操作を開始した同じパートナーにプロセスからメッセージを返すのに使用します。

このアクティビティーは同期 (要求と応答) 操作で使用され、プロセスを呼び出した受信アクティビティーと同じパートナー、ボート型、および操作を指定します。

使用

  1. パレットから図上の適切な場所に返信要素をドラッグします。
  2. 返信要素をダブルクリック (または右クリックして「編集」を選択) して、返信要素のプロパティーエディタを開きます。プロパティーエディタでは、次のものを指定します。
    • 要素の名前
    • パートナーリンク
    • 操作
    • 応答の種類:「正常応答」または「フォルト応答」
      • 正常応答のメッセージタイプに 返信要素を使用する場合は、「正常応答」を選択します。任意で出力変数を指定します。新しい出力変数を作成するか、既存の変数を参照します。
      • 返信要素をフォルトメッセージの送信に使用する場合は、「フォルト応答」を選択します。フォルト名を選択し、任意でフォルト変数を指定します。新しいフォルト変数を作成するか、既存の変数を参照します。

      Reply プロパティーエディタ

  3. 返信要素を右クリックして「プロパティー」を選択すると、「プロパティー」ウィンドウが開きます。「プロパティー」ウィンドウには、プロパティーエディタにリストされた項目のほかに次のものがあります。
    • 「ポート型」。パートナーリンクと操作を指定すると、「ポート型」フィールドの値が入力されます。

      Reply の「プロパティー」ウィンドウ

相互関係

返信要素プロパティーエディタの「相互関係」タブでは、相互関係セットを調べたり、指定したりできます。

「相互関係」タブ

このタブには次のものが表示されます。

  • 相互関係セットの名前
  • 相互関係子の開始

「追加」ボタンをクリックすると、相互関係セットを追加できます。詳細については、「相互関係セットの定義、および要素への相互関係セットの追加」を参照してください。

先頭へ


パートナーリンク要素の使用



いつ使用するか

パートナーリンクはビジネスプロセスと対話するパーティを識別します。各リンクはパートナーリンク型とロール名によって定義されます。

パートナーリンク型とロール

型は、各サービスが対話で演じるロールを定義することによって、プロセスとそのパートナーとの間の関係を決定します。関係は、メッセージを受信するために各サービスが提供するポート型を指定することによって、さらに詳細に決定されます。各ロールは WSDL ファイル内で 1 つのポート型を指定します。

ロールは、このプロセスまたはそのパートナーの対話のアスペクトを決定します。同期操作では、同じ操作を使用して結果が返されるので、1 つのロールを使用します。非同期操作では、パートナーのロールがコールバック中に切り替わるので、2 つのロールを使用します。

ただし、パートナーリンクとパートナーリンク型は混同しやすい場合があります。

  • パートナーリンクの型およびロールは、BPEL 仕様で定義された特別な WSDL 拡張です。このため、これらはプロセスの BPEL ファイルではなく WSDL ファイルで定義されます。
  • パートナーリンクは BPEL 2.0 要素です。これはプロセスの BPEL ファイルで定義されます。

パートナーリンクの型は、パートナーリンク要素定義の必要条件です。パートナーリンク要素は、前述したとおり WSDL で定義される必要のある特定のパートナーリンクの型とロールを参照することによってのみ定義されます。

使用

BPEL プロジェクトにパートナーリンク要素を追加するには、次のいずれかを実行します。

  • パレットから図にパートナーリンク要素をドラッグします。
  • 「プロジェクト」ウィンドウ内の同じプロジェクトから図に WSDL ファイルノードをドラッグします。
  • 「プロジェクト」ウィンドウの別のプロジェクトから、図に WSDL ファイルノードをドラッグします。
  • 「プロジェクト」ウィンドウの EJB プロジェクトから、図に Web サービスノードをドラッグします。

注: Web サービスノードをドラッグすると、BPEL デザイナーは、Application Server から WSDL ファイルを取得します。WSDL ファイルを正常に取得するには、Application Server が実行されていて、かつ Web サービスプロジェクトが配備されている必要があります。

パートナーリンク要素、WSDL ファイルノード、または Web サービスノードを図にドラッグすると、PartnerLink プロパティーエディタが表示されます。

PartnerLink プロパティーエディタ

PartnerLink プロパティーエディタにより、BPEL プロセスのパートナーリンクを確立できます。

PartnerLink プロパティーエディタを呼び出すには、図でパートナーリンク要素をダブルクリックするか、パートナーリンク要素を右クリックして「編集」を選択します。PartnerLink プロパティーエディタは、パートナーリンク要素、WSDL ファイルノード、または Web サービスノードを図にドラッグしても表示されます。

PartnerLink プロパティーエディタでは、次のものを指定できます。

  • パートナーリンク名
  • パートナーリンクに関連付ける WSDL ファイル

さらに、既存のパートナーリンク型を使用するか、新しいパートナーリンク型を作成するかを選択できます。

選択した WSDL ファイルにパートナーリンク型が含まれている場合、「既存のパートナーリンク型を使用」オプションが選択され、WSDL ファイル内で見つかったパートナーリンク型が「パートナーリンク型」ドロップダウンリストに入ります。既存のパートナーリンク型のいずれかを使用したり、または「新規作成したパートナーリンク型を使用」オプションを選択して新しいパートナーリンク型を作成したりできます。

WSDL ファイルにパートナーリンク型が含まれていない場合は、「新規作成したパートナーリンク型を使用」オプションが選択されます。

  • 「既存のパートナーリンク型を使用」
    • ドロップダウンリストからパートナーリンク型を選択します。「自分のロール」、「パートナーのロール」のいずれかまたは両方のフィールドに、自動的に値が入ります。
    • ビジネスプロセス自体 (「自分のロール」) とパートナー (「パートナーのロール」) のロールを入れ替えるには、「ロールを交換」ボタンをクリックします。
  • 「新規作成したパートナーリンク型を使用」
    • パートナーリンク型の名前を指定します。
    • ビジネスプロセス自体 (「自分のロール」) とパートナー (「パートナーのロール」) のいずれかまたは両方のロールを指定します。これを行うには、次のようにします。
      • 適切なチェックボックスを選択します。
      • ロール名を指定します。
      • ドロップダウンリストからポート型を選択します。

PartnerLink プロパティーエディタ

要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、パートナーリンクのプロパティーを確認したり、変更したりできます。

先頭へ


空要素の使用



いつ使用するか

空要素には、関連付けられた操作はありません。通常、空要素はプレースホルダとして使用されたり、フォルトの捕捉と抑止のために使用されたり、同時に実行されるフローアクティビティー内で同期アクションを支援するために使用されます。

空要素は、ほかの開発者がビジネスプロセスを実装するとき、またはフローアクティビティー内の複数のアクティビティーを同期する必要があるときに使用できます。

使用

パレットから図の適切なパスに空要素をドラッグします。

先頭へ


待機要素の使用



いつ使用するか

待機要素は、時間単位または期間に基づく待機条件を指定するのに使用します。

使用

図の適切なパスに待機要素をドラッグします。ほかの要素と同様に、プロセスフロー内の正しい位置に配置してください。そうしないと、図に要素が表示されなくなります。

図で要素を右クリックして「プロパティー」を選択し、「プロパティー」ウィンドウを呼び出します。「プロパティー」ウィンドウでは、次のものを指定できます。

  • 要素の名前
  • 要素の種類。使用可能なオプションは次のとおりです。
    • For – プロセスが待機する期間を指定します。
    • Until – プロセスが待機する特定の期間を指定します。
  • 日付/期間。省略符号ボタン (「...」) をクリックすると、要素の日付または期間を指定できるダイアログボックスが呼び出されます。

    Wait の「プロパティー」ウィンドウ

先頭へ


スロー要素の使用



いつ使用するか

このアクティビティーは、内部フォルトを通知するのに使用します。

使用

この要素のプロパティーの定義では、フォルト名とフォルト変数を指定できます。これらの詳細を、その種の例外を処理するよう構成されたフォルトハンドラへ渡すことができます。

スロー要素のプロパティー

スロー要素のプロパティーは、要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで構成できます。オプションは次のとおりです。

  • 名前
  • フォルト名。省略符号ボタン (「...」) をクリックすると、「フォルト名」ダイアログボックスが呼び出され、システムフォルトおよび WSDL ファイルと BPEL ファイルで定義されたフォルトを含むリストからフォルトを選択できます。
  • フォルト変数。BPEL ファイル内ですでに宣言されていて、フォルトメッセージが格納される変数の名前を指定するには省略符号ボタン (「...」) をクリックします。

    Throw の「プロパティー」ウィンドウ

先頭へ


代入要素の使用



いつ使用するか

代入アクティビティーは変数に値を割り当てます。データを 1 つの変数から別の変数にコピーしたり、式の構築や値の計算を行ったり、変数に新しいデータを格納したりするには、代入要素を使用します。式は、単純な計算を実行したり、メッセージ選択、プロパティー、およびリテラル定数を操作して変数の新しい値を生成したりするために必要にです。Assign アクティビティーには、1 つ以上の初歩的な割り当てを含めることができます。

使用

Assign アクティビティーのコピー規則の定義や式の追加には、BPEL マッパーを使用します。詳細については、「Assign アクティビティーシナリオ」の節を参照してください。

代入要素のプロパティー

要素を右クリックして「プロパティー」を選択すると呼び出される、代入要素の「プロパティー」ウィンドウには、次の 2 つのプロパティーがあります。

  • 名前。要素の名前です。
  • 割り当て数。要素に指定された割り当て規則の数です。

    Assign の「プロパティー」ウィンドウ

先頭へ


フロー要素の使用



いつ使用するか

フロー要素は、同時に (並列に) 実行される一連のアクティビティーを定義するのに使用します。

Flow アクティビティーは、個々の制御パスまたは分岐に分離されるほかのアクティビティーを含む、構造化されたアクティビティーです。必要な数だけパスをアクティビティーに埋め込むことができ、それらのパスはすべて、同時に実行されます。

実行中に、各パスは同時に実行され、それぞれのパス上のアクティビティーはリンクのソースでない限り、現れる順に実行されます。アクティビティーがリンクのソースである場合、リンクの条件とアクティビティーの結合条件が評価される必要があります。アクティビティーを引き起こすリンク条件が結合条件のリンク条件と衝突する場合、そのアクティビティーに対してフォルトがスローされます。

使用

パレットから図へフロー要素をドラッグします。

フロー要素内のプレースホルダに要素をドラッグします。フロー要素の同じ分岐に別の要素を追加する場合、分岐内の要素は自動的にシーケンス要素にラップされます。

フロー要素への分岐の追加

1 つ以上の分岐をフロー要素に追加できます。フロー要素には、ユーザーとの特別な相互作用スタイルがあります。フロー要素は、追加する次の分岐のプレースホルダを常に表示します。新しい分岐を追加するには、パレットから、すぐに使用可能な「次の分岐」のプレースホルダに要素をドラッグします。

先頭へ


シーケンス要素の使用



いつ使用するか

シーケンス要素は、一連のアクティビティーをプロセスに入れ子にするのに使用します。シーケンス内のアクティビティーは、厳密な連続順序で実行されます。入れ子内の最後のアクティビティーが完了すると、プロセスの実行はビジネスプロセスに戻ります。

使用

図にシーケンス要素をドラッグ & ドロップします。

Sequence への子アクティビティーの追加

1 つ以上の子アクティビティーを Sequence に追加できます。シーケンス要素には、ユーザーとの特別な相互作用スタイルがあります。シーケンス要素は、追加する次のアクティビティーの、1 つ以上の有効なプレースホルダを常に表示します。新しい子アクティビティーを追加するには、パレットから、すぐに使用可能な次または前のアクティビティープレースホルダに要素をドラッグ & ドロップします。

先頭へ


If 要素の使用



いつ使用するか

If アクティビティーは、ビジネスプロセスインスタンスの条件付き動作をサポートします。If アクティビティーは、If 要素と ElseIf 要素によって定義された条件分岐からなり、オプションとして Else 分岐を伴う場合があります。If 分岐と ElseIf 分岐の条件は、出現する順序で評価されます。実行時には、条件が真となる最初の分岐を取得し、その分岐は If アクティビティーに指定したアクティビティーを提供します。つまり、条件が真となる複数の ElseIf 分岐が存在しても、そのうちの最初の分岐だけが実行されます。

どの分岐も真と評価されない場合、Else パスが選択されます。Else 分岐が明示的に指定されていない場合、その分岐は空アクティビティーを含むと見なされます。If アクティビティーは、選択された分岐のアクティビティーが完了したときに完了します。

使用

  1. デザインビューで、パレットから図へ If 要素をドラッグします。
  2. 図上で If 要素を選択します。IDE の下部に「BPEL マッパー」ウィンドウが表示されます。「BPEL マッパー」ウィンドウが表示されない場合は、メインメニューから「ウィンドウ」>「BPEL マッパー」を選択します。
  3. BPEL マッパーを使用して要素の条件を指定します。詳細については、「If アクティビティーシナリオ」の節を参照してください。要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、手動で条件を指定することもできます。
  4. (省略可)「プロパティー」ウィンドウで、If 要素の名前を入力します。

    If の「プロパティー」ウィンドウ

  5. 条件が真の場合に実行される要素を If 要素に追加します。入れ子にされた要素を構成します。別の要素を If 要素に追加する場合、入れ子にされた要素は自動的にシーケンス要素にラップされます。
  6. 次のようにして、そのほかの分岐 (ElseIf および Else) を追加します。

If 要素への ElseIf 分岐の追加

  1. If 要素を右クリックし、「ElseIf を追加」を選択します。
  2. ElseIf に定義した条件が真の場合に実行されるアクティビティーを ElseIf に追加します。条件を定義するには、BPEL マッパー を使用します。
  3. (省略可) さらに ElseIf アクティビティーを追加するために、「Else If を追加」を選択してアクティビティーを追加します。

If 要素への Else 分岐の追加

Else 分岐上で実行するアクティビティーを、スラッシュマークで示されたコネクタパスまでドラッグします。入れ子にされたアクティビティーを構成します。

ElseIf 分岐の順序変更

デザインビューで、順序変更する ElseIf 分岐をドラッグし、別の ElseIf 分岐の横にあるプレースホルダにドロップします。

先頭へ


ピック要素の使用



いつ使用するか

ピック要素はプロセスをブロックし、指定されたイベントの 1 つが発生するまで待機します。特定のイベントが発生したあと、そのイベントに関連したアクティビティーが実行されます。可能性があるイベントは、メッセージの到着、またはタイマーに基づいたアラームの到着です。これらのイベントの発生は、相互排他的です。1 つ以上のイベントが発生した場合、実行するアクティビティーの選択は、どのイベントが最初に発生したかによって決まります。

ピックアクティビティーは、メッセージ時とアラーム時という 2 つの分岐を提供します。最初に条件が満たされた (メッセージが受信されるか、指定されたタイマーが満了になった) 分岐が実行されます。図にピック要素を追加すると、この要素に自動的に 1 つのメッセージ時文が組み込まれ、ユーザーはその中に、プロセスがパートナーサービスから待つメッセージのプロパティーを指定します。それぞれのピック要素には、少なくとも 1 つのメッセージ時文を組み込む必要があります。アラーム時分岐にはタイマーが含まれており、これを使用してプロセスの待ち時間を指定できます。

使用

  1. デザインビューで、パレットから図へピック要素をドラッグします。
  2. メッセージ時分岐には、プロセスが待機するメッセージのプロパティーを構成します。構成は、受信要素の場合に似ています。
  3. パレットで、実行するアクティビティーを見つけます。そのアクティビティーをパレットからドラッグし、メッセージ時分岐内に配置します。そのアクティビティーのプロパティーを構成します。
  4. (省略可) さらにメッセージ時分岐を追加するには、「追加」>「メッセージ時」をポップアップメニューから選択し、前述のようにそれらの分岐を構成します。
  5. (省略可) 次の手順に従って、1 つ以上のアラーム時分岐を追加します。

アラーム時分岐の追加

  1. ピック要素を右クリックし、ポップアップメニューから「追加」>「アラーム時」を選択します。
  2. 要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、タイマーを構成します。使用可能なオプションは次のとおりです。
    • 型 - アラームの型を選択するのに使用します。型は次のいずれかです。
      • For – プロセスが待機する期間を指定します。
      • Until - プロセスの締切期限を指定します。
    • 日付/期間 - 選択したアラーム型の締切期限または期間を構成するのに使用します。時間を指定するには、省略符号ボタン (「...」) をクリックします。BPEL マッパーを使用することもできます。
  3. 時間が満了したあと、実行するアクティビティーを見つけ、それをパレットからアラーム時要素内のプレースホルダにドラッグします。
  4. (省略可) 前述のように、1 つ以上のアラーム時分岐を追加します。

ピック要素のプロパティー

要素を右クリックして「プロパティー」を選択すると呼び出される、ピック要素の「プロパティー」ウィンドウには、次のフィールドがあります。

  • 「インスタンスを作成」。「yes」に設定した場合、指定したイベントが発生したときに新しいプロセスインスタンスが作成されます。新しいプロセスのインスタンスを開始しない場合は、デフォルトの「N/A」の値にしておきます。
  • 名前。要素の名前を指定するのに使用します。

Pick の「プロパティー」ウィンドウ

先頭へ


スコープ要素の使用



いつ使用するか

スコープアクティビティーは実質的には子アクティビティーの集合であり、独自のメッセージ交換、変数、フォルト、およびイベントハンドラを持つことができます。スコープアクティビティーは、子要素の動作のコンテキストを提供します。親スコープ用に定義された属性は、そのスコープの内部でローカルでの可視性を持ちます。たとえば、あるスコープ用に宣言された変数は、そのスコープと、入れ子になったすべてのスコープの内部でのみ可視となります。それらの変数は、そのスコープの子アクティビティーに使用できます。

使用

  1. デザインビューで、パレットから図へスコープ要素をドラッグします。
  2. 要素を右クリックし、ポップアップメニューから「追加」を選択して、次のものを追加します。
  3. 要素を図からスコープにドラッグします。
  4. 要素を構成します。
  5. (省略可) 要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、スコープ要素の名前を指定します。

変数

変数は、ほかのソフトウェア言語と同じように BPEL プログラミングで使用されます。変数は一時的な値を保持するか、式の各部分を形成するか、パラメータとして外部パートナーへ渡されます。通常、パートナーサービスと送受信するすべてのメッセージに変数が必要です。BPEL デザイナーは、次の型の変数をサポートしています。

  • メッセージ型。この型の変数は、プロセスによってインポートされた WSDL ファイルの中で定義されている Web サービスメッセージ型に対応します。BPEL ファイルでは、これらの変数はメッセージ型 (messageType) 属性の値を指定する必要があります。メッセージ型変数は、プロセスとそのパートナーサービス間との対話でのデータを保持するために使用されます。
  • XML スキーマ型。この型の変数は、単純または複合 XML スキーマデータ型に対応します。XML スキーマ型自体は、プロセスへインポートされた XML スキーマファイル (.xsd) または WSDL ファイルの中で定義されます。BPEL ファイルでは、この型の変数は、型 (type) 属性の値を指定する必要があります。
  • XML スキーマ要素。この型の変数は、XML スキーマ要素に対応します。XML スキーマ要素自体は、プロセスへインポートされた XML スキーマファイル (.xsd) または WSDL ファイルの中で定義されます。BPEL ファイルでは、この型の変数は、要素 (element) 属性の値を指定する必要があります。
  • 組み込み型。この型の変数は、XML スキーマ仕様に定義された標準の単純型です。

大域変数とローカル変数

プロセスのルートで定義された変数は大域変数であり、これらはプロセス全体に渡って大域的な可視性を持ちます。特定のスコープ内で定義された変数は、そのスコープと、そのスコープの入れ子になっているスコープの内部でのみ可視となります。これらの変数は、ローカル変数と呼ばれます。内部のスコープ要素について定義された変数は、それより上にある同じ名前で定義された変数を隠すことができます。

変数の名前は、同じスコープ内で定義されているすべての変数の名前の間で一意の名前にしてください。

変数を定義するには、次の手順に従います。

  1. プロセス要素またはスコープ要素を右クリックし、「追加」>「変数を追加」を選択します。
  2. 「新規変数の作成」ダイアログで、変数の名前を指定します。名前は、必ずスコープ要素内で一意の名前にします。
  3. 次のいずれかの型を選択します。
    • メッセージ型.wsdl ファイルノードを展開し、メッセージ型を選択して「了解」をクリックします。
    • XML スキーマ単純型。埋め込まれたスキーマを含んでいる .xsd ファイルノードまたは .wsdl ファイルを展開します。「単純型」フォルダを展開し、単純型を選択して「了解」をクリックします。
    • XML スキーマ複合型。埋め込まれたスキーマを含んでいる .xsd ファイルノードまたは .wsdl ファイルを展開します。「複合型」フォルダを展開し、複合型を選択して「了解」をクリックします。
    • XML スキーマ要素型。埋め込まれたスキーマを含んでいる .xsd ファイルノードまたは .wsdl ファイルを展開します。「要素」フォルダを展開し、要素を選択して「了解」をクリックします。
    • 組み込み型。「組み込み型」フォルダを展開し、変数の qname を選択して「了解」をクリックします。
  4. (省略可) 「インポートしたファイルのみを表示」チェックボックスを選択解除し、インポートされなかった WSDL ファイルと XML スキーマファイルの内容を表示します。
  5. 「了解」をクリックします。

デフォルトでは、「新規変数の作成」ダイアログには、すでにプロセスにインポートされたファイルだけが表示されます。ただし、プロセスにまだインポートされていないそのほかの .wsdl ファイルや .xsd ファイルがプロジェクトに含まれている可能性もあります。インポートされていないいずれかのファイル内で定義された型に基づいて新しい変数を定義する場合、IDE は必要なインポートを BPEL プロセスへ自動的に追加します。

ナビゲータ」ウィンドウから変数を追加することもできます。変数を追加するには、「ナビゲータ」で「BPEL 論理ビュー」を選択し、BPEL モジュールプロジェクトのノードを展開して、変数ノードを右クリックし、「変数を追加」を選択します。

変数を編集するには、次の手順に従います。

  1. 「ナビゲータ」ウィンドウで、「BPEL 論理ビュー」を選択します。
  2. BPEL モジュールプロジェクトのノード >「変数」を展開します。
  3. 編集する変数を右クリックし、「編集」を選択します。
  4. 変数プロパティーエディタで、変数の型を変更します。
  5. 「了解」をクリックします。

注: このリリースでは、BPEL マッパーは、スコープ要素に定義された変数の操作をサポートしていません。

先頭へ


While 要素の使用



いつ使用するか

While 要素は、1 つ以上のアクティビティーを各反復の開始時に特定の条件が真である限り、繰り返し実行するのに使用します。While 要素はほかの要素を含んでおり、それらの要素はユーザーが指定した成功基準が満たされている間、繰り返されます。指定した条件が偽になると、リストされたどのアクティビティーも実行されなくなります。

注: While 要素は最初に条件の妥当性を検査し、そのあとで反復アクティビティーを実行します。逆に、Repeat Until 要素は最初にアクティビティーを実行し、そのあとで条件の妥当性を検査します。

使用

  1. パレットから While 要素を追加します。
  2. 繰り返し実行されるアクティビティーを While 要素にドラッグします。
  3. 「プロパティー」ウィンドウを使用して、While 要素の名前と条件を指定します。条件を手動で入力したり、BPEL マッパーを使用して条件を生成したりできます。「BPEL マッパー」ウィンドウを開くには、「ウィンドウ」>「BPEL マッパー」を選択します。

先頭へ


プロセス要素の使用

プロセス要素はすでに図に存在します。「新規プロジェクト」ウィザードでは、プロセス要素を少なくとも 1 つ含む、骨格だけの BPEL ファイルを常に作成します。したがって、プロセス要素はパレットの一部ではありません。プロセス要素は BPEL ファイルの最小要件であるため、存在しているものと見なされます。

次のスクリーンショットは、旅行予約サービスのサンプル内のプロセスの表現を示しています。

プロセス

使用

  1. 要素を右クリックし、ポップアップメニューから「追加」を選択して、次のものを追加します。
  2. 要素を右クリックして「プロパティー」を選択すると呼び出される「プロパティー」ウィンドウで、プロセス要素の名前とターゲット名前空間を指定します。

プロセス

BPEL プロセスには、同期と非同期があります。同期 BPEL プロセスは、プロセスが完了して結果がクライアントに返されるまで、クライアント (プロセスを使用しているクライアント) をブロックします。非同期プロセスはクライアントをブロックしません。非同期プロセスはは、結果がある場合、コールバックを使用して結果を返します。通常は、時間が長くかかるプロセスに非同期プロセスを使用し、比較的短い時間で結果を返すプロセスに同期プロセスを使用します。BPEL プロセスが非同期 Web サービスを使用する場合、通常はそのプロセス自体も非同期です。

先頭へ


Repeat Until 要素の使用



いつ使用するか

Repeat Until 要素は、各反復の実行後に特定の条件が真である限り、1 つ以上のアクティビティーを繰り返し実行するのに使用します。Repeat Until 要素はほかの要素を含んでおり、それらの要素はユーザーが指定した成功基準が満たされている間、繰り返されます。指定した条件が真であると、列挙されたアクティビティーが 1 回実行されます。

注: Repeat Until 要素は最初に反復アクティビティーを実行し、そのあとで条件の妥当性を検査します。逆に、While 要素は最初に条件の妥当性を検査し、そのあとでアクティビティーを実行します。

使用

  1. パレットから Repeat Until 要素を追加します。
  2. 繰り返し実行されるアクティビティーを Repeat Until にドラッグします。
  3. 「プロパティー」ウィンドウを使用して、Repeat Until 要素の名前と条件を指定します。条件を手動で入力したり、BPEL マッパーを使用して条件を生成したりできます。「BPEL マッパー」ウィンドウを開くには、「ウィンドウ」>「BPEL マッパー」を選択します。

先頭へ


For Each 要素の使用



いつ使用するか

For Each 要素は、格納しているスコープアクティビティーを N+1 回だけ繰り返して実行するのに使用します。ここで、N は、最終カウンタ値から開始カウンタ値を減算した値です。

使用

  1. パレットから For Each 要素を追加します。
  2. 繰り返し実行される要素をパレットから For Each 要素に追加します。追加した要素は、自動的にスコープ要素にラップされます。
  3. For Each 要素を右クリックして「プロパティー」を選択し、「プロパティー」ウィンドウを呼び出します。

For Each 要素の「プロパティー」ウィンドウは、次のプロパティーを含みます。

  • 名前 - For Each 要素の名前を指定するのに使用します。
  • カウンタ変数名 - カウンタ変数名を宣言するのに使用します。
  • 開始カウンタ値 - 開始カウンタ値を設定するのに使用します。BPEL マッパーを使用して、整数値式を生成します。
  • 最終カウンタ値 - 最終カウンタ値を設定するのに使用します。BPEL マッパーを使用して、整数値式を生成します。
    For Each アクティビティーが開始されると、「開始カウンタ値」内および「最終カウンタ値」内の式が、最初に 1 度だけ評価されます。つまり、2 つの値が返されると、そのアクティビティーが存続する間、それらの値は定数として残ります。開始カウンタ値が最終カウンタ値より大きい場合、反復は実行されません。
  • 完了条件 - 省略可。これは整数値式です。直接囲まれた各アクティビティーの実行後、完了したアクティビティーの数がこの値に対して検査されます。完了したアクティビティーの数が、指定された式の値と等しい場合、それ以上のアクティビティーは開始されません。式の値が、可能な反復数より大きい場合、反復は開始されません。
  • カウント完了分岐のみ - 省略可。これを yes に設定すると、実行環境は正常に完了した分岐だけをカウントします。no に設定すると、正常に完了したか失敗したかに関係なく、すべての分岐がカウントされます。

先頭へ


終了要素の使用



いつ使用するか

このアクティビティーは、プロセス内、構造化アクティビティー内、またはハンドラ内のいずれかで、アクティビティーまたはプロセスの実行を停止するのに使用します。

使用

パレットから図へ終了要素をドラッグします。

注: BPEL 実行環境は、フロー要素とアラーム時要素の中、およびイベントハンドラ要素のイベント時子の中では、終了をサポートしません。



先頭へ

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by