customLib_SSJSの
customExtApplyOnClick() apply前
customExtApproveOnClick() approve前
に以下のコードを記述します。
var bRet = true;
try{
var checkPostCode = ["3,4"];//★★Check対象のpostCode 役職 複数の場合があるので配列で持たせます 例:["部長","本部長"]
var bMatch = false;//上記postCodeが同部署にあればtrue;
var cDeptID = "";//現在の部署ID
var sDeptID = "";//申請部署ID
//現在のステップから現在部署情報を取得
var stepID = WFAppBean.getCurrentStepId();
var cWfDept = WFAppBean.getDepartmentByStepId(stepID);
if(cWfDept){
cDeptID = cWfDept.getDeptId();
}
//全部署取得
var wfDepts = WFAppBean.getWfApp().getWfRoute().getDepartments();
if(wfDepts){
var wfDept = wfDepts[0];//初めの部署を取得(申請部門)
if(wfDept){
sDeptID = wfDept.getDeptId();
//approveでも使用するたのめ現在のStepが申請部署の場合のみ実行する。
if(sDeptID == cDeptID){
var wfSteps = wfDept.getSteps();
var wfApprovers = null;
var wfApprover = null;
//最後のステップの承認者を取得(最終承認者)
wfApprovers = wfSteps[wfSteps.length - 1].getApprovers();//最終承認者
if(wfApprovers){
for(var i=0;i<wfApprovers.length;i++){
wfApprover = wfApprovers[i];
if(wfApprover){
wfAppDetail = wfApprover.getWfApproverDetail();
if(wfAppDetail){
// チェック対象と比較
//if(wfAppDetail.getPostCode() == checkPostCode){
if(@IsMember(wfAppDetail.getPostCode(), checkPostCode)){
//一致すればforを抜ける
bMatch = true;
break;
}
}
}
}
}
if(bMatch == false){
addFacesMessage("申請部署の最終承認者の役職が゙「3,4」に当てはまりません。", "messages1");//★★対象の役職者が最終承認者にいない場合のコメントです。ご自由に記載してください。
bRet = false
}
}
}
}
}
catch(e){
print("Error in customExtApplyOnClick:"+e)
return false;
}
★★がある箇所にそれぞれの役職コードを指定。
var checkPostCode = [“03″,”04”] ; // 03:部長、04係長であった場合の例。カンマ区切りで指定します。。
var checkPostCode = [“03”]; // 03:部長だけの場合