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

Service Catalog: variable advanced reference qualifiers

Call a script include to apply a reference qualifier on a catalog item variable: - variable reference qualifier dependent on another variable selection, in this case a variable referencing sys_user (requested_for) On the catalog item form. variable name to apply ref qual filter : retail_equipment variable reference qualifier (on cmdb table ): javascript : new  refqual_functions (). lostStolen_getAssignedCIs (); client-callable script include ( refqual_functions)  function : lostStolen_getAssignedCIs : function (){         //--called from variable set client script, for lost/stolen request (service catalog)     gs . log ( current . variables . requested_for , 'retail_lostStolen_getAssignedCIs' );         return ( 'install_statusNOT IN8,7^owned_by=' + current . variables . requested_for );             //owned_by=1269b79937f1060041c5616043990e41^install_statusNOT IN8,7            },