Questetra BPM Suite の外からプロセスを開始する(準備編)

curl コマンドや外部プログラムからプロセスを開始する

Questetra BPM Suite で新しくプロセスを開始しようと思った時、ログインして「新規開始」ページを開いて……という手順を踏みます。しかしワークフローアプリの方でメッセージ開始イベント (HTTP) を設定しておくと、curl コマンドや自分で用意したプログラムから HTTP リクエストを送ることで、プロセスを開始することができるようになります。これにより、人の手を介さずにプロセスを自動開始したり、システム間での連携を図ったりといったことが可能になります。

メッセージ開始イベント (HTTP) は普通の開始イベントと同じように、ワークフロー図の中に設置して使用します。開始イベントはユーザが手動で「新規開始」をクリックすることでプロセスを開始しますが、メッセージ開始イベント (HTTP) は外部システムから HTTP リクエストを受信した場合にプロセスを開始します。各メッセージ開始イベント (HTTP) にはエンドポイントが与えられており、外部システムからの利用が可能になっています。

本連載では以下の内容を扱います。

  • メッセージ開始イベント (HTTP) の設定
  • IPアドレス制限の設定
  • curl コマンドを用いたプロセス開始
  • Python を用いたプロセス開始

今回はこのうち、上から「IPアドレス制限の設定」までを扱います。

メッセージ開始イベント (HTTP) の設定

メッセージ開始イベント (HTTP) の動作を確認するための簡単なアプリを作成しましょう。アプリを新規作成して、まず次のようなワークフロー図を描いてください。メッセージ開始イベント (HTTP) は advanced パレットの「開始イベント」カテゴリ内にあります。

データ項目はひとまず「件名」だけで構いません。データ編集許可は、メッセージ開始イベント (HTTP) を「編集可」、「確認」タスクを「表示のみ」に設定してください。

スイムレーンの処理担当者は、デフォルトのあなたのアカウントのみのままで大丈夫です。

以上の設定が終わったら、保存してアプリをリリースしましょう。これによりエンドポイントが確定します。アプリ詳細画面にあるワークフロー図で、メッセージ開始イベント (HTTP) のプロパティを開いてください。URL・パラメータのボタンがクリックできるようになっているはずです。このメッセージ開始イベント (HTTP) 詳細でエンドポイントの URL や各種パラメータ名などが確認できるので、覚えておいてください。

「URL・パラメータ」ボタンがグレーアウトされていてクリックできない時は、リリース済のバージョンのアプリ詳細画面を開いているかどうか確認してください。開発中のバージョンだった時は、詳細画面の「バージョン一覧」でバージョンを切り替えられます。

IP アドレス制限の設定

エンドポイントへのアクセスに用いる IP アドレスを Questetra BPM Suite に登録しましょう。初期設定では、外部ネットワークからのメッセージ開始イベント (HTTP) へのアクセスはすべて拒否されてしまいます。

IP アドレス制限の設定はシステム設定 > IPアドレス制限内にあります。先ほど作成したアプリのメッセージ開始イベント (HTTP) に対するアクセス許可の設定をしましょう。

「システム設定」へはシステム管理権限を持ったアカウントでないと入れません。

パスプレフィックスの指定

IP アドレス制限はパスプレフィックスごとに設定することができます。特定のメッセージ開始イベント (HTTP) への IP アドレス制限をするためには、メッセージ開始イベント (HTTP) – 特定ノードの設定項目を追加してください。「メッセージ開始イベント/受信タスク設定」のプルダウンメニューから選択できます。特定のノードを示すためのパスプレフィックスは以下のようになります。

/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/

processModelInfoId はそれぞれのアプリに振られた番号、nodeNumber はワークフロー図上のそれぞれのノードに振られた番号を指しています。この 2 つの番号はメッセージ開始イベント (HTTP) のエンドポイント URL にも使われているので、それで確認することをおすすめします。たとえば、エンドポイント URL が

であるときは、processModelInfoId が 8 、nodeNumber が 0 になります。エンドポイント URL はアプリ詳細画面のワークフロー図から確認してください。

他にも、processModelInfoId はアプリ ID の頭から m を取ったものと一致するので、「アプリ詳細」でアプリ ID を確認して把握する、という方法もあります。nodeNumber は、ワークフロー図における各ノードのプロパティウインドウ内に「ノード番号」として記載されています。

アクセスを許可する IP アドレスの指定

各パスプレフィックスに対して、アクセスを許可する IP アドレスを指定できます。IP アドレスは次のように入力してください。

  • グローバル IP アドレスで入力してください。
  • IPv4 を使用してください。IPv6 には対応していません。
  • IP アドレスは単独指定/範囲指定、どちらも可能です。
    • 範囲指定にはサブネットマスクを使用してください(例: 69.208.0.0/22
  • 0.0.0.0/0を指定するとすべてのグローバル IP アドレスからのアクセスを許可します。
  • 空にすると外部ネットワークからの全アクセスを拒否します。

また、IP アドレス制限設定はパスプレフィックスが長いものが優先して適用されます。例えば「全体設定」やパスプレフィックス /System/ に対して 0.0.0.0/0 が許可されていたとしても、特定ノードに対してより厳しい IP アドレス制限が設けられていれば、そのノードへのアクセス制限へはそちらの設定が適用されます。設定項目の並び順は優先度に影響しません。試しに先ほど作成したアプリのメッセージ開始イベント (HTTP) に対して、単独 IP アドレスなど狭い範囲のアクセス許可設定をしてみましょう。そしてワークフロー図からメッセージ開始イベント (HTTP) 詳細」を開いて、「接続が許可されているネットワーク」を確認してください。パスプレフィックスが他の設定項目より長いので、優先して設定値が適用されているはずです。

設定を変更したら「保存」ボタンを押すのを忘れないように!

ここまでで、外部からのプロセス開始を行う準備が整いました。次の記事では、curl コマンドを用いてコマンドラインからプロセスを開始する方法を取り上げます。

次: Questetra BPM Suite の外からプロセスを開始する(curl編)

付録: IP アドレス制限の設定方法詳細

IP アドレス制限の有効化/無効化

「IP アドレス制限を有効にする」のチェックボックスで行えます。無効にすると IP アドレスによるアクセス制限を行わなくなるため、以下の設定項目もなくなります。基本的には無効にしないでください。

全体設定

お使いの Questetra BPM Suite 環境全体にアクセス可能な IP アドレスを指定できます。ここでのアクセス許可は、メッセージ開始イベント/受信タスク以外にも及びます。

メッセージ開始イベント/受信タスク設定

全体設定よりも細かくアクセス許可範囲を指定できます。今回使用するのは「メッセージ開始イベント (HTTP)」なので、

  • 全て
  • メッセージ開始イベント (HTTP) – 全アプリ
  • メッセージ開始イベント (HTTP) – 特定アプリ
  • メッセージ開始イベント (HTTP) – 特定ノード

のいずれかを追加することになります。

「特定アプリ」を利用する場合は当該のアプリを新規作成するまで、「特定ノード」を利用する場合は当該のアプリをリリースするまで、パスプレフィックスが確定しません。パスプレフィックスは以下のようになります。

アクセス許可範囲 パスプレフィックス
全て /System/
全アプリ /System/Event/MessageStart/
特定アプリ /System/Event/MessageStart/{processModelInfoId}/
特定ノード /System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/

上部へスクロール

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む