法人番号を使った取引先マスターの管理(一括更新編)

2015年9月21日
仕入元の「名称」(商号)が変わる。良くある話だ。

得意先の「優先度」を変える。これも良くある話だ。

以下は「取引先マスター」を一括してメンテナンスする業務フローだ。営業事務チームによって、定例の「月次見直し」と、随時任意の「臨時見直し」が行われる。

この特別なワークフローで「取引先マスター」を更新すると、ワークフロー基盤上の多くワークフローで表示される『顧客の一覧』(選択肢プルダウン・コンボボックスのリストなど)を一斉に切り替えることができる。言い換えれば、「見積書承認フロー」「請求プロセス」「修理依頼対応プロセス」など、それぞれの業務プロセスを設計運用している各プロセスオーナーは、『顧客の一覧』のデータについて、メンテナンスする必要がない。

※ 取引先マスターへの「個別追加」については前回記事を参考されたい

[取引先マスターのメンテナンス業務]




この毎月のルーティーン業務には、顧客優良度(10段階)の判定(デシル分析)が組み込まれている。

つまるところ、毎月いくつかの取引先は、その分類コード部分が更新されるのだ。結果として、顧客が関係する業務記録において「最新の顧客優良度」を紐づけることが可能になる。
  • 「取締役会開催業務」における資料作成
  • 「見積提出業務」における提出状況分析
  • 「キャンペーン計画業務」における企画立案など
様々な分析業務において、より深い考察が可能となるだろう。

ちなみに、デシル分析とはそもそも、購買金額に応じて全顧客を10のグループに分け、その上でマーケティング戦略を考える経営管理手法だ。しかしマーケティング以外の業務においても、10グループに分けて考察する分析は有用といえる。たとえば「製品要望への対応方針」といった議論においても、優良度デシルが下がってしまっているユーザに絞って「製品要望」を分析することで、より深みのある議論が可能になる。

(もっとも、、、伝統的には売上が大きい順に「デシル1」から「デシル10」と命名するケースが多いが、ここではコード番号の都合で売上が小さい順に「0」から「9」を割り当てている)

どうでも良い話だが、「液体の量」や「モノの長さ」を表現する時、日本では「デシ・メートル」と「センチ・リットル」は全く使われない。小学校の教科書でも出てこない。(日本人には「ミリ・リットル」と「センチ・メートル」で説明してあげてクダサイ)
  • 10分の1/deci: デシ・リットル/dL、(デシ・メートル/dm)
  • 100分の1/centi:(センチ・リットル/cL)、センチ・メートル/cm
  • 1000分の1/milli: ミリ・リットル/mL、ミリ・メートル/mm

▼[マスターの取得]のサンプルコード(サーバサイド)
- 入力:[共通ファイル]に登録されている XML ファイル
- 出力:テーブル型データに出力、文字列型データに TSV テキストを出力
//// == ワークフローデータの参照 / Retrieving ==
// M319 Options-XML: 複数の業務プロセス定義から参照される選択肢XML
optionsList = itemDao.findAll("Business-Connections.xml", true); // return "List<ItemView>" 
//// == 演算 / Calculating ==
optionsNum = optionsList.size();
var tmpTable = new com.questetra.bpms.core.model.formdata.ListArray(); // テーブル型データ
for (i=0; i < optionsNum; i++){
  var tmpRow = new com.questetra.bpms.core.model.formdata.ListArray.ListRow(); // 追加行
  tmpRow.addCol( optionsList.get(i).getValue().substr(0, 6) );
  tmpRow.addCol( optionsList.get(i).getValue().substr(7, 13) ); // index=7 から13文字
  tmpRow.addCol( optionsList.get(i).getValue().substr(21) ); // index=21 以降
  tmpRow.addCol( optionsList.get(i).getDisplay() );
  tmpTable.addRow( tmpRow ); // 行追加
}
var tsvtext = ""; // 複数行文字列データ
for (i=0; i < optionsNum; i++){
  tsvtext += optionsList.get(i).getValue().substr(0, 6) + "\t";
  tsvtext += optionsList.get(i).getValue().substr(7, 13) + "\t";
  tsvtext += optionsList.get(i).getValue().substr(21) + "\t";
  tsvtext += optionsList.get(i).getDisplay() + "\n";
}
//// == ワークフローデータへの代入 / Updating ==
retVal.put("1", tmpTable );
retVal.put("2", tsvtext );

▼[Listの生成]のサンプルコード(サーバサイド)
- 入力:テーブル型データに記入されている内容
- 出力:2つの文字列型データにテキスト出力
//// == ワークフローデータの参照 / Retrieving ==
// mytable: com.questetra.bpms.core.model.formdata.ListArray
var mytable = data.get("1"); // テーブル型データを取得
//// == 演算 / Calculating ==
//{取引先分類6文字}#{法人番号}#{法人URL} および {法人商号}
var i=0;
var n = mytable.size();
var value_id_list = "";
var display_label_list = "";
for (i=0; i < n; i++){
  value_id_list += mytable.get(i, 0) + "#";
  value_id_list += mytable.get(i, 1) + "#";
  value_id_list += mytable.get(i, 2) + "\n";
  display_label_list += mytable.get(i, 3) + "\n";
}
//// == ワークフローデータへの代入 / Updating ==
retVal.put("5", value_id_list);
retVal.put("6", display_label_list);

▼[TSVの取り込み]のサンプルコード(サーバサイド)
- 入力:複数行文字列型のデータ(1行につき4項目が「タブ」で区切られている)
- 出力:テーブル型データを更新
- ※ MS-Excel や Google-Spreadsheet 等からコピーペーストで取り込める
//// == ワークフローデータの参照 / Retrieving ==
var tsvtext = data.get("2"); // TSV のテキストデータを取得
//// == 演算 / Calculating ==
var tsvtextObj = new String(tsvtext);
var lineArray = tsvtextObj.split("\n"); // 改行毎に分割し string[] 配列に格納
var tmpTable = new com.questetra.bpms.core.model.formdata.ListArray(); // テーブル型データ
for (var i=0; i < lineArray.length; i++){
  var tmpRow = new com.questetra.bpms.core.model.formdata.ListArray.ListRow(); // 追加行(横列)
  var lineObj = new String(lineArray[i]);
  var cellstrArray = lineObj.split("\t"); // tab 毎に分割し格納
  tmpRow.addCol( cellstrArray[0] );
  tmpRow.addCol( cellstrArray[1] );
  tmpRow.addCol( cellstrArray[2] );
  tmpRow.addCol( cellstrArray[3] );
  tmpTable.addRow( tmpRow ); // 行追加 
}
//// == ワークフローデータへの代入 / Updating ==
retVal.put("1", tmpTable );

[取引先マスターのメンテナンス業務:「1.一括修正」画面]

<データ項目一覧画面>


[雛形ダウンロード (無料)]
<類似プロセス>
≪関連記事≫

[英文記事(English Entry)]

0 件のコメント :

コメントを投稿