IM-BPM for Accel Platform IM-BPM チュートリアルガイド 第19版 2024-04-01

4.3.17.2. メッセージイベントを使用する

このチュートリアルでは、メッセージイベントを使用して、メッセージの受信の定義方法を解説します。
メッセージは、特定の1プロセスに送信することで、そのプロセスを進めることが可能です。
メッセージを受信するイベントは、以下のとおりです。
  • メッセージ開始イベント
  • メッセージ境界イベント
  • メッセージキャッチイベント
このチュートリアルでは、メッセージの送信に「IM-LogicDesignerタスク」のロジックフローを使用します。
チュートリアルを開始する前に以下の資材をインポートしてください。

注意

このチュートリアルの「IM-LogicDesignerタスク」で使用するロジックフローは、IM-BPM for Accel Platform 2018 Spring(Skylark) 以降のバージョンで動作します。

コラム

ロジックフローのインポートについての詳細は「IM-LogicDesigner ユーザ操作ガイド」-「インポート/エクスポート」を参照してください。

コラム

各イベントの詳細については、以下を参照してください。
IM-LogicDesignerの詳細については、「IM-LogicDesigner仕様書」を参照してください。

コラム

このチュートリアルで作成する「プロセス定義」のサンプルを、以下のリンクからダウンロードできます。

このサンプルは「プロセス定義アップロード」機能でプロジェクトにアップロードできます。
アップロード手順は「IM-BPM プロセスデザイナ 操作ガイド」-「プロセス定義のアップロード」を参照してください。

コラム

このチュートリアルのサンプルでは、同一ファイル内に「メッセージを送信するプロセス定義」と「メッセージを受信するプロセス定義」が定義されていますが、それぞれファイルを分けて定義することも可能です。

4.3.17.2.1. メッセージを受信することにより開始するプロセス定義を作成する

メッセージを受信することにより開始するプロセス定義を作成します。
../../../../_images/event_0101.png
図:完成イメージ
  1. 「メッセージ」を登録します。

    1. キャンパスの空白部分をクリックし、「プロパティ」をプロセス全体切り替えます。
      「プロパティ」 の 「メッセージ&シグナル」タブから、「メッセージ」の「追加」リンクをクリックします。
      ../../../../_images/event_0102.png
      図:プロセス全体 - 「プロパティ」 - 「メッセージ&シグナル」
    2. 「メッセージ」ダイアログで、項目を以下のとおりに設定します。

      • ID : tutorial_message
      • 名前 : tutorial_message
      ../../../../_images/event_0103.png
      図:メッセージ
  2. 「メッセージ開始イベント」を配置します。

  3. 参照メッセージを設定します。
    「メッセージ開始イベント」の「メインコンフィグ」タブから、「参照メッセージ」のプルダウンリストで「 tutorial_message 」を選択します。
    ../../../../_images/event_0104.png
    図:「メッセージ開始イベント」 - 「プロパティ」 - 「メインコンフィグ」
  4. プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロセス」タブから、「プロセス定義キー」に「event_message_usage_start_process」と入力します。
    ../../../../_images/event_0105.png
    図:プロセス全体 - 「プロパティ」 - 「プロセス」
  5. 「メッセージ開始イベント」がメッセージを受信して「プロセス」が開始したことを確認するため、「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0106.png
    図:「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」

4.3.17.2.2. メッセージを受信することによりユーザタスクを中断するプロセス定義を作成する

メッセージを受信することにより、ユーザタスクを中断するプロセス定義を作成します。
../../../../_images/event_0107.png
図:完成イメージ
  1. 「メッセージ」を登録します。前項と同一ファイル内でプロセス定義を作成している場合は行う必要はありません。

  2. 「開始イベント」を配置します。

  3. プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロセス」タブから、以下のように項目を設定します。
    • プロセス定義キー : event_message_usage_boundary_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_0108.png
    図:「プール」 - 「プロパティ」 - 「プロセス」
  4. 「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0109.png
    図:「ユーザタスク」
  5. 「メッセージ境界イベント」を「ユーザタスク」に配置します。

    ../../../../_images/event_0110.png
    図:「メッセージ境界イベント」
  6. 参照メッセージを設定します。
    「メッセージ境界イベント」の「メインコンフィグ」タブから、「参照メッセージ」のプルダウンリストで「 tutorial_message 」を選択します。
    ../../../../_images/event_0111.png
    図:「メッセージ境界イベント」 - 「プロパティ」 - 「メインコンフィグ」
  7. 「メッセージ境界イベント」で「ユーザタスク」が中断されたことを確認するために、別の「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0112.png
    図:「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」

4.3.17.2.3. メッセージを受信することにより先に進むプロセス定義を作成する

メッセージを受信することにより先に進むプロセス定義を作成します。
../../../../_images/event_0113.png
図:完成イメージ
  1. 「メッセージ」を登録します。
    前項と同一ファイル内でプロセス定義を作成している場合は、行う必要はありません。
  2. 「開始イベント」を配置します。

  3. プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロセス」タブから、以下のように項目を設定します。
    • プロセス定義キー : event_message_usage_intermediate_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_0114.png
    図:「プール」 - 「プロパティ」 - 「プロセス」
  4. 「メッセージキャッチイベント」を配置します。

    ../../../../_images/event_0115.png
    図:「メッセージキャッチイベント」
  5. 参照メッセージを設定します。
    「メッセージキャッチイベント」の「メインコンフィグ」タブから、「参照メッセージ」のプルダウンリストで「 tutorial_message 」を選択します。
    ../../../../_images/event_0116.png
    図:「メッセージキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」
  6. 「メッセージキャッチイベント」から次に進んだことを確認するために「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0117.png
    図:「ユーザタスク」 - 「プロパティ」 - 「メインコンフィグ」

4.3.17.2.4. メッセージを送信するプロセス定義を作成する

メッセージを送信するプロセス定義を作成します。

「IM-LogicDesignerタスク」を使用し、メッセージを送信するプロセスです。
「入力データ」として内容を与えたメッセージが、「IM-LogicDesignerタスク」に設定したロジックフローによって送信されます。
送信されたメッセージは、「メッセージで開始するプロセス」「メッセージ境界のプロセス」 「メッセージキャッチのプロセス」がそれぞれ受信し、結果としてプロセスが進行します。

また、プロセスの進行状況を確認するため、「IM-LogicDesignerタスク」の他に「ユーザタスク」を配置しています。
../../../../_images/event_0118.png
図:完成イメージ
  1. 「開始イベント」を配置します。

  2. プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロセス」タブから、以下のように項目を設定します。
    • プロセス定義キー : event_message_usage_throw_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_0119.png
    図:プロセス全体 - 「プロパティ」 - 「プロセス」
  3. 「IM-LogicDesignerタスク」の「メインコンフィグ」で、以下のように項目を設定します。

    • フローID : messageStart

    • 利用するバージョン : 最新バージョンを利用

    • 入力データ
      • 名前 : message
      • 値 : tutorial_message
    ../../../../_images/event_0120.png
    図:「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」

    コラム

    「フローIDの設定」、「入力データ」の設定方法は、「IM-LogicDesignerのリスナを利用する」を参照してください。
  4. 「IM-LogicDesignerタスク」から次に進んだことを確認するために「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0121.png
    図:「ユーザタスク」
  5. 「IM-LogicDesignerタスク」の 「メインコンフィグ」タブで、以下のように項目を設定します。

    • フローID : messageSend

    • 利用するバージョン : 最新バージョンを利用

    • 入力データ1
      • 名前 : message
      • 値 : tutorial_message
    • 入力データ2
      • 名前 :processDefinitionKey
      • 値 : event_message_usage_boundary_process
    ../../../../_images/event_0122.png
    図:「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」
  6. 「IM-LogicDesignerタスク」から次に進んだことを確認するために「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0123.png
    図:「ユーザタスク」
  7. 「IM-LogicDesignerタスク」の「メインコンフィグ」タブで、以下のように項目を設定します。

    • フローID : messageSend

    • 利用するバージョン : 最新バージョンを利用

    • 入力データ1
      • 名前 : message
      • 値 : tutorial_message
    • 入力データ2:
      • 名前 : processDefinitionKey
      • 値 : event_message_usage_intermediate_process
    ../../../../_images/event_0124.png
    図:「IM-LogicDesignerタスク」 - 「プロパティ」 - 「メインコンフィグ」
  8. 「IM-LogicDesignerタスク」から次に進んだことを確認するために「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0125.png
    図:「ユーザタスク」

4.3.17.2.5. 実行結果を確認する

このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行した結果の確認を行います。
  1. 「プロセス定義キー」 event_message_usage_start_process がプロセス定義として、デプロイされていることを確認します。

    ../../../../_images/event_0126.png
    図:プロセス定義一覧 event_message_usage_start_process
  2. 「プロセス定義キー」 event_message_usage_boundary_processevent_message_usage_intermediate_process のプロセスを開始します。

    ../../../../_images/event_0127.png
    図:プロセス開始
  3. 「プロセス定義キー」 event_message_usage_boundary_process が開始され、「メッセージ境界イベント」がついた「ユーザタスク」が開始されていることを確認します。

    ../../../../_images/event_0128.png
    図:プロセス詳細 event_message_usage_boundary_process
  4. 「プロセス定義キー」 event_message_usage_intermediate_process が開始され、「メッセージキャッチイベント」に滞在していることを確認します。

    ../../../../_images/event_0129.png
    図:プロセス詳細 event_message_usage_intermediate_process
  5. 「プロセス定義キー」 event_message_usage_throw_process のプロセスを開始します。

    ../../../../_images/event_0130.png
    図:プロセス開始 event_message_usage_throw_process
  6. 「プロセス定義キー」 event_message_usage_start_process が開始されていることを確認します。

    ../../../../_images/event_0131.png
    図:タスク一覧
  7. 「メッセージ境界イベント」と「メッセージキャッチイベント」がメッセージを受信していないことを確認します。

    ../../../../_images/event_0128.png
    図:プロセス詳細 event_message_usage_boundary_process
    ../../../../_images/event_0129.png
    図:プロセス詳細 event_message_usage_intermediate_process
  8. 「メッセージを送信するプロセス」の「ユーザタスク」を処理します。

    ../../../../_images/event_0132.png
    図:タスク一覧
  9. 「メッセージ境界イベント」に対してメッセージが送信されていることを確認します。

    ../../../../_images/event_0133.png
    図:タスク一覧
  10. 「メッセージキャッチイベント」に対してメッセージが送信されていないことを確認します。

    ../../../../_images/event_0129.png
    図:プロセス詳細 event_message_usage_intermediate_process
  11. 「メッセージを送信するプロセス」の「ユーザタスク」を処理します。

    ../../../../_images/event_0134.png
    図:タスク一覧
  12. 「メッセージキャッチイベント」に対してメッセージが送信されていることを確認します。

    ../../../../_images/event_0135.png
    図:タスク一覧