MRVS report creation and how to display real value instead of sys_id

LT_23
Tera Contributor

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? 

2 REPLIES 2

lauri457
Tera Sage

Nishant_Shelar
Mega Guru

 

  • 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:

Employee Manager
JohnMike

It gets stored like this:

Row ID Question (Variable) Value
1Employeesys_id_1
1Managersys_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)