How to calculate the sum of the value in multi row variable set?

hongsok
Tera Contributor

Hi,

I am using the MRVS and need to sum the value of the hard drive's size as shown in the pic.

I would appreciate if anyone can give me a clue.

 

find_real_file.png

1 ACCEPTED SOLUTION

Mark Roethof
Tera Patron
Tera Patron

Hi there,

You would have to place a "Total size" variable outside the MRVS for this. Unfortunately though, you would want to calculate that field on the moment you are adding a row. Though, from within the MRVS, you can't influence variables outside the MRVS.

You could think of a workaround. For example, on submission of the Catalog Item, the Total Size will be calculated and the Variable filled. If help needed on this, I can have a look. We have a similar workaround in place. 

If my answer helped you in any way, please then mark it as helpful.

Kind regards,
Mark

---

LinkedIn

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

View solution in original post

27 REPLIES 27

Hmmm looking at the query closer:

grMRVSAnswer.addSizeQuery

It says addSizeQuery? This should be either addQuery or addEncodedQuery. In this case, addEncodedQuery.

If my answer helped you in any way, please then mark it as helpful.

Kind regards,
Mark

---

LinkedIn

 

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

hongsok
Tera Contributor

Hi Mark,

It turn out the result is 0.

 

find_real_file.png

One moment, I'm simulating now on my PDI 🙂

Did saw already that the:

 + parseFloat(amountInt);

Is not oke anymore, because amountInt is commented.

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

Just tried below code, works instantly. Obviously check the sys_id and field names used.

I had to modify slightly because my example code was about multiple MRVS + value with decimals.

(function executeRule(current, previous /*null when async*/) {

	var grMRVSAnswer = new GlideRecord('sc_multi_row_question_answer');
	grMRVSAnswer.addEncodedQuery('parent_id=' + current.getUniqueValue() + '^item_option_new=bc6fb0f2dbbb7f40b9f39026db9619af');
	grMRVSAnswer._query();

	var totalInt = 0;	
	while(grMRVSAnswer._next()) {
		if(grMRVSAnswer.value != '') {
			totalInt = parseInt(totalInt) + parseInt(grMRVSAnswer.value);
		}
	}

	current.variables.total_disk_size = totalInt;
	current.update();

})(current, previous);

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn

hongsok
Tera Contributor

Hi Mark,

It works now - I put the wrong sys_ID.

One last question. The result is still show decimal. 

 

find_real_file.png