
ユーザ, 組織所属を判定
指定したユーザが指定した組織のリーダであれば”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
