嘿大家,我希望你能帮我解决一个问题:
我使用一个函数来获取一个组中的组成员列表。
这是返回一个变量。
从这个变量我需要看看我的当前用户(current.sys.id
)是否在此列表中。
如果不做的话,如果不这样做的话。
不幸的是,即使记录在其中,我的.search
也总是返回-1。
我使用gs.log命令查看不同的结果,我发现正则表达式存在于var中,即使它然后它给了我一个-1。 谁能看到我做错了什么?
这是我的代码
var list = group_members();
var check = new RegExp(current.sys_id);
var control = list.search(check);
if (control = -1) {
set_group();
gs.log("conf is :" + conf);
gs.log("check is :" + check);
gs.log("control is: " + control + "de lijst ziet er zo uit: " + list);
} else {
gs.log("check is :" + check);
gs.log("control is: " + control + "de lijst ziet er zo uit: " + list);
}
}
function group_members() {
gs.log("functie check groep is aangeroepen");
var answer = ' ';
var group = "794ac672d4a301006027eb6da8731188";
var group_mem = new GlideRecord('sys_user_grmember');
group_mem.addQuery('group', group);
group_mem.query();
while (group_mem.next()) {
if (answer.length > 0) {
answer += (',' + group_mem.user.sys_id);
} else {
answer = group_mem.user.sys_id;
}
}
return answer.toString();
}
function set_group() {
gs.log("functie set_groep is aangeroepen");
var rec1 = new GlideRecord('sys_user_grmember');
rec1.initialize();
rec1.user = current.sys_id;
rec1.group.setDisplayValue('TFPP Users');
rec1.insert();
gs.log("groep is nu gezet");
}
提前感谢。
答案 0 :(得分:1)
您的问题表明您正在寻找current.sys.id,但您的代码使用的是current.sys __id。你的问题只是这个错字吗?
顺便说一下,我会使用indexOf而不是搜索,因为你并不是使用你正在创建的正则表达式。只是做:
list.indexOf(current.sys.id);
如果它返回-1,那是因为它不在那里。
答案 1 :(得分:0)
好吧,我睡了一夜,尝试了不同的方法:
而不是返回完整的用户列表,我在功能中添加了检查。
function group_members(){
var answer = ' ';
var group = "794ac672d4a301006027eb6da8731188";
var group_mem = new GlideRecord('sys_user_grmember');
group_mem.addQuery('group',group);
group_mem.query();
while(group_mem.next()){
var user = current.sys_id;
if (user == group_mem.user.sys_id){
return ("1")
}
}
}
现在如果我的当前用户存在于列表中,它将返回1,否则将是未定义的。 这将删除整个搜索部分。 谢谢你的回复。