5.5.1 ビジネスプロセスの作成

ビジネスプロセスには,サービスリクエスタから受け取ったリクエストをどのようなプロセスで処理していくかを定義します。HelloBusinessProcessサンプルプログラムのHelloビジネスプロセスでは,次のようなプロセスで処理します。

  1. Helloビジネスプロセスは,サービスリクエスタから入力された文字列を受け取ります。
  2. Helloサービスアダプタを介してHelloサービスを呼び出します。
  3. Helloサービスを呼び出した結果,取得した文字列に,「△and△Business△Process」(△は半角空白)という文字列を連結します。

    出力文字列: <Helloサービスの出力文字列>△and△Business△Process

  4. サービスリクエスタに文字を連結した結果を返し,出力画面に表示します。

 

HelloBusinessProcessサンプルプログラムのビジネスプロセスは,次の流れで定義します。

  1. 新規ビジネスプロセスを追加します。
  2. 変数を設定します。
  3. アクティビティを配置します。
  4. アクティビティを定義します。
  5. ビジネスプロセスの定義を終了します。

注※ アクティビティは,ビジネスプロセスの処理の流れを定義する部品です。

<この項の構成>
(1) ビジネスプロセスの追加
(2) 変数の設定
(3) アクティビティの配置
(4) アクティビティの定義

(1) ビジネスプロセスの追加

ビジネスプロセスを追加するときに設定する値を次の表に示します。

表5-2 ビジネスプロセスを追加するときに設定する値

項目名設定する値説明
ビジネスプロセス名Helloビジネスプロセスビジネスプロセスの名称を指定します。
ステータスの永続化yesデータベースに記録を残すかどうかを指定します。
記録を残すとプロセスの進捗状況などを把握できます。このサンプルプログラムではデータベースに記録を残すため,「yes」を選択します。
[BPELファイル]-[インポートする]チェックを外します上流工程でツールを使って作成したBPELファイルをインポートするかどうかを指定します。
BPELファイルをインポートすると,ビジネスプロセスに必要なアクティビティが自動的に表示されます。このサンプルプログラムではインポートしないので,チェックを外します。
サービスIDHelBPビジネスプロセスのIDを指定します。

Helloビジネスプロセスの追加手順を次に示します。

  1. ツリービューの[サービス定義一覧]を選択し,右クリックして,[ビジネスプロセス追加]を選択します。

    [図データ]

    ビジネスプロセス定義を追加するためのダイアログが表示されます。
  2. [ビジネスプロセス名]に「Helloビジネスプロセス」を入力し,[ステータスの永続化]で「yes」を選択します。[BPELファイル]の[インポートする]はチェックを外します。

    [図データ]

  3. [終了]ボタンをクリックします。
    ビジネスプロセス「Helloビジネスプロセス」が作成され,ビジネスプロセス定義画面が表示されます。
  4. ツリービューで「Helloビジネスプロセス」を選択します。
    プロパティービューにHelloビジネスプロセスのプロパティ一覧が表示されます。
  5. プロパティービューで,サービスIDの値のセルをクリックします。
    入力できる状態になります。
  6. 「HelBP」に変更し,[Enter]を押します。

    [図データ]

  7. 変更してよいかどうかを確認するメッセージが表示されるので,[OK]をクリックします。

(2) 変数の設定

ビジネスプロセスでは,アクティビティを定義するときに変数を使用します。そのため,使用する変数をあらかじめ設定してから,アクティビティを定義します。Helloビジネスプロセスで使用する変数を次の表に示します。

表5-3 Helloビジネスプロセスで使用する変数

変数名種別xsdファイル
入力データXML入力データ.xsd
出力データXML出力データ.xsd

