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

curl コマンドを用いてプロセスを開始する

データ転送を行えるコマンドである curl を用いて、Questetra BPM Suite にアクセスしてプロセスを開始しましょう。curl コマンドは Mac や Linux ではターミナル上でインストール不要で使用できます。Windows でも Windows10 以降では標準で curl がインストールされています。本記事は Windows のコマンドプロンプトで curl コマンドを用いる前提で進めます。

まずは curl コマンドを実行して特定の URL にアクセスすることで、プロセスを開始してみましょう。作成したアプリに設置した[メッセージ開始イベント (HTTP)]のエンドポイント URL などが必要になるので、「メッセージ開始イベント (HTTP) 詳細」を開いておいてください。

[メッセージ開始イベント (HTTP)]へのリクエストは POST メソッドで送信する必要があります。-X オプションを使ってリクエストメソッドをPOSTに指定します。

今回はプロセスを開始すると同時に、データ項目「件名」に入力する内容も送信することにします。エンドポイント URL の末尾にパラメータを付与し、アプリに送信したいデータを渡すことができます。例えば件名を「test」にするならば、次のようになります。


curl -X POST "https://example.questetra.net/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/start?key={API キー}&title=test"

エンドポイント URL と API キーは置き換えてください。「メッセージ開始イベント (HTTP) 詳細」の受信パラメータ一覧に記載されているので、そこからコピー&ペーストしてください。受信パラメータ名も受信パラメータ一覧に列挙されています。エンドポイント URL の末尾に ? を付け、その後ろに name=content の形式でデータを付与します。

コマンドを実行すると、プロンプト画面に開始したプロセスの ID が返されます。あなたのアカウント(処理担当者)で Questetra BPM Suite にログインすれば、開始されたプロセスの「確認」タスクが届いているはずです。このとき、件名がパラメータに渡したものになっているかどうか確認してください。

さまざまなデータを送信する

では、件名以外のデータを送るにはどうすればいいでしょうか? データ項目には文字やユーザなど多くの種類が用意されていますが、それらのほとんどは件名と同じように送信できます。アプリのデータ項目を追加して確かめてみましょう。

アプリの設定

以下のようにデータ項目を追加してください。必須のチェックはいずれも不要です。データ編集許可は件名と同じように、メッセージ開始イベント (HTTP) に対して「編集可」、「確認」タスクに対しては「表示のみ」に設定してください。

項目名 データ型 フィールド名 その他の設定
文字0 文字(単一行) q_str
数値1 数値 q_float
  • 小数点以下の桁数: 2
選択2 選択(セレクトボックス) q_selects
  • 選択肢は初期設定のまま
    • 1 つ目の選択肢ID: true
    • 2 つ目の選択肢ID: false
    • 初期選択値: true
日付3 日付(年月日) q_date
日時4 日時 q_datetime
ファイル5 ファイル q_file
ユーザ6 ユーザ(検索セレクトボックス) q_email
組織7 組織 q_group

ファイル以外を curl で送信する

では、追加したデータ項目も curl で送信してみましょう。ファイル型だけはやや方法が異なるので、別項で取り上げます。

先ほどのコマンドでは ? と name=content の形式でデータを付与しましたが、今回は –data-urlencode オプションを使用します。API キーや title=test も含めて、1つずつ –data-urlencode オプションを使って追加します。

なお、 –data-urlencode オプションを指定した場合は自動的に POST メソッドでの送信となるので、 -X POST は省略できます。

複数のデータ項目に送信するときは、次のように書けます。


curl https://example.questetra.net/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/start ^
--data-urlencode "key={API キー}" ^
--data-urlencode "name1=content1" ^
--data-urlencode  "name2=content2" ^
 ...

例えば次のようなコマンドで、件名 (title) に「test」、数値 (q_float) に「1.23」を入力した状態でプロセスを開始できます。


curl https://example.questetra.net/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/start ^
--data-urlencode "key={API キー}" ^
--data-urlencode "title=test" ^
--data-urlencode "q_float=1.23"

各データ型に対する具体的な記入例などは以下の表を参考にしてください。

