Upload
tsuyoshi-kusaka
View
754
Download
6
Embed Size (px)
DESCRIPTION
以下の「KyotoGASさんとGDG京都のGoolge Apps Script共催勉強会」(2013/7/5)で発表したときの資料です。 https://sites.google.com/a/kyoto-gtug.org/home/kyotogas-gdgkyoto-20130705 ※KyotoGASについてはこちら→https://sites.google.com/site/kyotogas/home
Citation preview
Google Apps ScriptとクラウドBPMとの連携
株式会社クエステトラ日下 毅
自己紹介
所属 株式会社クエステトラ
経験 ActionScript、Java、VisualBasic等コミュニティ KyotoGASとりまとめ、FxUG京都スタッフ
Google+ http://gplus.to/tsuyoshi.kusaka/Facebook http://www.facebook.com/tsuyoshi.kusakaBlog http://d.hatena.ne.jp/tk_4dd/
※「Google Apps Scriptsでプログラミングを学ぶ本」の
執筆のお手伝いもさせていただきました
会社・製品について
株式会社クエステトラ2008年創業、BPM専業
米Gartner社よりCool Vendor認認定
Questetra BPM Suitehttp://www.questetra.com/ja/クラウド型BPMワークフロー
ノンプログラミングでシステム構築可能Google Appsとの連携
表記について
Google Apps Script → GASGoogle Spreadsheet → SheetJavascript → JSQuestetra BPM Suite → QBPMS
GASで足りない機能を
早く、安く!
Drag & Drop でオリジナルなワークフローシステムを構築できる
すごいヤツ!
マスターデータを管理したい
金額をリアルタイム集計したい!
帳票出力したい!
ワークフローを一括で流したい!予算はないよ♪
要望:マスターデータ管理×QBPMSではマスターデータ管理ができない
要望:金額をリアルタイム集計×QBPMSでは集計できるデータの制約あり
要望:帳票出力×QBPMSでは帳票出力の仕組みがなかった
要望:ワークフローを一括起動×QBPMSにはリストからの一括起動の仕組みがない
QBPMSにはREST APIがある!QBPMSにJSが埋め込める!
そうだGASを使おう!
軽量なWebアプリを準備しやすい
早く作れて、安く使える。学習コストも低く、始めやすい
よくある連携系サービスで足りない部分も作ることで補える
QuestetraGoogle Appsとの連携利用が多い
REST API
Javascriptが埋め込める
GAS足りない部分をGAS+Sheetで補いやすい
サーバ処理と連携可能
クライアント処理と連携可能
QBPMSではマスタ管理の仕組みがない
連携1:Sheetでマスタ管理
idを元にマスターデータから関連情報取得
マスタデータを制御
詰まった点
JSとGASの通信部分でのクロスドメインの問題
(手を抜いて)ブラウザの設定で回避?JS→GAS:リクエスト送信は問題なし
GAS→JS:戻すデータが空っぽになる・・・
↓JSONP方式を使うことで解決
QBPMSでは集計できるデータに制約
連携2:リアルタイム集計
APIで取得したデータをSheetに反映/集計
QBPMSでは帳票出力の機能が無かった
連携3:帳票出力
データを送信してSheetで帳票を作成する
QBPMSには一括処理機能がない
連携4:一括処理
Sheetの実行リストでAPIをたたく
QBPMSにはカレンダーとの連携機能がない
連携5:イベント事に処理起動営業訪問イベントに応じて、ワークフローを起動するオレオレスクリプト。
カレンダーを定期チェック、イベントに応じてAPIをたたく
実運用上考慮した点
セキュリティ観点Keyというリクエストパラメータを持たせる
(サーバアクセスのためGoogle Apps認証ではNG)
運用監視観点GAS処理ログをSheetに出力、
夜間自動処理の結果をメール送付
エラー回避観点「予期しないエラー」等の発生可能性がある部分では
try catchでリトライの仕組みを入れる
困っている点 その1
ソースコードの構成管理GoogleDriveまかせが一般的?
別途管理のためにツール使うべき?
httpリクエスト受信で起動する処理のデバッグ実際にリクエスト送信するしかない?
httpリクエストによる処理のアクセスの制限サーバからのアクセスもあり、GoogleApps認証は不可
IPアドレス制限はまだ無理っぽいhttps://code.google.com/p/google-apps-script-issues/issues/detail?id=2569&thanks=2569&ts=1364320993
困っている点 その2
「予期しないエラー」が出た場合の対応どうすれば詳細事象が把握できる?
「プロジェクトトリガー」の共有共有する方法はある?
オブジェクトのリテラルが数字だけの場合xxx.yyy[‘1’]といった指定ではとれない
今後考えていること
電話との連携
今後考えていることGASからQBPMSのAPI経由でデータ取得
QBPMSでグラフ表示できないケースをカバー
まとめ
GASを使うことで・・・
軽量なWebアプリを準備しやすい
早く作れて、安く使える学習コストも低く、始めやすい
足りない部分を補えるよくある連携系サービスではできることが限られる
補足
には無償アカウントがあります!
無償でもGoogle Appsと連携できます
機能制限なし、期間制限なし5ユーザまで登録可能
よければ試してみてください。http://www.questetra.com/ja/free-saas-bpms/
ありがとうございました