ユーザの指定組織への所属を判定

指定したユーザが指定した組織のリーダであれば”L” を、スタッフであれば”M” を、所属していなければ空を返します。

© Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/questetra-userorgpostion/

Configs
  • I1.ユーザデータ(指定:ユーザ型データ) *
  • I2.組織データ(指定:組織型データ) *
  • O1.結果出力先(指定:単一行文字型データ) *
Script (click to open)

main();
function main(){
//////// START "main()" /////////////////////////////////////////////////////////////////
//// == Config Retrieving / 工程コンフィグの参照 ==
const userPocket = configs.getObject("userField");
const orgPocket = configs.getObject("orgField");
const strPocketResult = configs.getObject("result");

//// == Data Retrieving / ワークフローデータの参照 ==
const user = engine.findData( userPocket );
const org =  engine.findData( orgPocket );

//// == Calculating / 演算 ==
errorCheck(user, org);
let result = "";
if (check(true, user, org)) {
  result = "L";
}else if (check(false, user, org)) {
  result = "M";
}

//// == Data Updating / ワークフローデータへの代入 ==
engine.setData(strPocketResult, result);

} //////// END "main()" /////////////////////////////////////////////////////////////////


//Check whether the user is the leader or a staff member in the org
function check(LM, user, org){
  let temp;
  const userList = quserDao.findByQgroupAndPosition(org, LM);
  for (let i = 0; i < userList.size(); i++) {
    temp = userList.get(i);
    if(user.getId() == temp.getId()){
      return true;
    }
  }
}

// Check for the existence of user and org.
function errorCheck(user, org){
  if (org == null && user != null) {
    throw "Organization Not Selected";
  }else if (org != null && user == null) {
    throw "User Not Selected";
  }else if (org == null && user == null){
    throw "Organization and User Not Selected";
  }

  const userC = quserDao.findById(user.getId());
  const orgC = qgroupDao.findById(org.getId());
  if (userC == null && orgC != null) {
    throw "Selected user doesn't exist";
  }else if (userC != null && orgC == null) {
    throw "Selected Organization doesn't exist";
  }else if (userC == null && orgC == null){
    throw "Selected Organization and User don't exist";
  }
}

Download

Capture

コメントを残す

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

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