各データ型に対する入力方法一覧
データ項目 サブタイプ フォーマット 入力例 備考
APIキー key={API キー} API キーはイベント詳細に記載
件名 任意の文字列 title=test 文字数制限などはデータ項目設定に依存
(デフォルトでは 256 文字以内)
文字 単一行 任意の文字列 q_str=aiueo 文字数制限などはデータ項目設定に依存
複数行
数値 任意の数値 q_float=1.23 入力値の範囲制限・小数点以下の桁数などはデータ項目設定に依存
(入力値の小数点以下の桁数が設定より多いとエラー)
小数点は “.”(ピリオド)
桁区切り文字はなし
選択 ラジオボタン 選択肢ID q_selects=true 各選択肢に対応する選択肢 ID はデータ項目設定に依存
セレクトボックス
検索セレクトボックス
チェックボックス 選択肢ID
(複数送信可)
q_selects=Monday 各選択肢に対応する選択肢 ID はデータ項目設定に依存
複数選択する場合は、同じパラメータ名で複数送信
日付 年月日 yyyy-mm-dd q_date=2018-11-01
年月 yyyy-mm q_date=2018-11
月日 mm-dd q_date=11-01
yyyy q_date=2018
日時 yyyy-mm-dd HH:MM q_datetime=2018-11-01 10:00
ファイル ファイルのパス q_file=@ques-kun.png ファイルアップロードの場合、-F オプションが必要(後述)
複数のファイルをアップロードする場合は、同じパラメータ名で複数送信
ユーザ セレクトボックス ユーザのEメールアドレス q_email=example@email.com
検索セレクトボックス
組織 組織名 q_group=10 管理部

ファイルを送信する

上にもある通り、ファイル型のデータ項目にデータを送信しない場合は、–data-urlencode オプションでの POST 送信がおすすめです。しかし application/x-www-form-urlencoded 形式でデータを送信する –data-urlencode オプションではファイルを取り扱えません。そのため、ファイル型のデータ項目を扱う時は、 multipart/form-data 形式でデータ送信を行う -F オプションを使用する必要があります。また、–data-urlencode オプションと -F オプションを同時に使用することはできません。


curl https://example.questetra.net/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/start ^
-F "key={API キー}" ^
-F "{ファイル型項目のパラメータ}=@{ファイルのパス}" ^
-F "name1=content1" ^
 ...

例えば次のように書くと、件名 (title) を「test」とした上で、ques-kun.png をアップロードしてプロセスを開始できます。


curl https://example.questetra.net/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/start ^
-F "key={API キー}" ^
-F "title=test" ^
-F "q_file=@ques-kun.png"

これまでの内容をまとめると、次のようなコマンドも書けます。


curl https://example.questetra.net/System/Event/MessageStart/{processModelInfoId}/{nodeNumber}/start ^
-F "key={API キー}" ^
-F "title=テスト" ^
-F "q_str=プロセス開始テストです" ^
-F "q_float=1.23" ^
-F "q_selects=false" ^
-F "q_date=2018-04-01" ^
-F "q_datetime=2018-04-01 12:34" ^
-F "q_file=@ques-kun-01.png" ^
-F "q_file=@ques-kun-02.png" ^
-F "q_email=questetra+Canarias@gmail.com" ^
-F "q_group=10 管理部"

ファイル型/ユーザ型データに渡す値については

  • ques-kun-01.png / ques-kun-02.png は適当なファイル名に
  • questetra+Canarias@gmail.com はあなたのアカウントのメールアドレスなど、ご利用のシステム内にあるアカウントのメールアドレスに

それぞれ置き換えて、実行してください。このコマンドを実行すると、次のようにプロセスが開始されます。

このケースではファイルアップロードがあるため -F オプションを用いています。前述の通り、ファイル型を扱わないケースでは –data-urlencode オプションがいいでしょう。
メッセージ開始イベント (HTTP) に日本語などの非 ASCII 文字を含む文字列を送信する際、文字コードは UTF-8 である必要があります。文字化けなどの問題が発生した場合は、ターミナルの文字コード設定を確認してください。

このように、プロセスを開始するのに curl コマンドを利用することができます。シェルスクリプトや cron などを用いれば自動化の幅も拡がります。ぜひ様々に工夫して、メッセージ開始イベント (HTTP) を活用してください。次回は Python から HTTP リクエストを送る場合のコード例を紹介します。

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

「Questetra BPM Suite の外からプロセスを開始する(curl編)」への3件のフィードバック

  1. ピンバック: Questetra BPM Suite の外からプロセスを開始する(Python編) – Questetra Support

  2. ピンバック: Questetra BPM Suite の外からプロセスを開始する(エラー対処編) – Questetra Support

  3. ピンバック: メッセージ開始イベント(HTTP) – Questetra Support

コメントは受け付けていません。

上部へスクロール

Questetra Supportをもっと見る

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

続きを読む