How can I use system properties in the client callable script include

neha49
Kilo Expert

How I can use system properties here? I want to filter out some locations and those locations I want to keep it in sys_properties. I tried but was not able to achieve.

Please suggest.. Thanks in advance...

Below is working client callable script include, only I want to use system properties instead of encodedquery

 

var FilterOutOfScopeLocations = Class.create();
FilterOutOfScopeLocations.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getInScopeCases: function() {
var arr = [];
var gr = new GlideRecord('xyz');
queryString = 'reported_person.location.countryNOT LIKEChina^reported_person.location.countryNOT LIKERussia^reported_person.location.countryNOT LIKENetherlands^reported_person.location.countryNOT LIKEBelgium^reported_person.location.countryNOT LIKEIsrael^reported_person.location.countryNOT LIKETaiwan^reported_person.location.countryNOT LIKESingapore';

gr.addEncodedQuery(queryString);
// gr.addQuery('reported_person.location.country', gs.getProperty('sp.filterOutOfScopelocations.country'));
gr.query();
while (gr.next()) {
arr.push(gr.sys_id.toString());
}
return 'sys_idIN' + arr;


},
type: 'FilterOutOfScopeLocations'
});

1 ACCEPTED SOLUTION

Give another try like this. 

 

var getIncDetailsRow = Class.create();
getIncDetailsRow.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	myFun: function(){
		var arr = [];
		var grp = new GlideRecord('sys_properties');
		grp.get('name','MYTEST'); // add your properties name	
		var prop = grp.getValue('value').split(',');
		var gr = new GlideRecord('incident');
		for(var i = 0;i<prop.length; i++)
			gr.addQuery('short_descriptionNOT LIKE'+prop[i]);		
		gr.query();
		while(gr.next()){
			arr.push(gr.getUniqueValue());
		}

		return arr;

	},

	type: 'getIncDetailsRow'
});

View solution in original post

14 REPLIES 14

It worked. Thanks amazing!

Harsh Vardhan
Giga Patron

Quick Demo, i have tested on my personal instance. 

 

find_real_file.png

 

If my answer helped , kindly mark it as correct and helpful.

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

For filtering records using query use this

I assume you want to filter with exact names

reported_person.location.countryNOT INChina,Russia,Netherlands,Belgium,Israel,Taiwan,Singapore

Can you try this once

var FilterOutOfScopeLocations = Class.create();
FilterOutOfScopeLocations.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	getInScopeCases: function() {
		
		var arr = [];
		var prop = gs.getProperty('propertyName');
		
		var gr = new GlideRecord('xyz');
		var queryString = 'reported_person.location.countryNOT IN' + prop;
		gr.addEncodedQuery(queryString);
		gr.query();
		while(gr.next()) {
			arr.push(gr.sys_id.toString());
		}
		return 'sys_idIN' + arr;
	},
	
	type: 'FilterOutOfScopeLocations'
});

Regards
Ankur

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

Thanks Ankur.

Tried this. Its not giving me the expected result.

Hi,

are you trying to compare exact value of country or willing to search for the country name

script I shared should work fine for exact country match

Regards
Ankur

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