メールの内容を解析し自動セットする方法(その1)

こんにちは、古久保と申します。
今回は、簡単な JavaScript の実装についてお話します。

 

メールを受け取ってメールの内容を元に業務を開始したい!」というご要望を
良く聞きます。
[メッセージ開始イベント(メール)] で実現が可能です!

◆メッセージ開始イベント(メール)を使用したプロセス図(与信確認申請)

メール自動開始&解析-プロセスモデル例

 

Questetra BPM Suite ユーザでは、比較的良く知られた機能です。
Questetra BPM Suite 以外のシステムからのメールを取り込めばシステム連携が簡単に実装できます。

味気の無いメールを受け取って他のシステムへコピー&ペーストする
なんていうつまらない作業からおさらばすることができます。

 

でも、Questetra BPM Suite ユーザからは

「基幹システムから受注通知メールを Questetra BPM Suite に自動的に取り込んで処理してる。便利なんやけど、メールの本文から顧客名とか受注金額とか何個も入力フォームにコピペするのがめちゃくちゃ面倒や!なんとかならんか?」

なんて声も耳にします。

 

「なんとか」できます!
定型フォーマットなら比較的簡単な JavaScript の実装で実現が可能です。

◆メール本文例
顧客名:山田商事

2013年5月4日に改装が完了しますので仕様に沿って
図面の作成をお願いします。

納期は、2013年12月20日までです。

-- 
株式会社クエステトラ(Questetra, Inc.) 
古久保 雅人(Masato Furukubo) <furukub0@questetra.com> 
支社名:Aグループ株式会社 グループ名:工事担当グループ

メール本文が、

  • 「顧客名:」のタイトル文字列に続いて顧客名がセットされている
  • 「支店名:」のタイトル文字列に続いて支店名がセットされている
  • 「グループ名:」のタイトル文字列に続いてグループ名がセットされている

という定型フォーマットの場合、
タイトル文字列を探して後ろの文字列を取得し、プロセスデータ項目のフォームに
セットすれば良いのです。

◆ JavaScript 実装例
jQuery(document).ready(function(){
    // プロセスデータ項目「依頼内容」を取得
    var text = jQuery('textarea[name="data[5].input"]').val();
    text = text.replace(/\r\n/g, "\n");
    var sep = ":";
    var line = new Array();
    line = text.split("\n");
    // 「依頼内容」を1行づつ解析してプロセスデータ項目にセット
    for(var i=0; i < line.length; i=i+1){
       var pos = line[i].indexOf(sep);
           var dat = line[i].slice(pos+sep.length);
        if (line[i].slice(0,pos)=="顧客名"){
               jQuery('input[name="data[3].input"]').val(dat);
        }
        if (line[i].slice(0,pos)=="支社名"){
               jQuery('input[name="data[21].input"]').val(dat);
        }
        if (line[i].slice(0,pos)=="グループ名"){
               jQuery('input[name="data[2].input"]').val(dat);
        }
    }

});
※コードの前後を script タグで囲んでください。

JavaScript のコードをガイドパネル型のプロセスデータ項目に貼り付けて自動セットしたいタスクのプロパティで「表示のみ」の設定にしておくとこれで完了です!

※自動セットしないタスクでは該当のガイドパネル型のプロセスデータ項目は、
表示なし」に指定してください。

◆実現例

メール取込&解析実行例

比較的簡単ではないですか?
JavaScript の実装はメンテナンス性を下げる可能性があるので、比較的フォーマットの変化の無いデータ(今回であればメール本文)で使用されることをお勧めします。

[メッセージ開始イベント(メール)] をもっともっと活用してくださいね!

※ JavaScript の実装についてのお問い合わせは、サポート範囲外となっています。
※ご相談は、担当営業にお願いします。

Masato Furukubo の紹介

Questetra, Inc. Sales Department
Masato Furukubo の投稿をすべて表示

あわせて読みたい
50.Questetra Tips の前の記事 FAQ. ユーザを削除すると、過去の処理記録はどうなりますか?
50.Questetra Tips の次の記事 Office365 とクラウド型ワークフローとの連携状況
Masato Furukubo の他の記事 ルールに従ったファイル名に自動変更する方法

アーカイブ

 RSS