Need help with script include for a reference field

Thomas98
Tera Expert

I have an user reference field. I have two requirements 

 

 Users belonging to app.support group should only show up in the reference field or if the employment_type is "External)

How can I achieve this ? 

 

 

 

1 ACCEPTED SOLUTION

Sorry. Missed the reply on changing the variable type.

Script Include should be as follows using boolean variable 'u_boolean_1'

var GetUserSys = Class.create();
GetUserSys.prototype = {
    initialize: function() {},
    GetUserSys: function() {
        var userList = [];
        var grGrMember = new GlideRecord('sys_user_grmember');
        grGrMember.addQuery('group.name', '<name of group>'); // example 'Software'
        grGrMember.query();
        while (grGrMember.next()) {
            userList.push(grGrMember.user.toString());
        }

        var grUser = new GlideRecord('sys_user');
        grUser.addQuery('u_boolean_1', true);
        grUser.addActiveQuery();
        grUser.query();
        while (grUser.next()) {
            userList.push(grUser.sys_id.toString());
        }
		var arrayUtil = new ArrayUtil();
		userList = arrayUtil.unique(userList);
        return 'sys_idIN' + userList.join(',');
    },
    type: 'GetUserSys'
};

View solution in original post

17 REPLIES 17

That didn't work either 😞 sorry 

 

This is what I'm using in the reference qualifier 

Javascript:GetUserSys();

Need to call Script Include like below

javascript: new <Script Include name>().GetUserSys();

Did not work

javascript: new GetUserSys().GetUserSys();

NOTE: I have kept the function name and name of the script same. 

Sorry, my bad.

Script Include. I've added routine to remove duplicate entries.

var GetUserSys = Class.create();
GetUserSys.prototype = {
    initialize: function() {},
    GetUserSys: function() {
        var userList = [];
        var grGrMember = new GlideRecord('sys_user_grmember');
        grGrMember.addQuery('group.name', '<name of group>'); // example 'Software'
        grGrMember.query();
        while (grGrMember.next()) {
            userList.push(grGrMember.user.toString());
        }

        var grUser = new GlideRecord('sys_user');
        grUser.addQuery('u_type_of_employment', 'external user');
        grUser.addActiveQuery();
        grUser.query();
        while (grUser.next()) {
            userList.push(grUser.sys_id.toString());
        }
		var arrayUtil = new ArrayUtil();
		userList = arrayUtil.unique(userList);
        return 'sys_idIN' + userList.join(',');
    },
    type: 'GetUserSys'
};

Reference qualifier:

javascript:new GetUserSys().GetUserSys()

Sorry. Missed the reply on changing the variable type.

Script Include should be as follows using boolean variable 'u_boolean_1'

var GetUserSys = Class.create();
GetUserSys.prototype = {
    initialize: function() {},
    GetUserSys: function() {
        var userList = [];
        var grGrMember = new GlideRecord('sys_user_grmember');
        grGrMember.addQuery('group.name', '<name of group>'); // example 'Software'
        grGrMember.query();
        while (grGrMember.next()) {
            userList.push(grGrMember.user.toString());
        }

        var grUser = new GlideRecord('sys_user');
        grUser.addQuery('u_boolean_1', true);
        grUser.addActiveQuery();
        grUser.query();
        while (grUser.next()) {
            userList.push(grUser.sys_id.toString());
        }
		var arrayUtil = new ArrayUtil();
		userList = arrayUtil.unique(userList);
        return 'sys_idIN' + userList.join(',');
    },
    type: 'GetUserSys'
};