How do I get the values of variables in multi row variable set in workflow ServiceNow

Karthik Reddy11
Tera Contributor

Hi all

This is a Multirow variable set how to get data from System &role

find_real_file.png

workflow script:

-----------------------------------------------------------------------------------------------------------------

  1. var prop = gs.getProperty('bat_icertis_access_management');
  2. var sys = current.variables.system.getDisplayValue();
  3. var role = current.variables.role + '';
  4. if(role == '' || role == null){
  5. role = current.variables.u_role + '';
  6. }
  7. gs.log("MF SOX " + role);
  8. var gr = new GlideRecord('u_approval_rules');
  9. gr.addQuery('u_specifics_form_name',prop);
  10. gr.addQuery('u_approval_driver', 'Field');
  11. gr.addQuery('u_approval_field_value',sys+'/'+role);
  12. gr.query();
  13. if (gr.next()) {
  14. workflow.scratchpad.level1_approver = gr.u_level_1_approver_list;
  15. workflow.scratchpad.level2_approver = gr.u_level_2_approver_list;
  16. workflow.scratchpad.level3_approver = gr.u_level_3_approver_list;
  17. workflow.scratchpad.level4_approver = gr.u_level_4_approver_list;
  18. workflow.scratchpad.level5_approver = gr.u_level_5_approver_list;
  19. workflow.scratchpad.level1_approver_type = gr.u_level_1_approver_type;
  20. workflow.scratchpad.level2_approver_type = gr.u_level_2_approver_type;
  21. workflow.scratchpad.level3_approver_type = gr.u_level_3_approver_type;
  22. workflow.scratchpad.level4_approver_type = gr.u_level_4_approver_type;
  23. workflow.scratchpad.level5_approver_type = gr.u_level_5_approver_type;
  24. }

-----------------------------------------------------------------------------------------------------------------

 

can you help me with this 

1 ACCEPTED SOLUTION

@Karthik Reddy 

It should work with my logic as well, its just a for loop, but if you think my logic provided you the insight correctly, feel free to mark correct

Best Regards
Aman Kumar

View solution in original post

4 REPLIES 4

Aman Kumar S
Kilo Patron

var mrvsParsed = JSON.parse(current.variables.internal_name_of_mrvs.toString());

for(var x in mrvsParsed){

var system = mrvsParsed[x].system;

var role = mrvsParsed[x].role;

gs.info("system = " + system + "     " + "role = " + role);

}

 

Feel free to mark correct, If I answered your query.

Will be helpful for future visitors looking for similar questions 🙂

Best Regards
Aman Kumar

Hi Aman, it is not working can you see the script once

var prop = gs.getProperty('bat_icertis_access_management');
var mrvsParsed = JSON.parse(current.variables.add_remove_lock_unlock_roles.toString());
for (var x in mrvsParsed) {
var system = mrvsParsed[x].system;
var role = mrvsParsed[x].role;
gs.info("system = " + system + " / " + "role = " + role);
}
var gr = new GlideRecord('u_approval_rules');
gr.addQuery('u_specifics_form_name', prop);
gr.addQuery('u_approval_driver', 'Field');
gr.addQuery('u_approval_field_value', mrvsParsed);
gr.query();
if (gr.next()) {

workflow.scratchpad.level1_approver = gr.u_level_1_approver_list;

workflow.scratchpad.level2_approver = gr.u_level_2_approver_list;

workflow.scratchpad.level3_approver = gr.u_level_3_approver_list;

workflow.scratchpad.level4_approver = gr.u_level_4_approver_list;

workflow.scratchpad.level5_approver = gr.u_level_5_approver_list;

workflow.scratchpad.level1_approver_type = gr.u_level_1_approver_type;

workflow.scratchpad.level2_approver_type = gr.u_level_2_approver_type;

workflow.scratchpad.level3_approver_type = gr.u_level_3_approver_type;

workflow.scratchpad.level4_approver_type = gr.u_level_4_approver_type;

workflow.scratchpad.level5_approver_type = gr.u_level_5_approver_type;

}

find_real_file.png

here Approval Field value is system+role by adding '/' between

could you help me Cleary

 

Thanks,

karthik

Got it bro it's working now thank you with below script

var mrvsParsed = JSON.parse(current.variables.add_remove_lock_unlock_roles.toString());
for (var i = 0; i < mrvsParsed.length; i++) {
var system = mrvsParsed[i].system;
var role = mrvsParsed[i].role;
// gs.info("system = " + system + " / " + "role = " + role);
}

@Karthik Reddy 

It should work with my logic as well, its just a for loop, but if you think my logic provided you the insight correctly, feel free to mark correct

Best Regards
Aman Kumar