Issue with list collector

Jakkamsetti Pra
Tera Contributor

Hi Team,

 

Here I'm having values in list collector, when I'm trying to update with new values it's getting update with one value.

 

Here we need to update for multiple values also but for multiple values, the first value is getting update with new value and the other values disappearing.

 

var count=0;
var gr = new GlideRecord('incident');
gr.addEncodedQuery('sys_id=ea98ba3cdb33c81004a55ce2ca96195a');
gr.query();
while (gr.next()){
var demotype = gr.getDisplayValue('demo_type');
var splitdemotype = [];
var splitdemotype = demotype.split(',');
gs.print(splitdemotype);
for (var i = 0; i<splitdemotype; i++){
if(splitdemotype[i].trim() == 'On Hold'){
gs.print('First loop');
gr.setValue('demo_type','03e31627975de950fea876d11153afda');
}
else if(splitdemotype[i].trim() == 'Externally Targetted'){
gs.print('second loop');
gr.setValue('demo_type','4b5e06dddb1eac107b6afe8b0c961916');
}
else if(splitdemotype[i].trim() == 'External – Hight'){
gs.print('third loop');
gr.setValue('demo_type','4b5e06dddb1eac107b6afe8b0c961916');
}
else if(splitdemotype[i].trim() == 'External Host'){
gs.print('fourth loop');
gr.setValue('demo_type','669752a7975de950fea876d11153afa6');
}
else if(splitdemotype[i].trim() == 'External Ramp'){
gs.print('fifth loop');
gr.setValue('demo_type','669752a7975de950fea876d11153afa6');
}
else if(splitdemotype[i].trim() == 'External Loop'){
gs.print('six loop');
gr.setValue('demo_type','669752a7975de950fea876d11153afa6');
}
gr.update();
count++;
}
}
gs.print('Total demo_type records updated are : ' + count);

 

Result : Executed First loop,third loop

 

2 ACCEPTED SOLUTIONS

Ankur Bawiskar
Tera Patron
Tera Patron

@Jakkamsetti Pra 

Few things to inform

1) use If and not while as you are querying with sysId hence you will get only 1 record in incident table

2) I have used array

use this and check once

var arr = [];
var gr = new GlideRecord('incident');
gr.addEncodedQuery('sys_id=ea98ba3cdb33c81004a55ce2ca96195a');
gr.query();
if (gr.next()){
	var demotype = gr.getDisplayValue('demo_type');
	var splitdemotype = demotype.split(',');
	gs.print(splitdemotype);
	for (var i = 0; i<splitdemotype; i++){
		if(splitdemotype[i].trim() == 'On Hold'){
			gs.print('First loop');
			arr.push('03e31627975de950fea876d11153afda');
		}
		else if(splitdemotype[i].trim() == 'Externally Targetted'){
			gs.print('second loop');
			arr.push('4b5e06dddb1eac107b6afe8b0c961916');
		}
		else if(splitdemotype[i].trim() == 'External – Hight'){
			gs.print('third loop');
			arr.push('4b5e06dddb1eac107b6afe8b0c961916');
		}
		else if(splitdemotype[i].trim() == 'External Host'){
			gs.print('fourth loop');
			arr.push('669752a7975de950fea876d11153afa6');
		}
		else if(splitdemotype[i].trim() == 'External Ramp'){
			gs.print('fifth loop');
			arr.push('669752a7975de950fea876d11153afa6');
		}
		else if(splitdemotype[i].trim() == 'External Loop'){
			gs.print('six loop');
			arr.push('669752a7975de950fea876d11153afa6');
		}
	}
	gr.demo_type = arr.toString();
	gr.update();
}

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

Please replace

for (var i = 0; i<splitdemotype; i++){

with

for (var i = 0; i<splitdemotype.length; i++){

View solution in original post

14 REPLIES 14

Hi @Ankur Bawiskar ,

 

Could you please help on this. Thank you.

demo type.png

@Jakkamsetti Pra 

can you print what comes in the field value for demo_type?

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

Hi Ankur,

I took sys_id where demo_type having two values.

I printed and could see two values as per attached snipdemo type.png

@Jakkamsetti Pra 

then are you sure the sysIds you are pushing into array are correct ones?

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