5.7 商品手配システムのデバッグ

5.6.3 商品手配ビジネスプロセスの定義」で定義したビジネスプロセスをデバッグして,ビジネスプロセスの処理の流れを確認してみましょう。

この節で説明するビジネスプロセスのデバッグの流れを次に示します。

  1. アクティビティにブレークポイントを設定します。
  2. サービスリクエスタをデプロイします。
  3. HCSCサーバを起動します。
  4. デバッガを起動します。
  5. サービスリクエスタからリクエストを送信し,プロセスインスタンスの処理を開始します。
  6. アクティビティごとにデバッグを実行します。
  7. サービスを呼び出さないでデバッグする場合,サービスをエミュレーションします。
  8. ビジネスプロセスのデバッグを終了します。
<この節の構成>
(1) ブレークポイントの設定
(2) サービスリクエスタのデプロイ
(3) HCSCサーバの起動
(4) デバッガの起動
(5) リクエストの送信
(6) ビジネスプロセスのデバッグの実行
(7) サービスのエミュレーション
(8) ビジネスプロセスのデバッグの終了

(1) ブレークポイントの設定

プロセスインスタンスの処理を中断するアクティビティにブレークポイントを設定します。

ここでは,サービス呼出アクティビティ(在庫引当)にブレークポイントを設定します。

ブレークポイントを設定する手順を次に示します。

  1. ビジネスプロセス定義画面のキャンバスでサービス呼出アクティビティ(在庫引当)を右クリックし,[ブレークポイントの追加]を選択します。
    アクティビティにブレークポイントが追加されます。次の図のように,アクティビティの横にブレークポイントを表すチェックが付きます。

    [図データ]

(2) サービスリクエスタのデプロイ

リクエストを送信するために,商品手配サンプルプログラムのMyEclipseプロジェクトをインポートしたあと,サービスリクエスタをJ2EEサーバにデプロイします。

サービスリクエスタをデプロイする手順を次に示します。

  1. 次のコマンドを入力してHCSCサーバを停止します。

    cscsvstop

  2. MyEclipseのメニューから[ウィンドウ]-[パースペクティブを開く]-[その他]を選択します。
    [パースペクティブを開く]ダイアログが表示されます。
  3. [MyEclipse Java エンタープライズ(デフォルト)]を選択し,[OK]ボタンをクリックします。
    [MyEclipse Java エンタープライズ]パースペクティブが表示されます。
  4. メニューから[ファイル]-[インポート]を選択します。
    選択画面が表示されます。
  5. ツリービューから[一般]-[既存プロジェクトをワークスペースへ]を選択します。

    [図データ]

  6. [次へ]ボタンをクリックします。
    プロジェクトのインポート画面が表示されます。

    [図データ]

  7. [ルート・ディレクトリーの選択]を選択し,[参照]ボタンをクリックします。
    ファイルの参照画面が表示されます。
  8. サンプルプログラムが格納されているディレクトリ(<uCosminexus Service Architectのインストールディレクトリ>¥CSCTE¥Samples¥商品手配)を選択し,[OK]ボタンをクリックします。
    プロジェクトのインポート画面に戻ります。すべてのプロジェクトにチェックが入っていることを確認してください。
  9. [プロジェクトをワークスペースにコピー]のチェックが入っていない場合は,チェックを入れます。
    チェックを入れないと,サンプルプログラムが削除されるおそれがあります。必ずチェックを入れてください。

    [図データ]

  10. [終了]ボタンをクリックします。
    パースペクティブに選択したプロジェクトがインポートされます。
  11. [サーバー]ビューの[Cosminexus]サーバを右クリックし,[デバッグ・モードで開始]を選択します。

    [図データ]

    処理中であることを知らせるメッセージが表示されたあと,Cosminexusサーバが起動されます。Cosminexusサーバが表示されていない場合は,「3.5.4(2) J2EEサーバの選択」を参照してください。
  12. [サーバー]ビューの[Cosminexus]サーバを右クリックし,[デプロイメントの追加]を選択します。
    [新規デプロイメント]ダイアログが表示されます。
  13. プロジェクトのドロップダウンリストから[ArrangementClient]を選択し,デプロイ形式の[展開ディレクトリー形式]を選択します。

    [図データ]

  14. [終了]ボタンをクリックします。
    処理中であることを知らせるメッセージが表示されます。処理終了後,[MyEclipse Java エンタープライズ]パースペクティブに戻ります。
  15. 「DeliveryService」,「InventoryManagementService」についても,操作12.~14.と同様の操作で設定します。
    設定が終わったら,[サーバー]ビューの[Cosminexus]の配下に[ArrangementClient],[DeliveryService],および[InventoryManagementService]プロジェクトが存在することを確認してください。

