Skip to main content

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play!

option 1

use an encoded query embedded in the GlideRecord, e.g. 

var grProf=new GlideRecord('x_cls_clear_skye_i_profile');
grProf.addQuery('status=1^owner=NULL');
grProf.query();


even better use the glideRecord addNotNullQuery or addNullQuery

option 2

JSUtil.nil / notNil
(this might be the most powerful. See this link)

example:

if (current.operation() == 'insert' && JSUtil.notNil(current.parent) && !current.work_effort.nil())

 option 3

there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null

can use gs.nil:

var grAppr=new GlideRecord('sysapproval_approver');
var grUser=new GlideRecord('sys_user');
if (grUser.get('sys_id', current.approver)){
if (!gs.nil(grUser.email)){
gs.addInfoMessage('resent approval to ' + grUser.email);
}else{
//.....
}
}

check if this works outside global scope!

or


if (!current.start_date.nil()){
}


option 4

use = null

var table_name = 'incident';
var field_name = 'u_interaction';
if (current_sys_id == undefined) current_sys_id = this.getParameter('sysparm_current_sys_id');
var record = this.getGlideRecord(table_name, field_name, current_sys_id);
if (record == null)
return 'false';
return 'true';
},

 option 6

use empty string, either within GlideRecord filter (for not null) or after the gr.next()
var gr=new GlideRecord('sys_user');
gr.addQuery('name', '!=', '');
gr.query();
if (gr.next()){
gs.print(gr.sys_id);
}


var gr=new GlideRecord('sys_user');
gr.addQuery('active', true);
gr.query();
while (gr.next()){
if (gr.getValue('name')==''){
gs.print(gr.sys_id);
}
}

Comments

Popular posts from this blog

Code a pause/wait - gs.sleep or gs.wait alternative, pause script for specified seconds (timer)

Code a pause/wait - gs.sleep / gs.wait alternative, pause script for specified seconds (timer)  e.g. 10 seconds: do_sleep ( 10000 ); function do_sleep ( milliseconds ) { var start = new Date (). getTime (); for ( var i = 0 ; i < 1e7 ; i ++) { if (( new Date (). getTime () - start ) > milliseconds ){ gs . print ( 'waking up!' ); break ; } } }