- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-19-2018 11:06 AM
I have a user Criteria where logged in uses / users who are active can view , but seems like its not working as expected
can some one help me whats wrong in the code
scriptAut();
function scriptAut() {
var retVal;
if (gs.getUser() =="") { // i tried this as well if (gs.getUser() ==active) {
retVal = false;
} else {
retVal = true;
}
return retVal;
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-21-2020 05:58 AM
Yes ,, gs.getuser is not supported in user criteria ,, there is a problem ticket opened
This is the solution given by Hi team
Solution Proposed: ============ IS THIS A BUG? ============
So we are dealing with a bug on our platform which is intermittent and occurs very rarely. This is recorded in PRB1319258 with the following description: Using GlideSystem objects such as gs.getUser(), gs.getUserID(), gs.getSession() in User Criteria does not work as expected consistently. This problem has been declared as "Working As Expected" with the reason that the issue happens very rarely.
============ ANY WORKAROUND? ============ However, we have a workaround in place which will involve moving your implementation to using script include (which is aware of application scope changes). This will ensure that the value returned correctly every time without failing intermittently. Please throughly review this knowledge article regarding this (has examples): https://hi.service-now.com/kb_view.do?sysparm_article=KB0719846

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-19-2018 12:10 PM
change it to something like
condition = answer();
function answer(){
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id', gs.getUserID());
gr.addActiveQuery();
gr.query();
condition = gr.hasNext();
return condition;
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-19-2018 12:10 PM
Hello Kam,
Replace if (gs.getUser() =="") with if(gs.getUserID() == '')and try. Also Can you provide some additional details on what you are trying to accomplish?
Thanks,
Pradeep Sharma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-20-2018 05:48 AM
ours is a public domain , we want to show the KB articles to public and some Kbs are restricted to internal users only , in order to accomplish that we are using user criteria (can read) for some KB articles this is where my above question came in to picture , (i can use snc_internal role to fulfill this but we need script for other purpose ) . even though our code is simple its kind of not working
I tried ur code too ,, its not working
scriptAut();
function scriptAut() {
var retVal;
// if (gs.getUser().getRecord().getDisplayValue('department') == 'Product Management') {
//if (gs.getUser() != "") {
if(gs.getUserID() != '') {
retVal = false;
} else {
retVal = true;
}
return retVal;
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-19-2018 12:38 PM
My first question is, if the user is inactive can they even log in ServiceNow???!!!