出荷プロセス, 発送負荷の平準化 20211119
受注窓口部門が注文を受付け、商品発送完了を確認できるワークフローです。 発送作業は、担当チームの未割当者に自動で割り当てられます。 納期1日前の未発送作業は、別担当者に自動で割り当てられます。 発送完了時、顧客へメール通知されます。
作業担当者 (スイムレーンの数:2)
  • 受注窓口
    • 顧客に対する窓口担当者です。
  • 発送作業者
    • 注文商品を発送する担当者
仕事の流れ (ワークフロー図の複雑度:17)
  • 31 0.手動:受注登録
    • 受注窓口担当者が、注文情報を入力します。
  • 5 1.発送作業記録
    • 発送作業担当者が、発送作業の記録を行います。
  • 13 2.着荷時 対応
    • 窓口担当者が、着荷時の対応記録を行います。
  • 23 件名/発送締切日セット
    • ワークフロー基盤が、件名/発送締切日(納期の1日前)をセットします。
  • 27 作業中リスト取得
    • ワークフロー基盤が、発送作業中の案件リストを抽出します。
  • 28 発送作業担当者 決定
    • ワークフロー基盤が、発送担当者を決定します。作業を行っていない担当者を指定します。すべての担当者が作業中の場合、作業中の件数が最も少ない担当者を指定します。
  • 43 発送担当組織に所属するユーザ一覧取得
    • ワークフロー基盤が、発送担当組織に所属するユーザのメールアドレス一覧を取得します。
受け渡しされるビジネスプロセス変数 (データ項目の数:22)
  • ◆受注情報 9
  • 注文番号 q_contract_number 0
    • 注文番号が格納されます。
  • 指定納期 q_deadline_datetime 15
    • 着荷納期が格納されます。
  • 注文商品ID q_merchandise_id 6
    • 注文商品IDが格納されます。
  • 注文商品名 q_merchandise_name 7
    • 注文商品名が格納されます。
  • 注文個数 q_merchandise_quantity 25
    • 注文個数が格納されます。
  • 企業名 q_corprate_name 2
    • 企業名が格納されます。
  • 組織名 q_customer_div_name 4
    • 担当者名が格納されます。
  • 注文者名 q_customer_name 3
    • 注文者名が格納されます。
  • 注文者メールアドレス q_contracted_email 8
    • 注文者のメールアドレスが格納されます。
  • 送付先住所 q_post_address 11
    • 商品発送先住所が格納されます。
  • ◆発送情報 10
  • 発送担当者 q_desk_person 23
    • 発送作業担当者が格納されます。
  • 発送作業締切日 q_delivery_deadline_datetime 27
    • 発送作業の締切日が格納されます。
  • 発送完了日時 q_delivery_datetime 14
    • 発送完了日時が格納されます。
  • 着荷時 注意事項 q_sending_message 16
    • 着荷時に窓口担当が対応すべき内容が格納されます。
  • 完了メール差し込みメッセージ q_message_for_complete_mail 22
    • 発送完了通知メールに差し込むメッセージが格納されます。
  • ◆窓口情報 12
  • 着荷時対応記録 q_arrival_record 17
    • 着荷時の対応記録が格納されます。
  • ◆システム情報 13
  • 現在発送作業リスト q_current_working_information 1
    • 現在作業中の注文リストが格納されます。
  • 発送作業 割当対象者リスト q_offer_users_for_deliery 26
    • 発送作業担当組織に所属するメンバーのメールアドレス一覧が格納されます。

フィールド名, Num, 初期値

Download

This archive contains the BPMN icon, which is only available in the Professional edition.

Notes

  • インポート時に組織構造に合わせて、処理担当者設定の関連付けを行います
  • 「発送担当者 決定」自動処理タスク の処理
    • 「発送作業 担当者リスト」の担当者毎に作業中の件数を集計します。
    • 集計元データは、「現在:発送作業中リスト」です。
    • 最も作業中件数が少ない担当者が作業者として割当たります。
    • 作業中件数が同数の場合、「発送作業 担当者リスト」の並び順に割り当てられます。
「発送担当者 決定」自動工程 スクリプト (click to open)
const usersInfo = engine.findDataByVarName("q_offer_users_for_deliery");
const tasksInfo = engine.findDataByVarName("q_current_working_information");

main();

function main(){
	 engine.log("Target Qusers Existence Check");
	 if (usersInfo === null){
	    engine.log("Users are not found.");
	    return;
	 }
	 engine.log("Array Initial");
	 let targetUsers = usersInfo.split("\n");
	 let targetUsersInfos = new Array(targetUsers.length);
	 // targetUsersInfos Format: [0] mail Address [1] count of working tasks 
	 for (var i=0; i < targetUsersInfos.length; i++){
	     targetUsersInfos[i] = new Array(2);
	     targetUsersInfos[i][0] = targetUsers[i];
	     targetUsersInfos[i][1] = 0;
	 }
	 engine.log("Proccesses Existance Check");
	 if (tasksInfo === null){
	    engine.log("Current tasks are not found.");
	    engine.setDataByVarName("q_desk_person", quserDao.findByEmail( targetUsers[0] ));
	    return;
	 }
	 engine.log("Search Worker");
	 const targetTasks = tasksInfo.split("\n");
	 for (var i=0; i < targetUsersInfos.length; i++){
	     for (var j=0; j < targetTasks.length; j++){
	     	 let cols = targetTasks[j].split("\t");
		 if ((cols[8].indexOf("<" + targetUsersInfos[i][0] + ">")) != -1){
		    targetUsersInfos[i][1] += 1;
		 }
	     }
	     if (targetUsersInfos[i][1] === 0){
	     	engine.log("current task 0: " + targetUsersInfos[i][0]);
	     	engine.setDataByVarName("q_desk_person", quserDao.findByEmail( targetUsersInfos[i][0] ));
	     	return;
	     }
	 }
	 engine.log("Array Sort");
	 targetUsersInfos.sort(function(a,b){return(a[1] - b[1]);});
	 for (var i=0; i < targetUsersInfos.length; i++){
	     engine.log("targetUsersInfos[" + i + "]: " + targetUsersInfos[i][0] + " : " + targetUsersInfos[i][1]);
	 }
 	 engine.setDataByVarName("q_desk_person", quserDao.findByEmail( targetUsersInfos[0][0] ));
}

Capture

See also

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。