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
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  ||  9x 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  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader