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

4.3.17.1. シグナルイベントを使用する

このチュートリアルでは、シグナルイベントを使用して、シグナルの送信とシグナルの受信の定義方法を解説します。
シグナルは、シグナル名ごとに受信を待機しているプロセスに一斉に送信(ブロードキャスト)し、シグナル名での受信を待機している全てのプロセスを進めます。
シグナルを送受信するイベントは、以下のとおりです。
シグナルを送信するイベント
  • シグナルスローイベント
シグナルを受信するイベント
  • シグナル開始イベント
  • シグナル境界イベント
  • シグナルキャッチイベント

コラム

各イベントの詳細については、以下を参照してください。

コラム

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

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

コラム

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

4.3.17.1.1. シグナルを受信することにより開始するプロセス定義を作成する

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

    1. キャンパスの空白部分をクリックし、「メッセージ&シグナル」タブにある「シグナル」の「追加」リンクをクリックします。

      ../../../../_images/event_0002.png
      図:「プロセス」 - 「プロパティ」 - 「メッセージ&シグナル」
    2. 「シグナル」の「ID」と「名前」を設定します。

      • ID : tutorial_signal
      • 名前 : tutorial_signal
      ../../../../_images/event_0003.png
      図:「シグナル」
  2. 「シグナル開始イベント」を配置します。

  3. 「シグナル開始イベント」 の「メインコンフィグ」タブから、「参照シグナル」のプルダウンリストで「 tutorial_signal 」を選択します。

    ../../../../_images/event_0004.png
    図:「シグナル開始イベント」 - 「プロパティ」 - 「メインコンフィグ」
  4. キャンパスの空白部分、または、プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロパティ」 の 「プロセス」タブから、項目を以下のように設定してください。
    • プロセス定義キー : event_signal_usage_start_process
    ../../../../_images/event_0005.png
    図:「プロパティ」 - 「プロセス」
  5. 「シグナル開始イベント」で開始されたことを確認するために「ユーザタスク」を配置します。

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

4.3.17.1.2. シグナルを受信することによりユーザタスクを中断するプロセス定義を作成する

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

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

  3. キャンパスの空白部分、または、プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロパティ」 の 「プロセス」タブから、項目を以下のように設定してください。
    • プロセス定義キー : event_signal_usage_boundary_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_0008.png
    図:「プロパティ」 - 「プロセス」
  4. 「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0009.png
    図:「ユーザタスク」
  5. 「シグナル境界イベント」を「ユーザタスク」に配置します。

    ../../../../_images/event_0010.png
    図:「シグナル境界イベント」
  6. 「シグナル境界イベント」の「メインコンフィグ」タブから、「参照シグナル」のプルダウンリストで「 tutorial_signal 」を選択します。

    ../../../../_images/event_0011.png
    図:「シグナル境界イベント」 - 「プロパティ」 - 「メインコンフィグ」
  7. 「シグナル境界イベント」で「ユーザタスク」が中断された確認するために別の「ユーザタスク」を配置します。

    • 担当者 : aoyagi
    ../../../../_images/event_0012.png
    図:「シグナル境界イベント」で中断された後に遷移する「ユーザタスク」

4.3.17.1.3. シグナルを受信することにより先に進むプロセス定義を作成する

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

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

  3. キャンパスの空白部分、または、プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロパティ」 の 「プロセス」タブから、項目を以下のように設定してください。
    • プロセス定義キー : event_signal_usage_intermediate_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_0014.png
    図:「プロパティ」 - 「プロセス」
  4. 「シグナルキャッチイベント」を配置します。

    ../../../../_images/event_0015.png
    図:「シグナルキャッチイベント」
  5. 「シグナルキャッチイベント」の「メインコンフィグ」タブから、「参照シグナル」のプルダウンリストで「 tutorial_signal 」を選択します。

    ../../../../_images/event_0016.png
    図:「シグナルキャッチイベント」 - 「プロパティ」 - 「メインコンフィグ」
  6. 「シグナルキャッチイベント」から次に進んだことを確認するために「ユーザタスク」を配置します。

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

4.3.17.1.4. シグナルを送信するプロセス定義を作成する

シグナルを送信するプロセス定義を作成します。
../../../../_images/event_0018.png
図:完成イメージ
  1. 「シグナル」を登録します。前項と同一ファイル内でプロセス定義を作成している場合は行う必要はありません。

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

  3. キャンパスの空白部分、または、プールをクリックし、「プロパティ」をプロセス全体切り替えます。
    「プロパティ」 の 「プロセス」タブから、項目を以下のように設定してください。
    • プロセス定義キー : event_signal_usage_throw_process
    • 処理対象ユーザ : aoyagi
    ../../../../_images/event_0019.png
    図:「プロパティ」 - 「プロセス」
  4. 「シグナルスローイベント」を配置します。

    ../../../../_images/event_0020.png
    図:「シグナルスローイベント」
  5. 「シグナルスローイベント」の「メインコンフィグ」タブから、「参照シグナル」のプルダウンリストで「 tutorial_signal 」を選択します。

    ../../../../_images/event_0021.png
    図:「シグナルスローイベント」 - 「プロパティ」 - 「メインコンフィグ」
  6. 「シグナルスローイベント」から次に進んだことを確認するために「ユーザタスク」を配置します。

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

4.3.17.1.5. 実行結果を確認する

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

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

    ../../../../_images/event_0024.png
    図:プロセス開始一覧
  3. 「プロセス定義キー」 event_signal_usage_boundary_process が開始され、「シグナル境界イベント」がついた「ユーザタスク」が開始されていることを確認します。

    ../../../../_images/event_0025.png
    図:プロセス詳細 event_signal_usage_boundary_process
  4. 「プロセス定義キー」 event_signal_usage_intermediate_process が開始され、「シグナルキャッチイベント」に滞在していることを確認します。

    ../../../../_images/event_0026.png
    図:プロセス詳細 event_signal_usage_intermediate_process
  5. 「プロセス定義キー」 event_signal_usage_throw_process のプロセスを開始し、シグナルを送信(ブロードキャスト)します。

    ../../../../_images/event_0027.png
    図:プロセス開始一覧 event_signal_usage_throw_process
  6. それぞれのプロセスが、シグナルを受信して次のユーザタスクに進んでいることを確認します。

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