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.

Reference Qualifier to filter locations based on User Location

mattfollowell
Tera Expert

I have a variable on a catalogue item that references the locations table. I want that variable to only list locations whose parent = the signed in user's location. EXCEPT if the signed in User's location = MG. If the signed in user's location is MG then I want the variable to list all locations on the table.

function advloc() {
var locPar;
var userLoc='';
var gr=new GlideRecord('sys_user');
gr.addQuery('sys_id',gs.getUserID());
gr.query();
    while(gr.next()){
        userLoc=gr.location;
    }
    if(userLoc.includes("MG")){
        locPar = "";
    }
    else {
        locPar = "parent = userLoc";
    }
return locPar
}

I think it is not working because it returns the name of the location and not the Sys_Id, but I'm not 100%.

1 ACCEPTED SOLUTION

You're on the right track. That script belongs in a script include that is client callable:

And in your reference qualifier you would just do:

new getLocation().locations();

View solution in original post

39 REPLIES 39

Where are you calling this from? For reference qualifiers you should call a script include that returns the information you want available in the field.

I am fumbling through this so maybe a screenshot will help.find_real_file.png

You're on the right track. That script belongs in a script include that is client callable:

And in your reference qualifier you would just do:

new getLocation().locations();

Looks like one of the images you shared didn't load.

I put the script in a client callable script include and then called it in my reference qualifier and still no dice. 😕

I'm going to look over the script to make sure I don't have any typos.

I double checked and corrected my typos, but still no luck. I might just be missing something, I'm still pretty new to ServiceNow.