メッセージ開始・受信中間イベント(HTTP)

機能概要

メッセージ開始イベント(HTTP): 外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスを開始します。
メッセージ受信中間イベント(HTTP): プロセスの実行途中で、外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスデータを入力できます。
DataSpider ServistaのBPMアダプタを使用してプロセスを開始する場合は、メッセージ開始イベント(HTTP)ではなく通常の開始イベントを使用します。
      DataSpider ServistaのBPMアダプタに関する詳細は、配布資料「DataSpider Servista との連携概要」を参照してください。

プロセスモデル編集権限を持つ管理者が対象です。

機能一覧

プロセス図 プロセス図の作成を行います。
スイムレーンやタスクを配置し、フローを作成して、作業の順序を定義します。
タスク プロセス実行時に、データを入力するフォームが表示されます。
サービスタスク
(データ設定)
数値型、日付型/日時型、文字型プロセスデータ項目に、動的な値や演算結果を代入します。
サービスタスク
(PDF生成)
業務データ(各プロセスデータ項目に保持されている値)を埋め込んだPDF帳票を自動生成します。
サービスタスク
(選択肢マスタ更新)
指定の選択型プロセスデータ項目の内容を、共有プロセスモデルファイルの[選択型プロセスデータで使用する選択肢マスタ]として更新します。
スクリプトタスク ECMAスクリプトを使用して、業務データ(各プロセスデータ項目に保持されている値)を編集します。
タイマー開始イベント 設定した日時にプロセスを自動的に開始します。
タイマー中間イベント 指定した日時まで待機し、指定日時を経過するとトークンが進みます。
メッセージ開始・
受信中間イベント(HTTP)
メッセージ開始イベント(HTTP): 外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスを開始します。
メッセージ受信中間イベント(HTTP): プロセスの実行途中で、外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスデータを入力できます。
メッセージ開始イベント
(フォーム)
Webページの入力フォームから受け取ったメッセージをもとにプロセスを開始します。
入力フォームは、プロセスデータ項目のレイアウトをWebページに埋め込んで使用します。
メッセージ送信中間イベント
(HTTP)
指定したURLに、HTTPリクエストを送信します。
外部システムまたはDataSpider BPMの他のプロセスへのデータ送信が可能となります。
メッセージ送信中間イベント
(メール)
設定した内容でメールを送信します。
送信先は任意に設定できます。
メール本文に、プロセスデータの入力内容を埋め込むことができます。
メッセージ送信中間イベント
(DataSpider Servista)
指定したDataSpider Servistaのスクリプトを実行することができます。
イベントの実行時には、DataSpider BPM側のプロセスデータ項目の値を、DataSpider Servista側で定義されている入力変数へ渡すことができます。
スクリプト終了時には、DataSpider Servista側で定義されている出力変数の値を、DataSpider BPM側のプロセスデータ項目の値として受け取ることができます。
スクリプトの実行結果(結果の戻り値:ExitStatusおよびエラー内容)を受け取り、その後のタスクや条件分岐処理等で使用することができます。
分岐 プロセス図に分岐がある場合、分岐・遷移先の設定を行います。

項目説明

メッセージ開始・受信中間イベント(HTTP)のプロパティダイアログ表示例(下図はメッセージ開始イベント)


項目名 必須 説明
基本 名称 任意 イベントの名称を入力します。
メモ 任意 イベントの注意点や目的などに関するメモを入力します。
詳細 プロセスデータ項目名 - プロセスデータ項目の一覧を表示します。
データ編集許可 必須 このイベントでのプロセスデータ項目のデータ編集許可を設定することができます。
プロセスデータ項目ごとに、データを受信できるかについて設定します。
データ編集許可の種類と動作は以下の2通りです。
  • 編集可: データを受信することができます。
  • なし「-」: データを受信しません。

マウスでクリックするごとに、次の順序で設定値が変わります。
  • 編集可 --> なし「-」 --> (編集可)...

操作メニュー説明

表示 操作メニュー 説明
基本 [閉じる]ボタン メッセージ開始・受信中間イベント(HTTP)のプロパティダイアログを閉じます。
詳細 [マニュアル表示]ボタン このマニュアルページを表示します。
[URL・パラメータ詳細]ボタン 外部システムまたはDataSpider BPMの他のプロセスから、このイベントを実行する際のURLおよびパラメータの詳細情報を表示します。
URLおよびパラメータは、リリース完了時に確定されます。よって、「(開発中)」バージョンでは、このボタンは無効となります。
      リリースバージョンを選択した後、プロパティダイアログを開くことで有効となります。

メッセージ開始・受信中間イベント(HTTP)の処理仕様

URL・パラメータとデータ受信基本仕様

URL・パラメータ

