How to create advance reference qualifier with if and else conditions

rahul16
Giga Guru

I am using a variable set and I am filtering conditions like

Application<category<sub-category

if there is no application then category<sub-category

 

javascript&colon; 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id)+'^u_application='+current.variables.application;

 

This will work only if user select application

 

How can I use it if the application is empty set the application as empty?

if(current.variables.application){
return current.variables.application;
}else{
return '';
}

 

I created like this 

javascript&colon;if (current.variables.application != "") 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id)+'^u_application='+current.variables.application;else 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id);

 

but else part not working

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@rahul16 

use this

javascript&colon; var query; if (current.variables.application != "") query = 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id)+'^u_application='+current.variables.application; else query = 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id); query;

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

19 REPLIES 19

vikrantsharma
Kilo Guru

Try returning something arbitrary in the else condition:

 

else{
return '....';
}

 

See if that works?

Please make it correct or helpful if this solves or help you with your issue for other to make use it.

Thanks & Regards,
Vikrant Sharma

rahul16
Giga Guru

javascript&colon;if (current.variables.application != "") 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id)+'^u_application='+current.variables.application;else 'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id);

 

You mean like this but else part not working 

mdash
Giga Guru

Usually, if there is dynamic condition involved,
1. you can create a script include
2. Pass the current object/cat item id into the parameter
3. build your if else condition in the script include function
4. return the filtered list of sys ids into your ref qualifier 

For ex: javascript&colon; new MyScriptInclude().getResults(current.sys_id);
and define your logic in the MyScriptInclude function.

You can try like this.

var test = Class.create();
test.prototype = {
initialize: function() {},
getCategory: function(app) {
if (app) {
return "'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id)+'^u_application='+current.variables.application";
} else {
return "'u_type=category^u_inactive=false^u_catalog_item='+(current.cat_item.sys_id||current.request_item.cat_item.sys_id)";
}

},

type: 'test'
};

javascript:new global.test().getCategory(current.variables.application);
 
I created like this but not working fine