チュートリアル : 初めてのビジネス プロセス構築

     前  次    目次     
ここから内容

手順 13 : メッセージ ブローカ チャネルへのパブリッシュおよびサブスクライブ

検証サービス シナリオについて」で説明されているメッセージ ブローカ機能を設計するには、RequestQuote ビジネス プロセスに、ValidateOrder メッセージ ブローカ チャネルにパブリッシュするノードと、StopQuote メッセージ ブローカ チャネルにサブスクライブするノードを作成します。次に、ビジネス プロセスにメッセージ パスを作成します。メッセージ パスには、ValidateOrder サービスがメッセージをポストするチャネル (StopQuote) からのコールバックを処理するロジックを作成します。このロジックでは、RequestQuote ビジネス プロセスが、サブスクライブしているチャネルからコールバックを受信したら終了するように指定します。

ここで実行するタスクは次のとおりです。

メッセージ ブローカ チャネルに見積り要求メッセージをパブリッシュするには

まず、プロジェクトにメッセージ ブローカ パブリッシュ コントロールを作成してから、メソッドをコントロールからビジネス プロセス内のノードにバインドする必要があります。この手順は、次のとおりです。

  1. [パッケージ・エクスプローラー] ペインで、[RequestQuote.java] をダブルクリックして、ビジネス プロセスがデザイン ビューに表示されるようにします。
  2. BEA Workshop 内に データ パレット が表示されていない場合は、メニュー バーから [ウィンドウArrow symbolビューの表示Arrow symbolデータ パレット] をクリックします。
  3. データ パレットの [コントロール] フォルダで をクリックし、[Integration コントロールArrow symbolArrow symbolMB パブリッシュ] を選択します。[コントロールの挿入] ダイアログ ボックスが表示されます。


  4. このコントロールのフィールド名に mbPubValidate と入力し、[次へ] をクリックします。
  5. [コントロールの作成] ウィザード ページで、[名前] フィールドに MBPubValidate と入力し、[次へ] をクリックします。
  6. [コントロールの挿入 - MB Publish] ダイアログ ボックスで、[チャネル名] フィールドに関連付けられている下矢印をクリックし、アプリケーションで使用可能な以下のチャネルを表示します。
  7. /TutorialPrefix/Tutorial/ValidateOrder
    /TutorialPrefix/Tutorial/StopQuote
    注意 : /deadletter/xml、/deadletter/string、/deadletter/rawData、/WorklistEvent というチャネルも使用可能です。アプリケーションでのデッド レター チャネルの使用方法については、
  8. /TutorialPrefix/Tutorial/ValidateOrder を選択します。これにより、ビジネス プロセスがクライアントから受信する見積り要求メッセージをパブリッシュするチャネルが指定されます。
  9. [メッセージ タイプ] フィールドに、ValidateOrder チャネルにパブリッシュされるメッセージのデータ型 org.example.request.QuoteRequestDocument が表示されます。

    注意 : [チャネル名] フィールドでチャネルを選択できない場合、ユーティリティ プロジェクトをビルドする必要があります。そのためには、まず [コントロールの挿入] ダイアログボックスの [取消し] をクリックしてダイアログボックスを閉じます。[パッケージ・エクスプローラー] ペインのユーティリティ プロジェクト フォルダを右クリックし、ドロップダウン メニューから [プロジェクトのビルド] を選択します。プロジェクトのビルドが終了したら、 をクリックし、データ パレットの [コントール] タブで [Integration コントロールArrow symbolMB パブリッシュ] を選択して、[コントロールの挿入] ダイアログ ボックスを開きます。上で説明した手順 4 ~ 6 を繰り返します。チャネルが [チャネル名] フィールドで選択可能になります。アプリケーションのメッセージ ブローカ チャネルを定義するチャネル ファイルはプロジェクトに入っており、アプリケーションでチャネルを使用できるようにするには、プロジェクトに組み込む必要があります。ValidateOrder チャネルの定義方法については、「チュートリアル アプリケーションのメッセージ ブローカ チャネルについて」を参照してください。
  10. [終了] をクリックします。プロジェクトで MB パブリッシュ コントロールのインスタンスが作成され、[コントロールの挿入] ダイアログ ボックスが閉じます。MBPubValidate.java ファイルが作成されて [パッケージ・エクスプローラー] ペインに表示されます。作成した mbPubValidate コントロールのインスタンスがデータ パレットに表示されます。


  11. データ パレットで、mbPubValidate コントロールの次のメソッドをクリックします。
  12. void publish(QuoteRequestDocument value)
  13. このメソッドを RequestQuote ビジネス プロセスにドラッグ アンド ドロップし、[Client Requests Quote] 開始ノードのすぐ後に配置します。


  14. [コントロール送信] ノードが作成されます。ノードのデフォルト名は publish です。

  15. [publish] ノードをダブルクリックします。[一般的な設定] タブにノード ビルダが開きます。mbPubValidate コントロールと void publish (QuoteRequestDocument value) メソッドがすでに選択されています。
  16. [データの送信] をクリックして、ノード ビルダの 2 番目のタブを開きます。このタブでは、ValidateOrder メッセージ ブローカ チャネルにパブリッシュするメッセージを指定します。
  17. コントロールで想定されているパラメータのデータ型 QuoteRequestDocument が [コントロールが予期する値] フィールドに表示されます。

  18. [割り当てる変数を選択します] フィールドで矢印をクリックしてプロジェクト内の変数を表示し、requestXML (QuoteRequest) を選択します。
  19. 注意 : チュートリアルの始めに、ビジネス プロセスの開始ノードを設計した際に、クライアントからの見積り要求メッセージを requestXML 変数に割り当てました。
  20. ノード ビルダを閉じるには、[閉じる] をクリックします。
