Display specific group members based on assignment group in form

Venkata Sunil K
Tera Contributor

Hi Team, 

I have created script included and add advanced reference qualifier to display users in list collector filed and which is working fine. But now the requirement as below

Group - A -> Group - C

Group - B -> Group - D

Groups - E & D

List collector field - People Relations

1. If Group - A exists in form I need to display Group - C users in People Relations filed

2. If Group - B exists in form I need to display Group - D users in People Relations filed

3. If Group-A & B doesn't exists in the form need to display members related Groups - E & D 

Script Include:

 assignmentGrpUsers: function(caseGroup) {
        var arryVal = [];
        var grMember = new GlideRecord('sys_user_grmember');
        grMember.addEncodedQuery('group=' + caseGroup);
        grMember.query();
        while (grMember.next()) {
            arryVal.push(grMember.getValue("user"));
        }
        return "sys_idIN" + arryVal.join();

    },

 

Reference Qual:

javascript:new usersDisplayOnAssignment().assignmentGrpUsers(current.assignment_group);

 

Please suggest how can I modify the code accordingly.

Thanks!

@Ankur Bawiskar any suggestions on this?

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron

@Venkata Sunil Kumar Reddy Kothapalli 

are you talking about catalog form or normal form because you said list collector?

I assume it's normal form and list type of field

update as this and it will work fine

Ensure you give correct sysIds of the groups

assignmentGrpUsers: function(caseGroup) {

	var arryVal = [];
	if(caseGroup.indexOf('Group A sysId') > -1){
		// bring only Group C
		var grMember = new GlideRecord('sys_user_grmember');
		grMember.addEncodedQuery('group=' + 'groupCSysId');
		grMember.query();
		while (grMember.next()) {
			arryVal.push(grMember.getValue("user"));
		}
		return "sys_idIN" + arryVal.join();
	}

	if(caseGroup.indexOf('Group B sysId') > -1){
		// bring only Group D
		var grMember = new GlideRecord('sys_user_grmember');
		grMember.addEncodedQuery('group=' + 'groupDSysId');
		grMember.query();
		while (grMember.next()) {
			arryVal.push(grMember.getValue("user"));
		}
		return "sys_idIN" + arryVal.join();
	}

	if(caseGroup.indexOf('Group A sysId') == -1 && caseGroup.indexOf('Group B sysId') == -1){
		// bring only Group E and D
		var grMember = new GlideRecord('sys_user_grmember');
		grMember.addEncodedQuery('groupIN' + 'groupESysId,groupDSysId');
		grMember.query();
		while (grMember.next()) {
			arryVal.push(grMember.getValue("user"));
		}
		return "sys_idIN" + arryVal.join();
	}

},

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 10x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

6 REPLIES 6

Thanks for this Ankur, I got that in similar way. 

@Venkata Sunil Kumar Reddy Kothapalli 

Glad to know that my script worked and helped.

Please mark my response as correct and close the thread.

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 10x ServiceNow MVP  ||  ✨ ServiceNow Community Leader