Can I use g_form.setValue() in a name value pairs field?

Joe83
Kilo Contributor

Hi ServiceNow Community Developers,

Do you guys know if one can use the g_form.setValue() API in a name value pairs field? If so would you please provide examples of how one can go about in doing that. 

Thanks,

John

1 ACCEPTED SOLUTION

Hi,

you need to parse the array of json objects

Sample below

var arr = '[{"variable":"jm_template_variable","type":"xlrelease.StringVariable"},{"variable":"jm_template_var2","type":"xlrelease.StringVariable"},{"variable":"jm_date","type":"xlrelease.DateVariable"},{"variable":"jm_boolean","type":"xlrelease.BooleanVariable"},{"variable":"jm_array","type":"xlrelease.ListStringVariable"},{"variable":"jm_integer","type":"xlrelease.IntegerVariable"}]';

var parser = JSON.parse(arr);

var obj = {};

for(var i=0;i<parser.length;i++){
obj[parser[i].variable] = parser[i].type;
}

g_form.setValue('u_name_value', JSON.stringify(obj));

Output:

find_real_file.png

Regards
Ankur

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

View solution in original post

8 REPLIES 8

Hi,

you need to parse the array of json objects

Sample below

var arr = '[{"variable":"jm_template_variable","type":"xlrelease.StringVariable"},{"variable":"jm_template_var2","type":"xlrelease.StringVariable"},{"variable":"jm_date","type":"xlrelease.DateVariable"},{"variable":"jm_boolean","type":"xlrelease.BooleanVariable"},{"variable":"jm_array","type":"xlrelease.ListStringVariable"},{"variable":"jm_integer","type":"xlrelease.IntegerVariable"}]';

var parser = JSON.parse(arr);

var obj = {};

for(var i=0;i<parser.length;i++){
obj[parser[i].variable] = parser[i].type;
}

g_form.setValue('u_name_value', JSON.stringify(obj));

Output:

find_real_file.png

Regards
Ankur

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

Thank you very much Ankur, it works. It's been driving crazy for more than 8 hours today. You are the greatest

Glad to help.

Happy learning.

Regards
Ankur

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

Hi Ankur/  Joe83,

 

I am also using similar way but it is not working

function onLoad() {
    // Type appropriate comment here, and begin script below
    alert("OnLoad");
    var arr = '[{"name":"jm_template_variable","value":"xlrelease.StringVariable"},{"name":"jm_template_var2","value":"xlrelease.StringVariable"},{"name":"jm_date","value":"xlrelease.DateVariable"},{"name":"jm_boolean","value":"xlrelease.BooleanVariable"},{"name":"jm_array","value":"xlrelease.ListStringVariable"},{"name":"jm_integer","value":"xlrelease.IntegerVariable"}]';

    var parser = JSON.parse(arr);

    var obj = {};

    for (var i = 0; i < parser.length; i++) {
        obj[parser[i].name] = parser[i].value;
    }
    if (g_form.hasField('u_properties')) {
		alert( JSON.stringify(obj));
        g_form.setValue('u_properties', JSON.stringify(obj));
    }
}