- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-31-2022 01:38 AM
How can I access a particular field value of a Multi Row variable set to a workflow?
I need the value of Level in workflow to trigger approval.. I tried below but its returning undefined:
answer = ifScript();
var mrvs = current.variables.Grants;//replace with the internal name of your MRVS
var mrs = g_form.variables.Grants;
workflow.info('mrs'+mrs);
workflow.info('mrvs'+mrvs);
function ifScript()
{
var rowCount = mrvs.getRowCount();
for(var i=0;i<rowCount; i++){//for each row in the MRVS
var row = mrvs.getRow(i);
workflow.info('row'+row);
workflow.info('row.level'+row.level);
if(row.level == 'Project')
{
return 'yes';
}
else
{
return 'no';
}
}
}
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-31-2022 06:35 AM
Leveraging the Array.some method makes this much cleaner
answer = (function ifScript() {
return JSON.parse(current.variables.Grants)
.some(function(row){
return row.level === "Project";
}) ? "yes": "no";
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-31-2022 01:47 AM
Hi,
update script as this
answer = ifScript();
function ifScript() {
var mrvs = current.variables.Grants;//replace with the internal name of your MRVS
var found = false;
var parser = JSON.parse(mrvs);
for(var i=0;i<parser.length; i++){//for each row in the MRVS
if(parser[i].level.toString() == 'Project')
{
found = true;
break;
}
else
found = false;
}
if(found)
return 'yes';
else
return 'no';
}
regards
ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-31-2022 07:36 AM
No luck, value is still undefined
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-31-2022 08:18 PM
Hi,
share your latest scripts and ensure you use correct variable names
I assume you are writing this script in workflow of your catalog item
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-01-2022 02:15 AM
answer = ifScript();
function ifScript() {
var mrvs = current.variables.Grants;//replace with the internal name of your MRVS
var found = false;
var parser = JSON.parse(mrvs);
for(var i=0;i<parser.length; i++){//for each row in the MRVS
if(parser[i].level.toString() == 'Project')
{
found = true;
break;
}
else
found = false;
}
if(found)
return 'yes';
else
return 'no';
}
============
Variable name etc is correct.