貸し出し管理プロセス, 対応者ランダム決定 20211015
会社所有物品の貸出申請を受け付けるワークフローです。全従業員が、公開フォームで申請可能です。総務部の物品管理担当者が物品の貸出を行います。担当者は、スタッフリスト(Google シート)からランダムに自動決定されます。貸し出し希望者が物品を登録すると担当者が承認/記録し、物品の貸し出しが申請者にメール通知されます。返却予定は年月で管理され、返却予定月にはメールで貸し出し終了が自動的に通知されます。担当者は、「3.返却確認」工程で返却済であることを記録します。
作業担当者 (スイムレーンの数:2)
  • 利用者
    • 物品貸出申請者。
  • 管理担当者
    • 総務部 物品貸し出し担当者。貸し出し受付を行える(長期休暇中などではない)人。
仕事の流れ (ワークフロー図の複雑度:17)
  • 2 2:貸し出し内容を記録
    • 担当者は、申請内容を確認し、物品を貸し出します。申請内容に不備があれば差し戻します。
  • 23 3.返却確認
    • 担当者は、返却物品の確認結果を記録します。
  • 9 x1. タイマー日付セット
    • ワークフロー基盤は、日付型データ項目「返却予定」月14日目の日付を指定されたデータ項目にセットします。
  • 13 件名 [却下] セット
    • ワークフロー基盤が、件名の文頭に”[却下]”を追記します。
  • 11 申請者チェック
    • ワークフロー基盤が、申請を許可された申請者か確認します。(Google シート)
  • 17 管理担当者 割り当て
    • ワークフロー基盤は、担当者リストからランダムに対応可能な担当者を選びます。
  • 16 管理担当者リスト取得
    • ワークフロー基盤は、総務部担当者リスト(Google シート)から TSV 形式でリストを取得します。
  • 25 貸出不可理由
    • ワークフロー基盤が、申請却下理由を記載します。
受け渡しされるビジネスプロセス変数 (データ項目の数:14)
  • ▼希望する貸出物品▼ 0
  • 使用者メールアドレス q_user_mailAddress 12
    • 申請者のメールアドレスが格納されます。
  • 貸出物品の名称 q_Name 2
    • 貸し出し物品の名称が格納されます。
  • 貸出開始 q_Lending 3
    • 貸し出しが開始される年月が格納されます。
  • 返却予定 q_Return 4
    • 貸し出し物品の返却予定 年月が格納されます。
  • 物品管理担当者 q_Manager 5
    • 総務部の物品管理者が格納されます。
  • 備考 q_Remarks 6
    • 申請時に記載される申請者のメッセージが格納されます。
  • ▼貸し出した物品の内容▼ 7
  • 貸出詳細 q_Details 8
    • 担当者が記載する貸し出し時の注意事項や貸し出し不可の理由が格納されます。
  • 返却確認時 メモ q_return_memo 9
    • 物品の返却時のメモが格納されます。
  • 返却確認日時 q_return_datetime 1
    • 返却物品を確認した日時が格納されます
  • (タイマー日付) q_Timer 11
    • 貸し出し物品返却日14日後の日付が格納されます。
  • 使用者 名前 q_user_name 13
    • 申請者の名前
  • 管理担当者リスト q_management_staff 14
    • 従業員リスト(Google シート A列・B列)記載内容を格納します。

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

Download

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

Notes

  • インポート時に組織構造に合わせて、処理担当者設定の関連付けを行います

Arrangement Tips

「管理担当者 割り当て」自動工程 Script (click to open)
main();

function main(){

const staffList = engine.findDataByVarName("q_management_staff");
const arrStaffs = staffList.split('\n');
let arrValidStaffs = [];
if( arrStaffs.length === 0 ){
  throw new Error( "\n AutomatedTask UnexpectedStaffListError:" +
                   " Population is Zero \n" );
}
for (var i=1; i < arrStaffs.length; i++){
    let staffAttributes = arrStaffs[i].split("\t");
    if (staffAttributes[1] === 0){
        arrValidStaffs.push(staffAttributes[0]);
    }
}
if( arrValidStaffs.length === 0 ){
  throw new Error( "\n AutomatedTask UnexpectedValidStaffListError:" +
                   " Population is Zero \n" );
}

let numRand = Math.floor(Math.random() * arrValidStaffs.length );
engine.log(" numRand: " + numRand + "\n arrValidStaffs.length: " + arrValidStaffs.length);
let quserSelected = quserDao.findByEmail(arrValidStaffs[ numRand ]);
//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByVarName("q_Manager",quserSelected);
}

Capture

従業員リスト
貸出対応スタッフリスト

Appendix

See also

コメントを残す

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

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