How to hide/disable one multi row variable set(MRVS) based on condition of another Multi Row Variable Set(MRVS) on Record Producer

Raviteja Kunal1
Tera Expert

Hi All

Need help on Multi Row Variable Set client side scripting on an Record Producer. I have 2 MRVS.

Based on first MRVS entry another needs to be disabled or hidden.

Any suggestions how to achieve or reference is highly appreciated.

Thank You 

 

 

1 ACCEPTED SOLUTION

Brad Bowman
Kilo Patron
Kilo Patron

You need to write an onChange Catalog Client Script within the 1st MRVS, when your particular variable in the variable set changes. So for any row in MRVS1, when a certain value is selected, MRVS2 will become hidden.  The script would look like this to hide the 2nd MRVS.

function onChange(control, oldValue, newValue, isLoading) {
   if (isLoading || newValue == '') {
      return;
   }

	if(newValue == 'My Choice'){//replace with the value that should hide MRVS2
		if(this){//Service Portal method
			this.cat_g_form.setDisplay('mrvs2', false);//replace with the internal name of 2nd MRVS
			
		}
		else{//native UI method
			parent.g_form.setDisplay('mrvs2', false);//replace with the internal name of 2nd MRVS
		}
	}
}

If you are using Service Portal, you will also need an onLoad Catalog Client Script within the Record Producer, not the MRVS.

function onLoad() {
	if (this) {//we only need to do this for Service Portal
		//We need to make the g_form object for the parent item available from the MRVS window
		this.cat_g_form = g_form;
	}
}

View solution in original post

15 REPLIES 15

Agreed!  There has since been the addition of g_service_catalog

https://docs.servicenow.com/bundle/tokyo-api-reference/page/app-store/dev_portal/API_reference/g_ser... 

which can be used to get values from the main Catalog Item, but you would still need something like this to set values outside of the MRVS.