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()){ }
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
Post a Comment