Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

MRVS How to iterate and check each row if a variable value is not empty

Ljone
Giga Contributor

Hi,

I have an Onsubmit client script that should check if for each rows, 1 variable: 'member_replacement' is not empty and all rows are filled in. How to achieve this? 

We are auto-populating the addtion of row  and users need to update each row variable:member_replacement

below is my current script but not working .  Thank you.

 

function onSubmit() {
//Type appropriate comment here, and begin script below

var multiRowVariableSet = JSON.parse(g_form.getValue('group_creation_members')); //internal name mrvs
var numberOfRows = multiRowVariableSet.length;

for (var i = 0; i < multiRowVariableSet.length; i++) {
alert(numberOfRows);

if(multiRowVariableSet[i].member_replacement == ""){                //variable name
alert("With Value "+ multiRowVariableSet.member_replacement + " " + multiRowVariableSet.group_member_name);
}
else{
alert("Without Value "+ multiRowVariableSet.member_replacement + " " + multiRowVariableSet.group_member_name);

}
}

 }

 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@Ljone 

So you want to check if both the variables are non-empty

if any row has both the variables as empty then stop form submission

update as below

function onSubmit() {
//Type appropriate comment here, and begin script below


var mrv = JSON.parse(g_form.getValue('group_creation_members')); // mrvs internal name
if (mrv.length >= 1){
alert(mrv);

var memberArrCount = 0;
var replacingArrCount = 0;

for (var i=0; i<mrv.length; i++){

if(mrv[i].member_replacement != '')
memberArrCount++;

if(mrv[i].group_member_who_are_you_replacing != '')
replacingArrCount++;

}

if(mrv.length != memberArrCount && mrv.length != replacingArrCount){
alert('empty column');
return false;
}
}

}

Regards
Ankur

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

View solution in original post

10 REPLIES 10

Pratiksha Kalam
Kilo Sage

Hello

Refer for help,

https://community.servicenow.com/community?id=community_article&sys_id=a9c7454ddb6880d4414eeeb5ca961...

 

If answer is helpful please mark correct and helpful!
Thanks,
Pratiksha

Ankur Bawiskar
Tera Patron
Tera Patron

@Ljone 

So you want to check if both the variables are non-empty

if any row has both the variables as empty then stop form submission

update as below

function onSubmit() {
//Type appropriate comment here, and begin script below


var mrv = JSON.parse(g_form.getValue('group_creation_members')); // mrvs internal name
if (mrv.length >= 1){
alert(mrv);

var memberArrCount = 0;
var replacingArrCount = 0;

for (var i=0; i<mrv.length; i++){

if(mrv[i].member_replacement != '')
memberArrCount++;

if(mrv[i].group_member_who_are_you_replacing != '')
replacingArrCount++;

}

if(mrv.length != memberArrCount && mrv.length != replacingArrCount){
alert('empty column');
return false;
}
}

}

Regards
Ankur

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

Hi Ankur, thank u for your reply, apologies, i updated the question just now as i just received a change in requirement, i just need 1 variable checking 'member_replacement' need to iterate in each row to check if this is already populated, below is the script i created but not evaluating correctly can u check below?

 

function onSubmit() {
//Type appropriate comment here, and begin script below

var multiRowVariableSet = JSON.parse(g_form.getValue('group_creation_members')); //internal name mrvs
var numberOfRows = multiRowVariableSet.length;

for (var i = 0; i < multiRowVariableSet.length; i++) {
alert(numberOfRows);

if(multiRowVariableSet[i].member_replacement == ""){                //variable name
alert("With Value "+ multiRowVariableSet.member_replacement + " " + multiRowVariableSet.group_member_name);
}
else{
alert("Without Value "+ multiRowVariableSet.member_replacement + " " + multiRowVariableSet.group_member_name);

}
}

Ljone
Giga Contributor

Hi Ankur,

I am able to modify your code to below and it works šŸ™‚ thanks for the help!

 

function onSubmit() {
//Type appropriate comment here, and begin script below
var mrv = JSON.parse(g_form.getValue('group_creation_members')); // mrvs internal name
if (mrv.length >= 1){
//alert(mrv.length);

var memberArrCount = 0;

for (var i=0; i<mrv.length; i++){
if((mrv[i].member_replacement == 'yes') ||(mrv[i].member_replacement == 'no')) //yes-no field
memberArrCount++;
//alert(mrv + " " +memberArrCount );
}

if (mrv.length != memberArrCount){
return false;
}
else{
return true;
}

}}

@Ljone 

Glad to know.

Please mark my response as correct and helpful to close the question and also benefit future readers.

Regards
Ankur

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