メッセージ ブローカ チャネルにサブスクライブして検証サービスからメッセージを受信するには

まず、プロジェクトにメッセージ ブローカ サブスクリプション コントロールを作成してから、メソッドをコントロールからビジネス プロセス内のノードにバインドする必要があります。プロセスは、メッセージ ブローカ サブスクリプション コントロールを使用して、クライアントからの見積り要求が無効な場合に検証サービスがメッセージをパブリッシュできるチャネルにサブスクライブします。チュートリアルのシナリオでは、ValidateOrder サービスは、クライアントから要求されたウィジェット数が 400 を超える場合にその見積り要求を無効と判断します。次の手順を実行してください。

  1. RequestQuote ビジネス プロセスがデザイン ビューに表示されていることを確認します。
  2. データパレットの [コントロール] タブで、 をクリックし、[Integration コントロールArrow symbolMB サブスクリプション] を選択します。[コントロールの挿入] ダイアログ ボックスが表示されます。


  3. [コントロールの挿入] ダイアログ ボックスで、このコントロールの変数名として mbSubValidate を入力し、[次へ] をクリックします。
  4. [コントロールの作成] ダイアログ ボックスで、[名前] フィールドに MBSubValidate と入力し、[次へ] をクリックします。
  5. 次のダイアログ ボックスで、チャネル名として /TutorialPrefix/Tutorial/StopQuote を選択します。
  6. これにより、ビジネス プロセスがサブスクライブするチャネルが指定されます。これは、ValidateOrder サービスが見積り要求を無効と判断した場合にメッセージをパブリッシュするチャネルでもあります。

    注意 : [メッセージ タイプ] フィールドに、StopQuote チャネルにパブリッシュされるメッセージのデータ型 java.lang.String が表示されます。StopQuote チャネルの定義方法については、「チュートリアル アプリケーションのメッセージ ブローカ チャネルについて」を参照してください。
  7. [終了] をクリックして、プロジェクトに MB サブスクリプション コントロールのインスタンスを作成します。
  8. [コントロールの挿入] ダイアログ ボックスが閉じ、MBSubValidate.java ファイルが作成されて [パッケージ・エクスプローラー] ペインに表示されます。作成した mbSubValidate コントロールのインスタンスがデータ パレットに表示されます。



  9. データ パレットで、mbSubValidate コントロールの次のメソッドをクリックします。
  10. void subscribe()
  11. このメソッドをデザイン ビューの RequestQuote ビジネス プロセスにドラッグ アンド ドロップし、[publish] ノードのすぐ後に配置します。


  12. [コントロール送信] ノードが作成されます。ノードのデフォルト名は subscribe です。 は、ノードでの指定が完了し、このノードでのこれ以上の設計作業が不要であることを示します。

注意 : メッセージ ブローカ サブスクリプション コントロールはコールバック メソッドを定義しません。カスタム コールバックを定義して、ビジネス プロセスがイベント メッセージを受信する方法について指定する必要があります。ビジネス プロセスにコールバックを定義するには、「手順 14 : ビジネス プロセスのメッセージ パスの設計」に進みます。

これで、RequestQuote プロセスがメッセージ ブローカ チャネルに対してパブリッシュおよびサブスクライブする方法を指定するノードの設計は完了しました。

関連トピック

チュートリアル アプリケーションのメッセージ ブローカ チャネルについて

メッセージ ブローカ コントロール


  ページの先頭       前  次