- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-12-2022 10:34 PM
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!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 08:12 PM
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
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 03:45 AM
Hi Team,
--------Continue to this request----------
Is there any way to call multiple script include functions into advanced reference qualifier.
I store the different set of users in different arrays. When call each functions once it's working expected, now I want call all functions in reference qualifier.
Script Include - assignmentData()
Function1
Function2
Function3
I tried below reference qualifier but its not working.
javascript: "sys_idIN"+new assignmentData().Function1() + new assignmentData().Function2() +new assignmentData().Function3();
Please suggest how to OR condtion in reference qualifier.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 03:48 AM
hello
i think you cant call multiple functions in a single reference qualifier but i can suggest one thing
call the other two functions inside the function that you are calling in the reference qualifier
like below
function one should be called in the reference qualifier .
function1()
{
this.function2()
this.function3()
}
Hope this helps
Mark the answer correct if this helps you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-14-2022 09:29 PM
if(caseGroup.indexOf('Group B sysId') > -1){
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 08:12 PM
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
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader