稟議プロセス, 全会一致方式決裁 20230425
全会一致方式で決裁される稟議プロセスです。500万円超の起案時に複数の意思決定者を指定します。全意思決定者の”承認”で決裁されます。
作業担当者 (スイムレーンの数:5)
  • 申請者
    • 稟議を起案する担当者。
  • チームリーダ
    • 稟議を確認する申請者と同じ組織のリーダ。
  • 承認者(複数)
    • 起案者の所属部門長、管理部・営業部・開発部の部門長
  • 部長
    • 稟議を承認する申請者の上長にあたる部長。
  • 部長&副部長
    • 稟議を承認する申請者の上長にあたる部長もしくは副部長。
仕事の流れ (ワークフロー図の複雑度:17)
  • 11.稟議を提出する
    • 申請者は、稟議を起案します。
  • 41x.差戻に対応する
    • 申請者は、起案した内容を修正して再提出するか、取り下げます。
  • 32.確認する
    • 申請者の上司は、起案内容を確認し不備があれば差し戻します。
  • 123a.承認決裁する
    • 外部支払が100万未満の場合、部長または副部長が決裁します。
  • 143b.承認決裁する
    • 外部支払が100−500万の場合、部長が決裁します。未決裁のまま24時間経過すると 3a に進みます。
  • 283c.承認決裁する
    • 外部支払が500万以上の場合、複数の承認者が決裁します。
ワークフロー図 (クリックして開く)
受け渡しされるビジネスプロセス変数 (データ項目の数:24)
  • ▼申請▼ 0
  • 申請者所属q_Drafter_Org1*
    • 申請者の所属部署が格納されます。(ワークフロー基盤内の “組織”)
    • processInstanceInitQgroupId
  • 申請者q_Drafter2*
    • 申請者が格納されます。(ワークフロー基盤内の “ユーザ”)
    • ${processInstance.initQuserId}
  • 提出時刻q_Submission_Time3
    • 提出された日時が格納されます。 「1.稟議を提出する」か「1x.差戻に対応する」の自動処理設定により入力されます。
  • 起案の内容および理由q_Reason4*
    • 起案内容および理由が格納されます。
  • 添付資料q_Attachment5
    • 起案内容に関する添付資料が格納されます。
  • 外部支払q_Payment6*
    • 外部支払の金額が格納されます。
  • 内部工数q_Man_Hours7
    • 内部工数の金額が格納されます。
  • 予算区分q_Classification8
    • 起案内容の予算区分が格納されます。
  • 予算区分備考q_Classification_Remarks9
    • 起案内容の予算区分の備考が格納されます。
  • ▼承認者▼ 19
  • (追加)承認者1q_add_approver117
    • 追加の承認者が格納されます。
  • (追加)承認者2q_add_approver218
    • 追加の承認者が格納されます。
  • ▼確認および決裁▼ 10
  • 承認/否決者q_judgement_user23*
    • 承認/否決を判断したユーザが格納されます。
  • 承認結果q_decision_result13
    • 承認結果が格納されます。
  • 承認/否決者リストq_judgement_user_list22
    • 承認/否決結果とユーザ名がリスト形式で格納されます。
  • 確認したリーダq_Confirmer11
    • 起案内容を確認したリーダが格納されます。 「2.確認する」の自動処理設定により入力されます。
  • リーダ確認時刻q_Confirmed_Time12
    • 起案内容を確認した承認日時が格納されます。 「2.確認する」の自動処理設定により入力されます。
  • 決裁した部長/副部長q_Approver14
    • 起案内容を承認決裁した部長/副部長が格納されます。 「3a/b/c.承認決裁する」の自動処理設定により入力されます。
  • 部長/副部長決裁時刻q_Approved_Time15
    • 起案内容を承認決裁した日時が格納されます。 「3a/b/c.承認決裁する」の自動処理設定により入力されます。
  • ▼社内コミュニケーション▼ 20
  • コメント・メッセージq_discussion21
    • 社内向けのコメント・メッセージが格納されます。
  • ◆Script:全会一致-制御 16

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

Download

Professional でのみご利用いただけます。

Notes

  • データ項目”◆Script:全会一致-制御”は、”3c.承認決裁する”工程でのみ”閲覧可”設定してください。

Arrangement Tips

(click to open) “3c.承認決裁する”工程 デコレーション JavaScript

<script>
const DECISION_FORM_NAME = 'data[13].selects'; // 選択肢”承認結果”の定義番号含む 文字列
const DECISION_FORM_FIELD_NAME = 'q_decision_result'; // 選択肢”承認結果”のフィールド名を指定
const DECISION_REJECT_VALUE = 'ng';   // 選択肢”承認結果”の IDを指定
const DECISION_JUDGEMENT_USER_LIST = 'q_judgement_user_list';   // 文字列型 "承認/否決者リスト"のフィールド名を指定
const DECISION_JUDGEMENT_USER = 'q_judgement_user';   // ユーザ型 "承認/否決者"のフィールド名を指定
let userName;
let isChangeItem = false;

function user_readyHandler(e) {
	const submitBtn = document.getElementById('submitButton');
	const saveOnlyBtn = document.getElementById('saveOnlyButton');
	let selects = qbpms.form.get( DECISION_FORM_FIELD_NAME );
	qbpms.form.set( DECISION_JUDGEMENT_USER ,  null );
	if (selects.length !== 0){
		console.log("selects[0].value: " + selects[0].value );
		if ( selects[0].value === DECISION_REJECT_VALUE ){
			let items = document.getElementsByName( DECISION_FORM_NAME );
			items[1].disabled = true;
			alert("この稟議は、既に否決されています。\n起案内容を確認の上、コメントを記入してください。");
			let decisionNote = document.getElementById('user_decision_description');
			decisionNote.innerHTML = "この稟議は、既に否決されています。<br>起案内容を確認の上、コメントを記入してください。";
		}
	}
	
	submitBtn.addEventListener('click', function() {
		user_controlDecisionForm();
	});
	saveOnlyBtn.addEventListener('click', function() {
		user_controlRejectDecisionForm();
	});
}
function user_addedChangeItemEvent(e) {
	console.log("Decision Form Change");
	let selects = qbpms.form.get( DECISION_FORM_FIELD_NAME );
	if (selects.length !== 0){
		if ( qbpms.form.get(DECISION_JUDGEMENT_USER) === null ){
			isChangeItem = false;
			qbpms.form.set( DECISION_FORM_FIELD_NAME , null );
			alert("「承認/否決者」を登録し、再度、「承認/否決」を指定してください。");
		}else{
			isChangeItem = true;
			user_setJudgementUsersList("否決");
		}
	}
}

qbpms.form.on('ready', user_readyHandler);
qbpms.form.on('change', DECISION_FORM_FIELD_NAME ,user_addedChangeItemEvent);

function user_controlDecisionForm(){
	let checkForm = document.getElementsByName( DECISION_FORM_NAME );
	console.log(checkForm + " length:" + checkForm.length);
	selects = qbpms.form.get( DECISION_FORM_FIELD_NAME );
	if (selects.length !== 0){
		let items = document.getElementsByName( DECISION_FORM_NAME );
		if (items[1].disabled){
			checkForm[0].remove();
		}
		if (!isChangeItem){
			if ( qbpms.form.get(DECISION_JUDGEMENT_USER) === null ){
				qbpms.form.set( DECISION_FORM_FIELD_NAME , null );
				alert("「承認/否決者」を登録し、再度、「承認/否決」を指定してください。");
			}else{
				user_setJudgementUsersList("承認");
			}
		}
		if ( selects[0].value === DECISION_REJECT_VALUE ){
		console.log( DECISION_FORM_FIELD_NAME + " not appoval!");
		}
	}else{
		console.log( DECISION_FORM_FIELD_NAME + " remove! not regist");
		//checkForm[0].remove();
		if ( qbpms.form.get(DECISION_JUDGEMENT_USER) === null ){
			qbpms.form.set( DECISION_FORM_FIELD_NAME , null );
			alert("「承認/否決者」を登録し、再度、「承認/否決」を指定してください。");
		}else{
			user_setJudgementUsersList("承認");
		}
	}
}
function user_controlRejectDecisionForm(){
	let checkForm = document.getElementsByName( DECISION_FORM_NAME );
	console.log(checkForm + " length:" + checkForm.length);
	console.log("checkForm[0]:" + checkForm[0]);
	console.log("checkForm[1]:" + checkForm[1]);

	console.log( DECISION_FORM_FIELD_NAME + " remove! not regist");
	checkForm[1].remove();
	checkForm[0].remove();
}
function user_setJudgementUsersList( judgeText ){
	console.log("--user_setJudgementUsersList()--");
	userName = qbpms.form.get(DECISION_JUDGEMENT_USER).name;
	console.log("userName: " + userName);
	let list = (qbpms.form.get( DECISION_JUDGEMENT_USER_LIST ) + "\n" + judgeText + ":" + userName).trim();
	qbpms.form.set(DECISION_JUDGEMENT_USER_LIST ,  list );
}
</script>

Capture

See also

コメントを残す

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

%d