(3) HCSCサーバの起動

デバッガを起動する前に,HCSCサーバを起動します。

  1. 次のコマンドを入力してHCSCサーバを起動します。

    cscsvstart

(4) デバッガの起動

デバッガを起動する手順を次に示します。

  1. MyEclipseのメニューから[実行]-[デバッグの構成]を選択します。
    [デバッグ構成]ダイアログが表示されます。
  2. [デバッグ構成]ダイアログのメニューから[HCSC-BP]を右クリックし,[新規]を選択します。
  3. [名前]に任意の名称を入力し,[デバッグ対象]は,ドロップダウンリストから「商品手配」を選択します。

    [図データ]

  4. [デバッグ]ボタンをクリックします。
    アカウント認証画面が表示されます。
  5. [ユーザID]に「admin」,[パスワード]に「admin」を入力して,[OK]ボタンをクリックします。
    処理中であることを知らせるメッセージが表示されます。2回目以降にデバッガを起動するときは,アカウント認証画面は表示されないで,すぐに処理が開始されます。
  6. [OK]ボタンをクリックします。
    デバッガが起動されます。

(5) リクエストの送信

サービスリクエスタからリクエストを送信して,プロセスインスタンスの処理を開始します。

リクエストを送信する手順を次に示します。

  1. ブラウザから次に示すURLを入力します。
    http://localhost/ArrangementClientWeb/index.html
    商品手配サンプルプログラムの実行画面が起動されます。
  2. 商品名と個数を選択します。

    [図データ]

  3. [手配]ボタンをクリックします。
    パースペクティブを切り替えるかどうかを確認するダイアログが表示されます。
  4. [はい]ボタンをクリックします。
    デバッグ情報や変数を表示するビューが開き,プロセスインスタンスの処理が開始されます。
    サービス呼出アクティビティ(在庫引当)でプロセスインスタンスの処理が中断されます。ビジネスプロセス定義画面のキャンバスのアクティビティに,次のように中断していることを表す色が付きます。

    [図データ]

(6) ビジネスプロセスのデバッグの実行

プロセスインスタンスの処理が中断している状態では,次に示す画面でデバッグを実行できます。

図5-2 ビジネスプロセスのデバッグ画面

[図データ]

ビジネスプロセスのデバッグで実行できる項目を次の表に示します。

表5-11 ビジネスプロセスのデバッグで実行できる項目

