Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Assignment group variable shoud display only groups which the user belongs to ?

raj99918
Tera Contributor

Hi team,

 

I have catalog form having Group variable (which contains few groups called Group1,Group2,Group3,Group4,Group5,Group6) if the Requsted user is member of only these 3 groups like (Group1,Group2 and Group3) then it should display only 3 groups called (Group1,Group2 and Group3) in Group variable How can I achieve this ?

 

Thanks.

7 REPLIES 7

Community Alums
Not applicable

Hi @raj99918 ,

 

You can achieve this by a onLoad ckient script.

Please create a catalog cliend script of type onLoad-

function onLoad() {
    var assignmentGroupField = 'assignment_group';

    // GlideAjax call to get the user's groups
    var ga = new GlideAjax('AssignmentGroupAjax');
    ga.addParam('sysparm_name', 'getUserGroups');
    ga.getXMLAnswer(function(response) {
        var groupSysIds = response.split(',');
        var filter = 'sys_idIN' + groupSysIds.join(',');
        
        // Set the filter on the assignment group field
        g_form.setReferenceFilter(assignmentGroupField, filter);
    });
}

 

Script include-

var AssignmentGroupAjax = Class.create();
AssignmentGroupAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getUserGroups: function() {
        var userGroups = [];
        var userId = gs.getUserID();
        var gr = new GlideRecord('sys_user_grmember');
        gr.addQuery('user', userId);
        gr.query();
        while (gr.next()) {
            userGroups.push(gr.group.sys_id.toString());
        }
        return userGroups.join(',');
    }
});

 

If my response has resolved your query, please consider giving it a thumbs up ‌‌ and marking it as the correct answer‌‌!


Thanks & Regards,

Sanjay Kumar

Hi @Community Alums  Thanks for the script but here How can I exclude the groups which was user is not part ?

Community Alums
Not applicable

Hi @raj99918,

You need to update the filter in client script.

Below is the updated script-

Client Script (onLoad)
function onLoad() {
// The name of the variable that you want to filter
var assignmentGroupField = 'assignment_group';

// GlideAjax call to get the user's groups
var ga = new GlideAjax('AssignmentGroupAjax');
ga.addParam('sysparm_name', 'getUserGroups');
ga.getXMLAnswer(function(response) {
var groupSysIds = response.split(',');
var filter = 'sys_idIN' + groupSysIds.join(',');

// Set the filter on the assignment group field
g_form.setReferenceFilter(assignmentGroupField, filter);
});
}


Script Include-
var AssignmentGroupAjax = Class.create();
AssignmentGroupAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getUserGroups: function() {
var userGroups = [];
var userId = gs.getUserID();
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('user', userId);
gr.query();
while (gr.next()) {
userGroups.push(gr.group.sys_id.toString());
}
return userGroups.join(',');
}
});

 

If above solution solves your issue please give it a thumbs up and accept the solution.

 

Thanks and Regards,

Sanjay

Hi @Community Alums I didn't find any changes in the updated script could you please let me know where exactly put the filter to exclude the static groups ?