Advanced Reference Qualifier

divvi_vamsi
Mega Expert

I am trying to use the script include from Wiki;

Reference Qualifiers - ServiceNow Wiki   --> javascript:new BackfillAssignmentGroup().BackfillAssignmentGroup()

I tried logging the values of the comma separated string, which is accurate, but the filter on the form doesn't work as expected. Not sure what is missing in there.

var BackfillAssignmentGroup = Class.create();

BackfillAssignmentGroup.prototype = {

initialize: function() {

},

BackfillAssignmentGroup:function() {

var gp = ' ';

var a = current.u_group; //custom field in current form

//return everything if the assigned_to value is empty

if(!a)

return;

//sys_user_grmember has the user to group relationship

var grp = new GlideRecord('u_members'); //my custom table

grp.addQuery('u_code',a); //custom field in u_members

grp.query();

while(grp.next()) {

if (gp.length > 0) {

//build a comma separated string of groups if there is more than one

gp += (',' + grp.u_mem); //custom field in current form

}

else {

gp = grp.u_mem;

}

}

gs.log(gp);

// return Groups where assigned to is in those groups we use IN for lists

return 'sys_idIN' + gp;

},

type: 'BackfillAssignmentGroup'

};

Reference Qual: javascript:new BackfillAssignmentGroup().BackfillAssignmentGroup()

can someone please help with what is missing in here!!!

Thanks

Divya

1 ACCEPTED SOLUTION

Can you try this code and see if this helps.



Reference Qual: javascript:new BackfillAssignmentGroup().BackfillAssignGroup()



var BackfillAssignmentGroups = Class.create();  


BackfillAssignmentGroups.prototype = Object.extendsObject(AbstractAjaxProcessor, {  


BackfillAssignGroups:function() {  


var gp = [];  


var a = current.u_group.toString();  


if(!a)  


return;  


var grp = new GlideRecord('u_members');  


grp.addQuery('u_code', a);       //Hope u_code is a reference field and it's having a details of groups.


grp.query();  


while(grp.next())  


gp.push(grp.sys_id.toString());  


return 'sys_idIN' + gp;  


},  


type: ' BackfillAssignmentGroups'  


});


View solution in original post

17 REPLIES 17

Didn't keep any value in dependent field, was just mentioning that term with respect to the form. And i don't see any dictionary override in the dictionary too..


Can you try this code and see if this helps.



Reference Qual: javascript:new BackfillAssignmentGroup().BackfillAssignGroup()



var BackfillAssignmentGroups = Class.create();  


BackfillAssignmentGroups.prototype = Object.extendsObject(AbstractAjaxProcessor, {  


BackfillAssignGroups:function() {  


var gp = [];  


var a = current.u_group.toString();  


if(!a)  


return;  


var grp = new GlideRecord('u_members');  


grp.addQuery('u_code', a);       //Hope u_code is a reference field and it's having a details of groups.


grp.query();  


while(grp.next())  


gp.push(grp.sys_id.toString());  


return 'sys_idIN' + gp;  


},  


type: ' BackfillAssignmentGroups'  


});


Tried this, but it is returning all of the records.



Thanks


Divya


can you please share your custom table form screenshot?


Actually the value being sent to gp array is also a reference value from sys_user onto u_members table.



Thanks


Divya