もし「自由なテキストフォーム」で入力させていると、
- 「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 件のコメント :
コメントを投稿