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 worked! Thank you very very much!!!

Try the following Script Include.

    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.query();
        while (grUser.next()) {
            userList.push(grUser.user.toString());
        }
        return 'sys_idIN' + userList.join(',');
    },

Hitoshi Ozawa
Giga Sage
Giga Sage

BTW, it's probably better to add .addActiveQuery() to get only active records.

    getUserSys: function() {
        var userList = [];
        var grGrMember = new GlideRecord('sys_user_grmember');
		grGrMember.addActiveQuery();
        grGrMember.addQuery('group.name', '<name of group>'); 
        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.user.toString());
        }
        return 'sys_idIN' + userList.join(',');
    },