Script/while loop not returning correct value

Ruchi Kumari1
Tera Expert

Hi,
I am trying a simple logic to retrieve values from table but I am not getting expected return. 

var machine_name = '';
var serial_number = '';
var reqUser = '';
var grMRVSAnswers1 = new GlideRecord('sc_multi_row_question_answer');
grMRVSAnswers1.addQuery('row_index=' + rowIndex); // There are 3 records in the table for the row id passed
grMRVSAnswers1.query();
while (grMRVSAnswers1.next()) {
    if ((grMRVSAnswers1.getDisplayValue('item_option_new') == 'Machine/Asset Names')) {
        machine_name = grMRVSAnswers1.value;
        gs.print(machine_name); // Getting Expected value : Machine123
    } else if ((grMRVSAnswers1.getDisplayValue('item_option_new') == 'Serial Number') ) {
        serial_number = grMRVSAnswers1.value;
        gs.print(serial_number );//Getting Expected Value : SerialNumber123
    } else if ((grMRVSAnswers1.getDisplayValue('item_option_new') == 'Requested For')) {
        reqUser = grMRVSAnswers1.value;
        gs.print(reqUser);//Getting Expected Value : RK123
    }
}
gs.print('reqUser ' + reqUser); //Returned Value : RK123
gs.print('machine_name ' + machine_name);////Returned Value : RK123 ??
gs.print('serial_number ' + serial_number);//Returned Value : RK123 ??


Not sure why are machine names and serial number variables getting override with userid when I am getting correct logs for individual if-else statement. What am I missing here ?

1 ACCEPTED SOLUTION

Manoj89
Giga Sage

Hi Ruchi,

 

It seems the issue is with the ServiceNow API itself, or maybe it's the default functionality.

You can stringify it to get the exact result, something like

 

 

machine_name = String(grMRVSAnswers1.value);

 

 

View solution in original post

4 REPLIES 4

mohdarbaz
Kilo Guru

Hi @Ruchi Kumari1 ,

 

Correct this line in your code which is in first else if block. 

        gs.printserial_number );//Getting Expected Value : SerialNumber123

 

If my response helped, please mark it as correct.

 

Regards,

Mohd Arbaz.

Hi @mohdarbaz , It's a typo in the question. Please ignore that.
In actual script, it's correctly added. Hence, getting the expect log as I mentioned.

Manoj89
Giga Sage

Hi Ruchi,

 

It seems the issue is with the ServiceNow API itself, or maybe it's the default functionality.

You can stringify it to get the exact result, something like

 

 

machine_name = String(grMRVSAnswers1.value);

 

 

@Manoj89 , Thanks for the response. Strange but this worked !