もし「自由なテキストフォーム」で入力させていると、
- 「NTT」だったり、「日本電信電話株式会社」だったり
- 「NTT西日本」だったり、「西日本電信電話株式会社」だったり
- 「NTTデータ」だったり、「エヌ・ティ・ティ・データ」だったり
- 「NTTドコモ」は、「NTTドコモ」のままで良かったのに…
そして「株式会社」が、前株だったり後株だったり、、、(そもそも)、あったりなかったり。。。 ナンにせよ法人名の入力が発散して仕方ない。。。俗に『名寄せ』ど呼ばれる作業は「非常に不毛な作業」と言わざるをえない。
以下のワークフローは「取引口座開設業務」だ。
一見すると前回記事(与信管理フロー)とほぼ同じフローだが、、、新しく取引先を登録する際に『顧客マスター』(Business-Connections.xml)が自動的に更新される仕組みとなっている。
この『顧客マスター』は、他の業務フローから、「プルダウンメニュー選択」や「テキスト入力中にリストが絞られるコンボボックス」として呼び出せる。つまり「見積書承認フロー」「請求プロセス」「問合対応プロセス」において、入力される法人名は、必ず『顧客マスター』から選択され、常に「正式な社名」が入力されるようになるのだ。
[取引口座開設業務]
このワークフローの更に秀逸な点は「取引先分類」も併せて持たせているところだ。
データフォーマットを確認してもらえば分かるが、、、全ての法人名称が {取引先分類6文字}#{法人番号}#{法人URL} のフォーマットで管理されている。※ {法人番号}#{法人URL} の部分が識別子(主キー)となる。
◆取引先分類6文字
- 〔1文字目〕 A: 日本関東 B: 日本関西 C: 日本地方 D:英語圏 E: 非英語圏
- 〔2文字目〕 1: サービス契約歴なし 2: サービス契約中 3: サービス契約終了
- 〔3文字目〕 1: パートナ可能性なし 2: パートナ候補 3: オーソライズド 4: シルバー 5: ゴールド
- 〔4文字目〕 A: 10000人超 B: 10000人以下 C: 5000人以下 D: 3000人以下 E: 1000人以下 F: 500人以下
- 〔5文字目〕 0: 売上が小さい ~ 9: 売上が大きい (過去6か月のデシル値)
- 〔6文字目〕 0: 利用期間1年未満 1: 1年以上2年未満 2: 2年以上
たとえば「見積承認フロー」で見積書を作成する営業パーソンからしても、
- 正式な法人名(商号)が簡単に入力できる、だけでなく
- 顧客の属性も即時に確認できる
業務プロセスの設計者の視点でみても、「入力インターフェース」や「フロー条件分岐」などでもイロイロと工夫できるだろう。
▼[スクリプト工程]のサンプルコード(サーバサイド)
//// == ワークフローデータの参照 / Retrieving ==
// M319 Options-XML: 複数の業務プロセス定義から参照される選択肢XML
optionsList = itemDao.findAll("Business-Connections.xml", true); // return "List<itemview>"
//{取引先分類6文字}#{法人番号}#{法人URL} および {法人商号}
var corpCategory = data.get("10") + "";
var corpNumber = data.get("11") + "";
var corpURL = data.get("1") + "";
var corpName = data.get("2") + "";
//// == 演算 / Calculating ==
var corpKey = corpNumber + "#" + corpURL + "";
var updateflag = 0;
optionsNum = optionsList.size();
var value_id_list = "";
var display_label_list = "";
for (i=0; i < optionsNum; i++){
if(corpKey == optionsList.get(i).getValue().substr(6) ){ // 既存データ更新
value_id_list += corpCategory + "#" + corpKey + "\n";
display_label_list += corpName + "\n";
updateflag = 1;
}else{
value_id_list += optionsList.get(i).getValue() + "\n";
display_label_list += optionsList.get(i).getDisplay() + "\n";
}
}
if(updateflag == 0){
value_id_list += corpCategory + corpKey + "\n";
display_label_list += corpName + "\n";
}
//// == ワークフローデータへの代入 / Updating ==
retVal.put("12", value_id_list);
retVal.put("13", display_label_list);
▼「既存リストの確認」のサンプルコード(ブラウザサイド)
<script type="text/javascript">
// <input type="button" value="view Category" id="myButton"> がクリックされれば
// <span id="corpinfo"></span> に表示する
jQuery('#myButton').on('click',function(){
var textStr = jQuery('input[name="data\\[9\\].selects"]').val(); // 検索セレクト
jQuery( '#corpinfo' ).html("" + textStr.substr(0, 6) + "");
});
</script>
▼「法人URL」のサンプルコード(ブラウザサイド)
<script type="text/javascript">
/// フォームからフォーカスが外れた際に、先頭の "http://" もしくは "https://" が除去されます
jQuery('input[name="data\\[1\\].input"]').on('change',function(){
//データ項目番号「1」のTextフォーム値に変化があれば、
//(change でフォーカス外れを検知)
var thisValue = jQuery(this).val();
var myRegex = /^https:\/\/|^http:\/\//; // "http://" もしくは "https://" で始まる (正規表現)
var newValue = thisValue.replace( myRegex, "" ); // マッチした部分を削除
// ex) "http://www.questetra.com" → "www.questetra.com"
var newValueLc = newValue.toLowerCase(); // 小文字化 ※ドメイン部以外にも適用される点に注意
jQuery('input[name="data\\[1\\].input"]').val( newValueLc );
});
</script>
[取引口座開設業務:「1.取引先の登録」画面]
<データ項目一覧画面>
[雛形ダウンロード (無料)]
- 業務テンプレート:取引口座開設業務
- 法人番号を使った取引先マスターの管理 (2015-09-07)
- 取引先フォームを全て「選択入力」にするためのマスタ管理 (2014-06-16)
- 取引先名をユラギ無く入力する技 (2014-06-02)
- 社会全体で共有すべき『選択肢XML』(都道府県コード/法人ID) (2014-06-09)
- M319 プロセスモデリング環境: 複数の業務プロセス定義から参照される選択肢XMLを登録する (使い方)
- M230 自動工程: 業務データの複雑なデータ加工が自動実行されるように設定する(ECMAスクリプト) (使い方)
- M213 入力画面: 処理フォーム画面に “入力ヒント” が表示されるように設定する(HTML/JavaScript) (使い方)
[英文記事(English Entry)]





0 件のコメント :
コメントを投稿