The CreatorCon Call for Content is officially open! Get started here.

Populate variable dynamically servicenow

servicenow14710
Tera Expert

Hello developers, can you please help me on how to populate lookup select box/select box dynamically from the answer i get from script include .Any help is appreciated. Thanks!

7 REPLIES 7

@servicenow14710 : Could you share the below configurations that you used to answer better.

1. What is the lookup value field that you used in your variable?

SainathN_0-1706323755129.png

2. What is the value that you are returning from your script include? (Ex: Object, String etc..)

 

In general, we will use, 

 

g_form.setValue('YOUR_VARIABLE_NAME', 'VALUE_RETURNED_FROM_SCRIPT_INCLUDE');

 

Please mark this as correct answer and helpful if it resolved, or mark this helpful if this help you to reach towards solution.

Hello @Sainath N : i tried the code

g_form.setValue('YOUR_VARIABLE_NAME', 'VALUE_RETURNED_FROM_SCRIPT_INCLUDE');

this returns the sys ids , i need to return the table columns is it possible. Similar to how we give reference qualifier to table but dynamically. Thanks!

AnveshKumar M
Tera Sage
Tera Sage

Hi @servicenow14710 

 

You should look at the response received from the Client Callable Script Include.

 

If you are expecting a single sys_id in response that's fine, but if it is multiple sys_ids, they should be comma seperated. In either case you can use g_form.setValue('field_name', response);

 

For example, for the following client callable script include, it queries a table and returns the sys_ids of all the records that were fetched as a comma seperated string.

 

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

getSomeResponse: function(){
var tblGr = new GlideRecord('Table_name');
tblGr.addEncodedQuery('Some_Query');
tblGr.query();
var response = []; //An array to store all sys_ids from the query
while(tblGr._next()){
response.push(tblGr.getUniqueValue()); //Insert the sys_id into the array
}
return response.join(','); //Return the array as comma seperated string
},

type: 'SampleUtils'
});

 

 

The client script should be like this,

 

var ga = new GlideAjax('SampleUtils');

ga.addParam('sysparm_name', 'getSomeResponse');

ga.getXMLAnswer(processResponse);

 

function processResponse(answer){

if(answer){

alert(answer); // This is for debugging purpose, remove this later

g_form.setValue('field_name', answer);

} else {

alert('Invalid response'); // You can also remove this

}

 

 

Please mark my answer helpful and accept as a solution if it helped 👍

 

Thanks,
Anvesh