Helloビジネスプロセスで使用する変数の設定手順を次に示します。

  1. ビジネスプロセス定義画面のキャンバス上の[変数・相関セット]アイコンをダブルクリックします。

    [図データ]

    [変数・相関セット一覧]ダイアログが表示されます。
  2. ツリービューの「変数一覧」を選択します。
  3. 変数名に「入力データ」を入力し,種別は「XML」を選択します。

    [図データ]

  4. [取込]ボタンをクリックします。
    [電文フォーマットの取込]ダイアログが表示されます。
  5. [サービス名]を選択して,ドロップダウンリストから「Helloサービスアダプタ」を選択します。
  6. [オペレーション名]はドロップダウンリストから「getHelloString」を,[電文種別]はドロップダウンリストから「要求電文(ボディ)」を選択します。[電文フォーマット]には「入力データ」と入力します。

    [図データ]

  7. [OK]ボタンをクリックします。
    [電文フォーマットの取込]ダイアログが閉じます。
  8. [変数・相関セット一覧]ダイアログの[追加]ボタンをクリックします。
    ツリービューの「変数一覧」に「入力データ」が追加されます。
  9. [変数・相関セット一覧]ダイアログの「変数一覧」を選択します。変数名に「出力データ」を入力し,種別はドロップダウンリストから「XML」を選択します。
  10. [取込]ボタンをクリックします。
    [電文フォーマットの取込]ダイアログが表示されます。
  11. [サービス名]を選択し,ドロップダウンリストから「Helloサービスアダプタ」を選択します。
  12. [オペレーション名]はドロップダウンリストから「getHelloString」を,[電文種別]はドロップダウンリストから「応答電文(ボディ)」を選択します。[電文フォーマット]には「出力データ」と入力します。

    [図データ]

  13. [OK]ボタンをクリックし,[電文フォーマットの取込]ダイアログを閉じます。
  14. [変数・相関セット一覧]ダイアログの[追加]ボタンをクリックします。
    ツリービューの「変数一覧」に「出力データ」が追加されます。
  15. [変数・相関セット一覧]ダイアログの[OK]ボタンをクリックします。
    これで変数が設定できました。

    [図データ]

(3) アクティビティの配置

HelloBusinessProcessサンプルプログラムのビジネスプロセスに必要なアクティビティを次の表に示します。

表5-4 HelloBusinessProcessサンプルプログラムのビジネスプロセスに必要なアクティビティ

設定する値説明
受付アクティビティサービスリクエスタからの応答を受け付けます。
サービス呼出アクティビティHelloサービスを呼び出します。
データ変換アクティビティ文字列を編集します。
応答アクティビティ処理結果をサービスリクエスタへ返します。

アクティビティの配置手順を次に示します。

  1. パレットから次のアクティビティをクリックし,キャンバス上の適当な位置にクリックして配置します。
    • 受付
    • サービス呼出
    • データ変換
    • 応答
  2. アクティビティを連結するために,パレットの[[図データ]コネクション]をクリックします。
  3. 連結元である開始アクティビティをクリックします。
  4. 連結先である受付アクティビティをクリックします。
    これで開始アクティビティと受付アクティビティを連結できました。
  5. 受付アクティビティから終了アクティビティまでを,操作2.~4.と同様の操作で一つずつアクティビティを連結します。

    [図データ]

(4) アクティビティの定義

キャンバスへ配置した各アクティビティの内容を定義します。

(a) 受付アクティビティ
  1. キャンバスの受付アクティビティをダブルクリックします。
    [受付アクティビティ]ダイアログが表示されます。
  2. 次の内容を入力します。

    [図データ]

    項目名設定する値説明
    アクティビティ名受付アクティビティの名称を指定します。
    オペレーション名getHelloStringサービスリクエスタからサービス部品を呼び出すときに利用するオペレーションの名称を指定します。
    ボディ割当変数入力データビジネスプロセスの要求電文のボディに割り当てる変数をドロップダウンリストから選択します。
    ヘッダ割当変数設定なしビジネスプロセスの要求電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
    割当相関セット群設定なし相関セットグループをアクティビティに割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
    通信モデル同期オペレーションの通信モデルを指定します。このサンプルプログラムで使用するHelloサービスは,Webサービスのため,「同期」を設定します。
    インスタンス生成yes要求電文を受け付けたときに,プロセスを初期化するかどうかを選択します。このサンプルプログラムでは,「yes」を設定します。
  3. [OK]ボタンをクリックします。
