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 - List collector / Notification multiple values

Niels Toulorge
Tera Contributor

Hello every one,

 

I need to send a notification from a RITM (with an email script) containing mutiple values in a List collector of a MVRS, I've got some issue.

 

I have a MRVS with 2 Lists collector : 

Capture.JPG

In the notification, it works when only 1 user/profile is selected in each row with this code :

 

 for (var i = 0; i < rowCount; i++) {
            template.print("<tr>");
            var row = mrvs.getRow(i);
            template.print("<td>" + getName(row.collaborateur_test.toString(),'sys_user') + "</td>");
            template.print("<td>" +  getName(row.profil_test.toString(),'question_choice') + "</td>");
            template.print("</tr>");

 

But when mutiple users or profile are selected in the same row, it doesn't work (return "Undefined", like the example below) : 

Capture2.JPG
Without the "getName", the notification return the list of the user's Sys_ID, separate by comma, example : 2fcc62f087f6aa1061d4ec6e8bbb35d8,59bc6ab087f6aa1061d4ec6e8bbb351c 
 
I think it's beacuse "getName" can't catch the sys_ID of each user.

Any idea ?

 

Ps : sorry for my bad english and my lack of knowledge in code.

1 ACCEPTED SOLUTION

@Niels Toulorge 

the reason it's working is because for the 1st row it has only 1 user

In the 2nd row there are more than 1 sysIds and hence it's breaking

update the getName() function as this and it will work for sure

function getName(sys_id, tblName) {
        var arr = [];
        var rec = new GlideRecord(tblName);
        rec.addQuery('sys_id', 'IN', sys_id.toString());
        rec.query();
        while (rec.next()) {
            arr.push(rec.getDisplayValue());
        }
        return arr.toString();
    }

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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

View solution in original post

11 REPLIES 11

@Niels Toulorge Try this update set, I believe I have handled all type of variables here:

 

https://developer.servicenow.com/connect.do#!/share/contents/2421893_adding_all_multi_row_variable_s... 


Raghav
MVP 2023
LinkedIn

Thanks for feedback @RaghavSh. The result seems a bit weird with your US :

 

It mixes the 2 lists Selector for one variable but not for the other.

RITM : 

NielsToulorge_1-1760715880380.png

 

Notification

NielsToulorge_0-1760715797212.png

 

 

 

 

@Niels Toulorge Thats strange, it should behave same for both variables.


Raghav
MVP 2023
LinkedIn

@Niels Toulorge 

it looks like it's working but due to some query business rule on table the display value is getting blocked?

did you add gs.info() and see?

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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

Here is a gs.log of my mrvs :

[ {
  "collaborateur_test" : "90038c1b4755b150da43d352e36d43c2",
  "profil_test" : "30c0dae587feae1061d4ec6e8bbb3501"
}, {
  "collaborateur_test" : "c5ee7f8b4791b150da43d352e36d4342,15af7bcf4791b150da43d352e36d43f5",
  "profil_test" : "a63b77b887feaa1061d4ec6e8bbb35a9,59bc6ab087f6aa1061d4ec6e8bbb351c"
} ]

So it works if I have a single choice in my list collector, but not with multiple sys_id values.