populate default values in list collector according to region onchange and onload

gm6
Tera Contributor

populate default values in list collector according to region onchange and onload.

3 REPLIES 3

Anil Lande
Kilo Patron

Hi,

Can you please share more details?

Please follow below link while posting question.

https://community.servicenow.com/community?id=community_article&sys_id=d450b434dbba1850fa192183ca961...

 

Also share what you have tried and what is not working?

 

Thanks,
Anil Lande

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

gm6
Tera Contributor

Hi Anil,

i need to populate some default values in list collector and those values have to populate according to region onload is working and onchange script is not working

onload script

function onLoad() {
//Type appropriate comment here, and begin script below
//Type appropriate comment here, and begin script below
var reqFor = g_form.getValue('requested_for');
//alert("Bala"+reqFor);
var ga = new GlideAjax('UserInfoUtils');
ga.addParam('sysparm_name', 'getUserInfoEmployeeLookup');
ga.addParam('sysparm_user', reqFor);
ga.getXML(parseCallback);

function parseCallback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
//alert(answer);
if (answer) {
var parsedAnswer = JSON.parse(answer);
if (parsedAnswer.u_region) {
//alert(parsedAnswer.u_region.toString());
alert(parsedAnswer.u_region.toString());
var userRegion = parsedAnswer.u_region.toString();
if(userRegion=="Asia"){
// populate items to List Collector
addItemtoList('select_accesories');
}
}
}
}

function addItemtoList(listCollector){
//
//get list collector values and populate in string field
var traineeEmailCollection=[];
var traineeNameList=g_form.getValue('select_accesories');
// give here list collector variable name in above syntax
var trainees=traineeNameList.split(',');
for (var i=0; i < trainees.length; i++) {
var gr = new GlideRecord('sys_user');
gr.query('sys_id',trainees[i]);
gr.query();
while(gr.next())
{
traineeEmailCollection.push(gr.email);
}
}
g_form.setValue('select_accesories',traineeEmailCollection);
// Give the required field name where you need list collector values in above syntax
}

}

 

onchange script

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
//Type appropriate comment here, and begin script below
var ga = new GlideAjax('UserInfoUtils');
ga.addParam('sysparm_name', 'getUserInfoEmployeeLookup');
ga.addParam('sysparm_user', newValue);
ga.getXML(parseCallback);

function parseCallback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
//alert(answer);
if (answer) {
var parsedAnswer = JSON.parse(answer);
if (parsedAnswer.u_region) {
//g_form.setValue('terminated_employees_region', parsedAnswer.u_region.toString());
alert(parsedAnswer.u_region.toString());
var userRegion = parsedAnswer.u_region.toString();
if(userRegion=="Asia"){
// populate items to List Collector
//addItemtoList('select_accesories');
}
}
}
}

function addItemtoList(listCollector){
//Name of variable to move options from
var varName = listCollector; //'YOUR_VARIABLE_NAME_HERE';
var leftBucket = g_form.getValue(varName + '_select_0');
var rightBucket = g_form.getValue(varName + '_select_1');
var selectedOptions = rightBucket.options;
alert(selectedOptions.length);
//Get an array of all option IDs to move
var selectedIDs = new Array();
var index = 0;
for(var i = 0; i < selectedOptions.length; i++){
selectedIDs[index] = i;
index++;
}
//Move all returned options from right to left bucket and sort the results
//Switch 'rightBucket' and 'leftBucket' to move from left to right
moveSelectedOptions(selectedIDs, rightBucket, leftBucket, '--None--');
//Sort the resultant options in the left bucket
sortSelect(leftBucket);

}
}

 

to populate default values i copied sys_id of the values and paste them in variable 

Ankur Bawiskar
Tera Patron
Tera Patron

@gm 

refer my blog on how to populate list collector based on change of another variable

It works in native + portal

If my blog helps please mark it helpful and also bookmark it

Dynamically set list collector on change of variable

Regards
Ankur

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