項目説明
変数・相関セットの確認ビジネスプロセスで現在使用している変数,および相関セットを確認できます。
変数の更新ビジネスプロセスで現在使用している変数の値を更新できます。
ステップ実行および再開[デバッグ情報の表示]ビューでは次の操作を実行できます。これらの操作によって,アクティビティごとにデバッグを実行してください。
  • ステップイン([図データ]
    次のアクティビティに進みます。分岐開始アクティビティで実行した場合は,分岐先で最初に処理されるアクティビティに進みます。
  • ステップオーバー([図データ]
    分岐開始アクティビティで実行した場合は,分岐終了アクティビティまでをまとめて処理します。分岐開始アクティビティ以外で実行した場合は,ステップインと同じ動作になります。
  • ステップリターン([図データ]
    スコープアクティビティおよび繰り返しアクティビティの内部のアクティビティで実行した場合は,所属するアクティビティの次のアクティビティまで処理します。
  • 再開([図データ]
    次にブレークポイントを設定しているアクティビティまで,プロセスインスタンスの処理を再開します。
サービスのエミュレーション作成済みの応答電文を利用することで,サービスをエミュレーションできます。
サービスをエミュレーションする手順については,「(7) サービスのエミュレーション」を参照してください。

(7) サービスのエミュレーション

サービスを呼び出さないでデバッグする場合,サービスのエミュレーションを設定します。サービスのエミュレーションを設定すると,作成済みの応答電文を実際のサービスを呼び出す代わりに利用できます。

サービスのエミュレーションを利用することで,ビジネスプロセスから呼び出すサービスがなくても,ビジネスプロセスの処理を進められます。

サービスのエミュレーションは,プロセスインスタンスの処理が中断しているときに設定できます。ここでは,サービス呼出アクティビティ(在庫引当)でプロセスインスタンスの処理が中断しているものとして,「在庫引当」サービスをエミュレーションする手順について説明します。

「在庫引当」サービスをエミュレーションする手順を次に示します。

  1. XMLファイルを作成します。
  2. HCSC エミュレートビューを表示します。
  3. 作成したXMLファイルを利用してサービスのエミュレーションを実行します。

サービスのエミュレーションを実行する前に,デバッガを起動して,サービスリクエスタからリクエストを送信しておく必要があります。

(a) XMLファイルの作成

サービスの応答として利用するXMLファイルを作成します。

XMLファイルを作成する方法を次に示します。

  1. MyEclipseのメニューから,[ファイル]-[新規]-[その他]を選択し,表示されるダイアログで[一般]-[ファイル]を選択します。
    [新規ファイル]ダイアログが表示されます。
  2. [新規ファイル]ダイアログでXMLファイルを保管するディレクトリを選択します。
  3. [ファイル名]に任意のファイル名(拡張子:.xml)を入力します。
  4. [終了]ボタンをクリックします。
    XMLエディタが表示されます。
  5. XMLエディタの[ソース]タブをクリックし,次のように入力します(△は半角の空白です)。

    <?xml△version="1.0"△encoding="UTF-8"?><reserveItemResponse△xmlns="http://sample/InventoryManagementService"△><ReservationNumber>R00000001</ReservationNumber></reserveItemResponse>

  6. メニューから[ファイル]-[保存]を選択します。
    XMLファイルが保存されます。
(b) HCSC エミュレートビューの表示

サービスのエミュレーションはHCSC エミュレートビューで実行できます。

HCSC エミュレートビューを表示する手順を次に示します。

  1. MyEclipseのメニューから,[ウィンドウ]-[ビューの表示]-[その他]を選択します。
    [ビューの表示]ダイアログが表示されます。
  2. [デバッグ]-[HCSC エミュレート]を選択し,[OK]ボタンをクリックします。
    HCSC エミュレートビューが表示されます。
(c) サービスのエミュレーションの実行
  1. [デバッグ情報の表示]ビューで在庫引当(サービス呼出アクティビティ)を選択します。
  2. HCSC エミュレートビューの[追加]ボタンをクリックします。
    HCSC エミュレートビューのテーブルに行が追加されます。
  3. 応答種別のセルを選択し,通常応答を選択します。
  4. 応答電文のセルを選択し,[...]ボタンをクリックします。
    [ファイル選択]ダイアログが表示されます。
  5. 作成したXMLファイルを選択し,[OK]ボタンをクリックします。
  6. [ステップ実行]ボタンをクリックします。
    サービス呼出アクティビティ(在庫引当)からの応答がエミュレーションされます。
    プロセスインスタンスの処理が分岐開始アクティビティ(在庫引当結果チェック)に進みます。

以降のアクティビティへ進むには,[デバッグ情報の表示]ビューを操作してください。詳細は,「(6) ビジネスプロセスのデバッグの実行」を参照してください。

(8) ビジネスプロセスのデバッグの終了

ビジネスプロセスの処理の流れを確認したら,ビジネスプロセスのデバッグを終了します。

ビジネスプロセスのデバッグを終了する手順を次に示します。

  1. [デバッグ情報の表示]ビューで「商品手配」を選択し,[終了]アイコンをクリックします。

    [図データ]

    ビジネスプロセスのデバッグが終了します。