外部システムまたはDataSpider BPMの他のプロセスから実行する際のURL・パラメータは、以下の手順により確認することができます。
システム管理権限を持つ管理者の場合は、[システム設定]-[プロセスモデル外部連携]メニューでも確認することができます。
  1. メッセージ開始イベント(HTTP)またはメッセージ受信中間イベント(HTTP)を保持しているプロセスモデルをリリースします。
    プロセスモデルがリリースされていない状態では、URL・パラメータを確定することができません。
  2. [バージョン一覧]から、「(開発中)」バージョンではなく、リリースしているバージョンの[詳細]ボタンを押下します。
  3. [バージョン<バージョン番号>の詳細]に表示されるプロセス図から、メッセージ開始イベント(HTTP)およびメッセージ受信中間イベント(HTTP)のプロパティダイアログを表示します。
  4. [URL・パラメータ詳細]ボタンを押下します。
  5. メッセージ開始イベント(HTTP)またはメッセージ受信中間イベント(HTTP)の詳細画面が別のタブページで表示されます。
    URL・パラメータ詳細の表示例(下図はメッセージ開始イベント)

  6. 表示される[URL]および[受信パラメータ]の値を確認します。

データ受信基本仕様

アクセスURLを使用したデータ受信を行う際の基本仕様は以下のとおりです。
メッセージ開始イベント(HTTP): アクセスURLの例)
https://hostname:18443/userweb/System/Event/MessageStart/start?processModelInfoId=420&nodeNumber=2

メッセージ受信中間イベント(HTTP): アクセスURLの例)
https://hostname:18443/userweb/System/Event/IntermediateMessage/receive?processInstanceId=12345&nodeNumber=2

受信可能なデータ(パラメータ)と指定方法

プロセスを特定するためのデータ

パラメータ名 指定例(外部システムから) 説明
processModelInfoId ?processModelInfoId=420 プロセスモデルID
プロセスモデルを新規作成した際に付けられるシーケンス番号です。
メッセージ開始イベント(HTTP)で使用するパラメータです。
プロセスモデルのバージョンを更新してもこの値は変更されません。
      ただし、テスト環境から本番環境への移行作業などで、別環境でアーカイブからの新規作成を行った際には、この値は変更されます。
processInstanceId ?processInstanceId=12345 プロセスID
プロセスを開始した際に付けられるインスタンス管理番号です。
メッセージ受信中間イベント(HTTP)で使用するパラメータです。
プロセスIDは、プロセスを開始した際に付けられる番号であるため、作成時およびリリース時には確定されません。
nodeNumber &nodeNumber=2 メッセージ開始・受信中間イベント(HTTP)ID
リリースした際に、メッセージ開始・受信中間イベント(HTTP)それぞれに付けられるシーケンス番号です。
プロセスモデルのバージョンを更新してもこの値は変更されません。
key &key=NOYU3xDtySJqDhYGf02gj5X2sF1Scoaj セキュリティ鍵
外部システムから実行を行う際に必要なセキュリティ鍵の値です。
設定ファイル(qbpms.config)の「qbpms.api.keyRequied」が「true」の場合にのみ指定します。
      設定ファイル(qbpms.config)に関する詳細は、「設定ファイル(qbpms.config)」を参照してください。
この値が漏えいしないよう注意してください。「プロセスID」や「メッセージ開始・受信中間イベント(HTTP)ID」も共に検知された場合は、外部からの不正アクセスの原因となります。

プロセスデータ

データ型 パラメータ名の書式 指定例(外部システムから) 説明
件名 title &title=test 各プロセスモデルで共通に用意されている[件名]を指定します。
[件名]のパラメータ名は、「title」固定となります。
UTF-8の文字コードでURLエンコードしてください。
文字型 data[XX].input &data[0].input=foo 文字列を指定します。
UTF-8の文字コードでURLエンコードしてください。
数値型 data[XX].input &data[1].input=12.3 数値を指定します。
接頭文字や接尾文字の指定は必要ありません。
小数点の表記などはプロセスデータ項目の設定に依存します。
選択型 data[XX].selects 単一選択の場合:
&data[2].selects=true
複数選択の場合:
&data[2].selects=1&data[2].selects=2
「表示ラベル」ではなく、「選択肢ID」を指定します。
サブタイプが[チェックボックス]の場合で複数の選択肢を指定したい場合は、その数だけパラメータと値を送信するようにしてください。
サブタイプが[チェックボックス]の場合で何も選択しない場合は、パラメータを送信しないようにしてください。
日付型 data[XX].input 年月日の場合:
&data[3].input=2012-03-12
年月の場合:
&data[3].input=2012-03
年の場合:
&data[3].input=2012
月日の場合:
&data[3].input=03-12
プロセスモデルの設定に応じて、以下の形式で指定します。
  • 年月日: yyyy-MM-dd
  • 年月: yyyy-MM
  • 年: yyyy
  • 月日: MM-dd
日時型 data[XX].datetime
または
data[XX].input
data[XX].time
datetimeを使用する場合:
&data[4].datetime=2011-10-27 12:34
datetimeを使用しない場合:
&data[4].input=2011-10-27&data[4].time=13:57
以下の形式で指定します。
  • datetimeを使用する場合: yyyy-MM-dd hh:mm
  • datetimeを使用しない場合:
    • input: yyyy-MM-dd
    • time: hh:mm
ファイル型 data[XX].upload (※1) 添付ファイル名を指定します。
ファイル送信時は POST/multipartで送信してください。
添付ファイルがない場合は、パラメータを送信しないようにしてください。
ユーザ型 data[XX].email &data[6].email=sample@example.com 「ユーザID」または「ユーザ名」ではなく、「メールアドレス」を指定します。
組織型 data[XX].qgroupName &data[7].qgroupName=Sales 組織名を指定します。
UTF-8の文字コードでURLエンコードしてください。
掲示板型 data[XX].console &data[8].console=testcomment 文字列(追記したい1コメントのみ)を指定します。
UTF-8の文字コードでURLエンコードしてください。
テーブル型 data[XX].input (※2) テーブル型を表すXMLを指定します。
入力文字列・数値データ・選択肢IDが格納されたXMLを指定してください。
テーブル型として定義されている設定項目とXMLの項目が一致している必要があります。
テーブルのレコード値をすべてクリアする場合は、<list></list>という内容のXMLを指定してください。
上記の「XX」部分はプロセスデータ定義番号と呼ばれ、プロセスモデル作成時にプロセスデータ項目を定義した順番に依存します。
       プロセスデータ定義番号に関する詳細は、
「プロセスデータ項目」を参照してください。
上記のプロセスデータを受信するには、イベントのデータ編集許可に「編集可」を設定する必要があります。
必須入力の設定をしたプロセスデータについては、そのパラメータに必ず値を設定してください。

※1 メッセージ開始イベント(HTTP): ファイル型の指定例(外部システムから)

<form action="https://hostname:18443/userweb/System/Event/MessageStart/start?processModelInfoId=420&nodeNumber=2"
method="post" enctype="multipart/form-data"> <input type="file" name="data[5].upload" />

※1 メッセージ受信中間イベント(HTTP): ファイル型の指定例(外部システムから)

<form action="https://hostname:18443/userweb/System/Event/IntermediateMessage/receive?processInstanceId=12345&nodeNumber=2"
method="post" enctype="multipart/form-data"> <input type="file" name="data[5].upload" />

※2 共通: テーブル型の指定例(外部システムから)



以下はXMLの構造を把握しやすくするため改行しています。

&data[8].input=
<list>
    <row>
        <col>Apple</col>
        <col>2.5</col>
        <col>3</col>
        <col>7.50</col>
    </row>
    <row>
        <col>Orange</col>
        <col>1.3</col>
        <col>2</col>
        <col>2.60</col>
    </row>
    <summary>
        <col />
        <col />
        <col />
        <col>10.10</col>
    </summary>
</list>

テーブル型のプロセスデータを指定する場合は、以下を注意してください。

イベント実行時の応答メッセージ

レスポンスコード

レスポンスコード 結果 BODY部
200 処理成功 メッセージ開始イベントの場合は、プロセスIDを返します。
500 処理失敗 エラーの詳細をXML形式で返します。

メッセージ開始イベント(HTTP):
<message-start-event-errors>
    <error>
        <key>...</key>
        <detail>...</detail>
    </error>
    ...
</message-start-event-errors>

メッセージ受信中間イベント(HTTP):
<message-receive-event-errors>
    <error>
        <key>...</key>
        <detail>...</detail>
    </error>
    ...
</message-receive-event-errors>

  • <key>: エラーの種類。プロセスデータバリデーションエラーの場合はパラメータ名が表示されます。
  • <detail>: エラー原因の特定に使用される詳細情報です。プロセスデータバリデーションエラーの場合はフォームでのエラー文言と同じとなります。その他エラーではエラー原因となった入力値がそのまま表示されることがあります。

処理失敗(エラー)の通知先

エラーの種類 通知先
processModelInfoId、processInstanceId、nodeNumberのパラメータが存在しない、数値ではない システム管理者
指定されたprocessModelInfoIdのプロセスモデルが存在しない システム管理者
指定されたnodeNumberのノードが存在しない コントロール権限者
指定されたノードがメッセージ開始イベント(HTTP)ノードではない コントロール権限者
稼働中のプロセスモデルが存在しない コントロール権限者
パラメータ名エラー コントロール権限者
プロセス数の上限に達している コントロール権限者
データバリデーションエラー(整数型に文字が入っているなど) コントロール権限者
必須のデータが入力されていない コントロール権限者

注意事項

DataSpider BPMでは、一度にプロセスを開始できる数に関して以下の設定および制限を設けています。
メッセージ開始イベント(HTTP)を使用して、外部システムまたはDataSpider BPMの他のプロセスからプロセスを開始する際に影響します。 使用頻度および状況を考慮し、設定値を適宜変更してください。
設定ファイル(qbpms.config)に関する詳細は、「設定ファイル(qbpms.config)」を参照してください。