自動処理工程[受信タスク(HTTP)]をフロー図の途中に配置すれば、各案件を滞留させ、HTTPリクエストを待ち受けさせる事ができます。外部プログラムは、待受中の案件IDと待受場所を指定してリクエストします。例えば "Web制作プロセス" が "翻訳プロセス" を呼び出し、その翻訳結果を待ち受ける仕組みを構築できます。
1. HTTP待ち受けの活用シーンについて、概要を理解する
- a. アウトソース作業の完成待ち
- 途中の翻訳工程を 「翻訳プロセス」 に投げ、その翻訳結果を待つ
- b. 外部システム通信待ち
- 基幹システムに売上集計リクエスト情報を投げ、その集計結果を待つ
- c. 2段階通信待ち
- 検知システムから障害情報を受け取り人間対応を行いつつ、復旧情報の受け取りを待つ
2. HTTP待ち受けタスクを設定する
- 1. データ受信項目
- データ閲覧レベル(読み書き権限)を[編集可能(読み書き)]に設定します
- タスクの詳細にて待ち受けURL(リクエストURL)やパラメータの "名前" 等を確認できます
- データ受信パラメータは、データ項目で設定した[フィールド名]です
3. データ送信の仕組みを準備する (外部の設定)
- 1. Request URI
- アプリのIDと待ち受けタスクのノード番号を Path Parameter で指定
- 2. POST body parameter
- "案件ID" "APIキー" および "代入したい業務データ" を指定
$ curl https://example.questetra.net/System/ReceiveTask/HttpPost/123/0/receive \ -d "processInstanceId=456" \ -d "key=XYZXYZ" \ -d "q_exampleString=foo" \ --data-urlencode "q_exampleJPString=テキスト"
- リクエストパラメータは、 GET/POST どちらでも構いません(POST推奨、一部で GET 禁止)
- ファイルデータは POST multipart で送信します
- 同じワークフロー基盤上の通信であれば、システム変数 ${var[applicationRoot]} の利用が有効です
- APIキー (key) の値は、半角英数/最大100文字で任意に設定することが可能です
- 初期設定では、外部ネットワークからの通信は許可されておりません (M312)
- 起動URLごとに、アクセス元のIPアドレスを制限することが可能です (M312)
- 業務データパラメータの値を空文字列にして送った場合は、値をクリアする動作となります
- 業務データパラメータを送信しなかった場合は、入力されている値を現状維持します
BPMNアイコン:受信タスク(HTTP)
R2210: データ受信用パラメータ名の命名規則
A. JSON-Webhook 等に対応する
- フロー途中に[受信タスク(Webhook)]を配置する
待ち受けノードを[受信タスク(HTTP)]から自動処理工程[受信タスク(Webhook)]に変更します - 受信方式を設定する
通信パターンを指定します (例:"POST application/json"、"PUT text/xml" など) - Body 部の格納先を設定する
受信データが格納される複数行文字列型データを指定します - レスポンスを規定する
必要に応じて案件データを挿し込みます ("application/json;charset=UTF-8"、"text/xml;charset=UTF-8") - API Key を設定する
案件データを参照する形で指定します - 締切時刻を設定する(オプション)
自動工程に[境界イベント]が表示され、タイムアウト時のフローを定義できるようになります
- 通常のREST通信ではあり得ないパターンも設定可能ですが推奨されません (例:Content-Type を指定した GET 通信など)
- 多くの場合、受信データから必要データを抽出するために何らかの自動処理工程が下流に配置されます
- Query パラメータが付与されても[受信タスク(Webhook)]は Query 部を無視します
- 案件(プロセス)ごとに API key を動的変化させることが可能となります
BPMNアイコン:受信タスク (Webhook)
R2272: EL式による文字列としての出力(データ設定式)
コメント
0件のコメント
サインインしてコメントを残してください。