0

大家好,我希望你能帮助我解决我遇到的问题:

我使用函数从组中获取组成员列表。这被返回到一个变量。从这个变量我需要看看我当前的用户(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");
}

提前致谢。

4

2 回答 2

1

您的问题表明您正在寻找 current.sys.id,但您的代码使用 current.sys __id。你的问题只是这个错字吗?

顺便说一句,我会使用 indexOf 而不是搜索,因为您并没有真正使用您正在创建的正则表达式。做就是了:

list.indexOf(current.sys.id);

如果它返回-1,那是因为它不在那里。

于 2013-09-09T11:40:15.350 回答
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 否则它将是未定义的。这将删除整个搜索部分。感谢您的回复。

于 2013-09-10T08:58:40.480 回答