TsuyoshiKusakaの日々思うこと その2

ITエンジニア、@tsuyoshikusaka

Questetra BPM SuiteとGoogle AppsをGASで連携する方法

「Questetra BPM Suite」のメッセージ送信中間イベントhttpを使って、Google Apps Script(GAS)経由でGoogle Spreadsheetにプロセスデータを投入ができるのだが、最近Google Apps Scriptの仕様が変わったので、とりあえず設定手順をメモ

                                                          • -

(1)スクリプト作成

スクリプトの中身は本題ではないので割愛。
単に連携できているかどうか確認するだけなら以下のスクリプトでログが出ているかを確認するだけでもいい
※ログはメニューの「表示」→「ログ」で見れる

function doGet(e) {
receive_(e);
return UiApp.createApplication();
}

function doPost(e) {
receive_(e);
return UiApp.createApplication();
}

function receive_(e) {
Logger.log(e);
}

「Questetra BPM Suite」の「使い方」の「【自動処理設定】 業務帳票がGoogleドキュメントに「自動出力」されるように設定する」などを参考にスクリプト作成するというのでもいい

※今回の仕様変更で、Google Apps Scriptのファイル(という呼び方は正しくないかもしれないが)は内容によって、Google Spreadsheetにひもづけるか、スクリプト単体にしてしまうかを選択できるようにもなった

                                                          • -

(2)スクリプトにバージョン付与

スクリプト設定画面のメニューの「ファイル」→「バージョンを管理」を選択
 ↓
「Manage Versions」画面が出てくるので「Save New Version」ボタン押下

                                                          • -

(3)スクリプトを公開

メニューの「公開」→「ウェブアプリケーションとして導入」を選択
 ↓
「Deploy as web app」画面が出てくるので
 「Project Version」で最新バージョンの番号を選択
 「Execute the app as」で「me(xxx)」(xxxには自分のアドレスが入る)を選択
 「Who has access to the app」で「Anyone, even anonymous」を選択
して「Deploy」ボタン押下
※そもそもGoogle Apps側のDriveの設定で外部公開許可がないと「Anyone, even anonymous」が選択肢に出てこない
※この公開設定がうまくいってないとレスポンスコード302(Moved Temporary)のエラーとなる

                                                          • -

(4)Questetra BPM Suiteのメッセージ送信中間イベントhttpの設定

「ウェブアプリケーションとして導入」設定時に表示される「Current web app URL」のURLをメッセージ送信中間イベントhttpの「アクセスURL」に設定
Google Apps Scriptを少し修正して動作確認するのに、再度バージョン付与して公開するというのがめんどうな場合は「latest code」のURL(開発用で常に最新コードが呼び出される)を入れるとよい

                                                          • -

Google Apps Scriptの各設定画面詳細についてはこちらの記事を参考にさせてもらうといいかと


(以下、2013/7/31 加筆)
Google Apps ScriptからGoogle Spreadsheetへのアクセスする処理を書いた場合は、doGet()かdoPost()を1回デバッグ実行を走らせて、承認を通さないと動かないので注意要(以前からそういう仕様だったのか、最近変わったのかは不明)