仕事依頼はWebフォームに投稿してね、全部処理するから

2010年11月17日
「人間は受け身な存在である」(哲学?!)
『組織の外から仕事が飛んでくる仕組み』があれば、その対処の組織内プロセスは日々改善される。あえて難解に言えば(??)、『外部システムからのプロセス起動』こそが『組織の外部環境適合進化』を促進するのだ。(社外、部外、チーム外、隣人…)

これは Google Docs の Spreadsheet Form に入力された問い合わせ(仕事)が、自動的に流れるワークフローだ。途中の分岐は、どうしても経理部門に聞かなければ分からない事を聞くための分岐になっている。


んっ? 良く考えれば、口頭、メール、…問い合わせ(仕事)と言うヤツは、Webフォーム以外からも色々な形で飛んでくるんだった…。




Questetra BPM Suite SaaS Edition での設定例

1. [データ受信側の設定] 外部起動できるワークフローを作成する
メッセージ開始イベントのあるプロセスモデルを作成する。
今回は上述のプロセスモデルを作成する。

2. [データ受信側の設定(テスト)] 作成したワークフローの受信テストをする
(必ずしも実施する必要はない)
アクティベート後に『バージョン詳細』から「外部システム連携用のURL」を確認する

例)
https://s.questetra.net/XXXXXXXX/System/Event/MessageStart/start?processModelInfoId=ZZ&nodeNumber=WW&key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
今回は data[0] (TimeStamp)、data[2] (Name)、data[3] (Email)、data[4] (Inquiry) の4要素が入力値なので、例えば、
https://s.questetra.net/XXXXXXXX/System/Event/MessageStart/start?processModelInfoId=ZZ&nodeNumber=WW&key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&data[0].input=2010-11-01&data[0].time=12:45&data[1].input=Barack+Obama&data[2].input=barack@example.com&data[3].input=Can+we...Yes+we+can
と言うアクセスを受けると新規プロセスが一つ生成されるはず。そこで試しに、コノ長いURLをブラウザに入力してみる(真っ白画面で成功)。すると、タスク一覧にタスクが一つ出現する。

  • (参照)マニュアルパラメータ定義方法
  • (注1)「XXXXXXXX」と「YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY」はIDとパスワードみたいなモノなので、各自で置き換え。(公開しちゃダメ)
  • (注2)「ZZ」と「WW」は利用環境によって数字が異なる。


3. [データ送信側の設定] Google Docs で「フォーム」を作成する
Google Docs にログインし『新規作成>フォーム』で新規ファイルを作成する。
(サイトデザインも選べる)

  • ファイル名「INQUIRY」
  • データ項目として「Your Name」「Your Email」「Inquiry」(段落テキスト)の3つ作成

するとA列に「タイムスタンプ」、B列に「Your Name」C列に「Your Email」D列に「Inquiry」のスプレッドシートが出来上がる。

4. [データ送信側の設定] 「フォーム」に入力された内容が送出されるスクリプトを書く
ファイルを開いた状態から「ツール>スクリプト>スクリプトエディタ」を選択しスクリプトを作成する。
function myFunction() {
}
とある記載を、(極力何も考えず?)、以下の内容に書き変えて保存する。
(XXXXXXXX、YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY、ZZ、WWは各自で置き換えが必要です)
(日本以外の方はJSTも置き換えが必要です)
function startWorkflow(e) {
var longurl = "https://s.questetra.net/XXXXXXXX/System/Event/MessageStart/start";
var payload = "processModelInfoId=ZZ&nodeNumber=WW&key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY";
payload += '&data[0].input=' + encodeURIComponent(Utilities.formatDate(new Date(), "JST","yyyy-MM-dd"));
payload += '&data[0].time=' + encodeURIComponent(Utilities.formatDate(new Date(), "JST", "HH:mm"));
payload += '&data[1].input=' + encodeURIComponent(e.values[1]);
payload += '&data[2].input=' + encodeURIComponent(e.values[2]);
payload += '&data[3].input=' + encodeURIComponent(e.values[3]);
var params = {
method: 'post',
payload: payload
};
UrlFetchApp.fetch(longurl, params);
}

5. [データ送信側の設定] 「フォーム」入力時に作成したスクリプトが起動する設定にする
スクリプトエディタを開いた状態で「トリガー>Current Scripts Triggers」を選択する。
スクリプト「startWorkflow」が「From spreadsheet」「On form submit」を選ぶ。


関連記事⇒Google Docs のフォームからプロセスを起動する

0 件のコメント :

コメントを投稿