クラウド型 ワークフロー

Questetra と Cacoo の連携プレー(その4)

Questetra BPM Suite の機能拡張(Version 9.7)により、Google App Engine を利用せずに、Cacoo と連携します

再び Questetra と Cacoo の連携についてです。「その3」を最終回としていましたが、追加で「その4」を書きます。

Questetra BPM Suite には、複数人でタスクを処理することを意図した、チームタスクという機能を持っています。業務プロセス上の特定のチームタスクを Cacoo 上で行う、タスクの成果物として Cacoo 上で作成した図を Questetra BPM Suite に取り込むということを実現します。 「その1」から「その3」で説明した仕組みでは、Google App Engine に仲介をさせることで、Questetra BPM Suite と Cacoo のやり取りを実現していました。今回は、Google App Engine 抜きで同じことを実現します。

以下は「その1」から「その3」で説明した仕組みの概要図です。

qbpms-cacoo

これが以下のようになります。かなりシンプルになっています。今回は Questetra BPM Suite におけるプロセスモデルの設計がメインになりますので、その内容について詳細に説明します。

qbpms-cacoo2

1.データの設定

この仕組みを実現する上で、必要なデータ項目は以下の4つです。

番号 名前 データ型 補足説明
0 JSON 文字 複数行 Cacoo の API を呼び出して、図を新規作成する際、応答として受け取った JSON データを格納します。
1 編集ページ 文字 単一行 ユーザが図を編集する際の URL です。JSON データから抽出します。
2 ダウンロードAPI 文字 単一行 作成された図をPNGでダウンロードする際の API の URL です。JSON データから抽出します。
3 完成図 ファイル 作成された図のPNGファイルを格納します。

2. 図の作成

1つ目のメッセージ送信中間イベント(HTTP)で、Cacoo 上に図を新規作成します。使用する API は前と同じでこちらです。作成した結果の応答(JSON)は、プロセスデータに保存します。イベントの設定は以下のとおりです。

  • アクセスURL  https://cacoo.com/api/v1/diagrams/create.json
  • HTTP Method GET
  • 送信パラメータ
    パラメータ名 補足説明
    title 件名 Cacoo 上に作成する図のタイトルです。何でも構わないのですが、「件名」を使用しています。
    apiKey 認証情報です。図を作成するユーザの API キーを指定してください。
    security public 固定値で指定してください。URL を知っているユーザであれば、誰でも編集可能としています。
  • レスポンスをプロセスデータに保存する
  • 保存先のプロセスデータ項目 2: JSON

3. URLの抽出

スクリプトタスクを用いて、2 で取得した JSON データを解析し、2つのURLを抽出します。スクリプトは以下のとおりです。

var json = JSON.parse(data.get("0"));
retVal.put("1", json.url);
retVal.put("2", json.imageUrlForApi);

「0: JSON」のデータ内にあるJSONを解析し、「1: 編集ページ」「2: ダウンロードAPI」に格納します。抜き出している情報は、以下2つです。

  • 作成した図を編集するためのURL
  • API からのみアクセス可能な、図をダウンロードするURL

4. 図のダウンロード

タスク終了後、2つ目のメッセージ送信中間イベント(HTTP)で図をダウンロードしています。使用する API はこちらです。イベントの設定は以下のとおりです。

  • アクセスURL  #{data[‘2’]}
  • HTTP Method GET
  • 送信パラメータ
    パラメータ名 補足説明
    apiKey 認証情報です。図を作成するユーザの API キーを指定してください。
  • レスポンスをプロセスデータに保存する
  • 保存先のプロセスデータ項目 3: 完成図
  • 保存する際のファイル名 #{processInstanceTitle}.png

 

いかがでしょうか。今回は『9.7.0 で登場する新機能』を使用し、既存の仕組みを簡略化しました。プロセスアーカイブも添付します。拡張子が zip になっていますが、これはブログシステムの関係ですので、qar に変更してください。また API Key の値は変数として定義していますので、自らのアカウントの API Key の値に変更して使用してください。

あわせて読みたい
15.野望・展望・志 の前の記事 何のために、創るのか?
15.野望・展望・志 の次の記事 ウワサのBPMで、しりとりアプリを作る!
Hatanaka Akihiro の他の記事 電光掲示板で業務の状況をモニタリングする

アーカイブ

 RSS