MRVS report creation and how to display real value instead of sys_id
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hello,
My requirement is to create a report from a MRVS that has 2 columns one for employee and the other is the employee's manager (both reference fields).
I tried creating a database view and can see the rows but sys_id are displayed instead of the employees name and managers name.My question is how can I have the real values displayed instead and also is there a way to merge it with the other variables of the catalog item so that I have one report with all variables including the MRVS.
PS: if I have two MRVS do I have to create a database view and report for each?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Have a look at this blog post:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
9m ago
- The table sc_multi_row_question_answer does not store display values.
- It stores everything as plain text.
- Even if your variable is a reference field (like sys_user), it still stores only the sys_id.
You can try below solution (Untested)
How MRVS data is actually stored (EAV model)
- ServiceNow uses an EAV (Entity-Attribute-Value) structure for MRVS.
- That means:
- Each row in MRVS is NOT one record
- Instead, each field inside that row is stored as a separate record
👉 Example:
If your MRVS has:
| John | Mike |
It gets stored like this:
| 1 | Employee | sys_id_1 |
| 1 | Manager | sys_id_2 |
So:
- Same row → linked using a row index / parent reference
- But Employee and Manager are stored separately
3. Why you can’t directly get Employee & Manager together
- Since both values are stored as separate rows, they are not side-by-side by default
- You have to manually join them back together
- That’s why a simple query doesn’t work
4. Why you need to join the table twice
To reconstruct one MRVS row:
- First join → get Employee value
- Second join → get Manager value
So basically:
- Same table (sc_multi_row_question_answer)
- Used two times
- Each time filtered by a different variable (question)
5. Why you also need to join sys_user twice
- Both Employee and Manager store sys_ids
- To convert them into names:
- Join sys_user for Employee
- Join sys_user again for Manager
So total joins:
- MRVS table → 2 times
- sys_user → 2 times
6. Final structure (simple understanding)
Your Database View is doing something like:
- MRVS (Employee)
- MRVS (Manager)
- sys_user (Employee name)
- sys_user (Manager name)