(b) サービス呼出アクティビティ
  1. キャンバスのサービス呼出アクティビティをダブルクリックします。
    [サービス呼出アクティビティ]ダイアログが表示されます。
  2. 次の内容を入力します。

    [図データ]

    項目名設定する値説明
    アクティビティ名Helloサービスアクティビティの名称を入力します。
    サービス名Helloサービスアダプタ要求電文を送信して呼び出すサービス部品の名称をドロップダウンリストから選択します。
    オペレーション名getHelloString[サービス名]で指定したサービス部品(Helloサービスアダプタ)のオペレーションのうち,実際に呼び出すオペレーションの名称を指定します。
    通信モデル同期[オペレーション名]で指定したオペレーションに設定されている通信モデルが表示されます。
    ボディ割当変数(要求電文)入力データ在庫管理サービスを呼び出す要求電文のボディに割り当てる変数をドロップダウンリストから選択します。
    ヘッダ割当変数(要求電文)設定なし在庫管理サービスを呼び出す要求電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
    ボディ割当変数(応答電文)出力データ同期オペレーションから受け取る応答電文のボディに割り当てる変数をドロップダウンリストから選択します。
    ヘッダ割当変数(応答電文)設定なし同期オペレーションから受け取る応答電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
    割当相関セット群設定なし相関セットグループをアクティビティに割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
  3. [OK]ボタンをクリックします。
(c) データ変換アクティビティ
  1. キャンバスのデータ変換アクティビティをダブルクリックします。
    [データ変換アクティビティ]ダイアログが表示されます。
  2. 次の内容を入力します。

    [図データ]

    項目名設定する値説明
    アクティビティ名出力文字列編集アクティビティの名称を指定します。
    変数(変換元変数)出力データデータの変換元になる変数をドロップダウンリストから選択し,[追加]ボタンをクリックします。
    変数(変換先変数)出力データデータの変換先になる変数をドロップダウンリストから選択します。
    データ変換定義出力文字列編集データ変換定義ファイルに仮想的に付ける名称を指定します。
  3. [OK]ボタンをクリックします。
  4. キャンバスのデータ変換アクティビティを右クリックして,[マッピング定義起動]を選択します。
    [ルート要素選択]ダイアログが表示されます。
  5. [変換元]のスキーマ論理名「出力データ」のルート要素として,ドロップダウンリストから「hls:getHelloStringResponse」を選択し,[変換先]のスキーマ論理名「出力データ」のルート要素として,ドロップダウンリストから「hls:getHelloStringResponse」を選択します。

    [図データ]

  6. [OK]ボタンをクリックします。
    データ変換定義画面が表示されます。

    [図データ]

  7. データ変換定義画面のパレットから[concat]をクリックし,キャンバスの変換元と変換先の間にクリックして配置します。
  8. データ変換定義画面のパレットから[const]をクリックし,キャンバスの変換元と変換先の間にクリックして配置します。
  9. データ変換定義画面のパレットから[マッピング]を選択します。
  10. マッピング元となる変換元ノードのノードアダプタをクリックします。
  11. マッピング先となる[concat]をクリックします。
    マッピング線が設定されます。
  12. 操作9.~11.と同様の操作で,[concat]から変換先ノードのノードアダプタにマッピング線を設定します。
    [const]から[concat]へのマッピング線を先に設定すると,出力文字列の順序が変わってしまうため,注意してください。
  13. 操作9.~11.と同様の操作で,[const]から[concat]にマッピング線を設定します。

    [図データ]

  14. データ変換定義画面のパレットから[選択]をクリックします。
  15. [const]をダブルクリックします。
    [定数]ダイアログが表示されます。
  16. [文字列]を選択して,「△and△Business△Process」を入力します(△は半角の空白です)。

    [図データ]

  17. [OK]ボタンをクリックします。
(d) 応答アクティビティ
  1. キャンバスの応答アクティビティをダブルクリックします。
    [応答アクティビティ]ダイアログが表示されます。
  2. 次の内容を入力します。

    [図データ]

    項目名設定する値説明
    アクティビティ名応答アクティビティの名称を指定します。
    オペレーション名getHelloString対応する受付アクティビティに指定したオペレーションの名称を指定します。
    ボディ割当変数出力データ応答電文のボディに割り当てる変数をドロップダウンリストから選択します。
    ヘッダ割当変数設定なし応答電文のヘッダに変数を割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
    割当相関セット群設定なし相関セットグループをアクティビティに割り当てる場合に設定します。このサンプルプログラムでは使用しないため,設定しません。
    フォルト名設定なしフォルト処理として応答アクティビティを定義して,サービスリクエスタにフォルトが発生したことを示す応答電文を送信する場合のフォルトの名称を指定します。このサンプルプログラムではフォルト処理を使用しないため,設定しません。
  3. [OK]ボタンをクリックします。
  4. すべてのアクティビティを定義したら,メニューから[ファイル]-[保存]を選択し,ビジネスプロセスの定義を終了します。