Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Problem with gs.getUser().getRecord().getDisplayValue() when comparing in array

adriantan08
Giga Expert

Hi, Guys.

I stumbled upon this interesting observation.

So when I did this:

var t = ["Finance", "Sales"];

var t1 = gs.getUser().getRecord().getDisplayValue('department');

gs.log(t.indexOf(t1));

 

this will always evaluate to -1. It's very odd because doing a simple == comparison returns true (i.e. t1 == "Finance"). 

Please let me know if there's just something I'm missing - could even be a something I'm missing in basic javascript. 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

Hi Adrian,

are you trying to search the department value into that array then do this;

indexOf doesn't work properly on array in servicenow; instead use ArrayUtil ServiceNow class

var t = ["Finance","Sales"];

var t1 = gs.getUser().getRecord().getDisplayValue('department');

var arrUtil = new ArrayUtil();

var val = arrUtil.indexOf(t, t1);

gs.info(val);

Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur

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

View solution in original post

6 REPLIES 6

Manish Vinayak1
Tera Guru

Typecast the result with String type and see if you get result on using indexof:

var t = ["Finance", "Sales"];

var t1 = String(gs.getUser().getRecord().getDisplayValue('department'));

gs.log(t.indexOf(t1));

Hope this helps!

Cheers,

Manish

Ankur Bawiskar
Tera Patron
Tera Patron

Hi Adrian,

are you trying to search the department value into that array then do this;

indexOf doesn't work properly on array in servicenow; instead use ArrayUtil ServiceNow class

var t = ["Finance","Sales"];

var t1 = gs.getUser().getRecord().getDisplayValue('department');

var arrUtil = new ArrayUtil();

var val = arrUtil.indexOf(t, t1);

gs.info(val);

Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur

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

Hello @Ankur Bawiskar ,

I have written below to print the logged-in user's manager name. but I am not getting any value it's returning nothing. but for other reference filed like title, and location it's giving me proper data .please guide me.

thank you.

gs.print(gs.getUser().getRecord().getDisplayValue('manager'));

@Mark Wood 

it worked fine for me in global scope. it won't work in scoped app

screenshot below

manager name.gif

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