Not able to retrieve Multi Row variable set data using onSubmit client script

Deepika18
Tera Guru

I'm unable to retrieve MRVS data from onsumbit client script. I have a requirement to get the total value of seats into a variable outside of MRVS. I'm using on submit client script.

Below is the code which I tried

function onSubmit() {
var gr = g_form.getValue(#varibale set name);
var parser = JSON.parse(gr);
var sum = 0;
alert(parser);for(var i=0;i<parser.length;i++){
sum = sum + parseFloat(parser[i].seats);  // variable name inside MRVS
alert(sum);
}

I'm getting gr value as empty and the total field is also not updating. Please help me in getting the total value into a variable outside of the multi row variable set.

find_real_file.png

1 ACCEPTED SOLUTION

Sai Kumar B
Mega Sage
Mega Sage

Hi Author,

To access the outside variables do the below

First, You would need to create an Onload script in your catalog item, with isolate script set to false: 

function onLoad() {
   //We need to make the g_form object for the parent item available for later
	
    this.cat_g_form = g_form;
   
}

Once that is in place, you can use something like in a script on the MVRS (also set to isolate script false). 

function onSubmit() {
    //Type appropriate comment here, and begin script below
    var multiRowVariableSet = JSON.parse(g_form.getValue('demo_variable_set')); // Replace your variable set Name and not label here.
    var totalCost = 0;
    for (var i = 0; i < multiRowVariableSet.length; i++) {
        totalCost += multiRowVariableSet[i].Variable_Name; //add all totals from the MRVS to 1 total
    }
    alert(totalCost);
	//Service Portal logic
    if (this) {
        this.cat_g_form.setValue('variable_name', 'totalCost');
    } else {
		//Native UI logic
        parent.g_form.setValue('variable_name', 'totalCost');
    }
}

View solution in original post

28 REPLIES 28

Any update on my post above?

Regards,

Shloke

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Sai Kumar B
Mega Sage
Mega Sage

Hi Author,

To access the outside variables do the below

First, You would need to create an Onload script in your catalog item, with isolate script set to false: 

function onLoad() {
   //We need to make the g_form object for the parent item available for later
	
    this.cat_g_form = g_form;
   
}

Once that is in place, you can use something like in a script on the MVRS (also set to isolate script false). 

function onSubmit() {
    //Type appropriate comment here, and begin script below
    var multiRowVariableSet = JSON.parse(g_form.getValue('demo_variable_set')); // Replace your variable set Name and not label here.
    var totalCost = 0;
    for (var i = 0; i < multiRowVariableSet.length; i++) {
        totalCost += multiRowVariableSet[i].Variable_Name; //add all totals from the MRVS to 1 total
    }
    alert(totalCost);
	//Service Portal logic
    if (this) {
        this.cat_g_form.setValue('variable_name', 'totalCost');
    } else {
		//Native UI logic
        parent.g_form.setValue('variable_name', 'totalCost');
    }
}

Sai Kumar B
Mega Sage
Mega Sage

@Deepika Please apply your client script on Catalog Item in case you applied it on Variable set and try the @shloke04 sample code

 

Thanks a Lot! It worked

@Deepika Could you please mark my response as correct and close the loop it would help future readers as well