- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-13-2024 01:04 PM - edited 03-13-2024 01:28 PM
I am creating a business rule to print the full name of user from a reference type variable into the description field. Am I missing something?
// Variable table
var gr_questions = new GlideRecord('question_answer');
gr_questions.addQuery('table_sys_id', current.sys_id);
gr_questions.query();
while (gr_questions.next()) {
// Variable question label
var refq = gr_questions.getDisplayValue('question');
// Value stored in variable
var refa = gr_questions.getDisplayValue('value');
if(refa !="") {
var userName = new GlideRecord('sys_user');
userName.addQuery('sys_id', refa);
userName.query();
while(userName.next())
{
// print variable question and answer in description
desc.push(refq+" "+refa.getDisplayValue());
}
}
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-13-2024 01:48 PM
Hi @Michael94 ,
The value field is String type ( not the reference ).
try the below updated code.
var gr_questions = new GlideRecord('question_answer');
gr_questions.addQuery('table_sys_id', current.sys_id);
gr_questions.query();
while (gr_questions.next()) {
var refq = gr_questions.getDisplayValue('question');
var refa = gr_questions.getDisplayValue('value');
if (refa != "") {
var userName = new GlideRecord('sys_user');
userName.addQuery('sys_id', refa);
userName.query();
//while(userName.next()) {
//use if because there will be only one matching record
if (userName.next()) {
//desc.push(refq+" "+refa.getDisplayValue()); // refa is string value
desc.push(refq + " " + userName.name); // or userName.getDisplayValue()
} // while closed
} // if closed
} // while closed
or same result using get method for user name.
var gr_questions = new GlideRecord('question_answer');
gr_questions.addQuery('table_sys_id', current.sys_id);
gr_questions.query();
while (gr_questions.next()) {
var refq = gr_questions.getDisplayValue('question');
var refa = gr_questions.getDisplayValue('value');
if (refa != "") {
var userName = new GlideRecord('sys_user');
userName.get(refa); //use get method
desc.push(refq + " " + userName.name); // or desc.push(refq + " " + userName.getDisplayValue());
} // if closed
} // while closed
-Thanks,
AshishKM
Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-13-2024 01:48 PM
Hi @Michael94 ,
The value field is String type ( not the reference ).
try the below updated code.
var gr_questions = new GlideRecord('question_answer');
gr_questions.addQuery('table_sys_id', current.sys_id);
gr_questions.query();
while (gr_questions.next()) {
var refq = gr_questions.getDisplayValue('question');
var refa = gr_questions.getDisplayValue('value');
if (refa != "") {
var userName = new GlideRecord('sys_user');
userName.addQuery('sys_id', refa);
userName.query();
//while(userName.next()) {
//use if because there will be only one matching record
if (userName.next()) {
//desc.push(refq+" "+refa.getDisplayValue()); // refa is string value
desc.push(refq + " " + userName.name); // or userName.getDisplayValue()
} // while closed
} // if closed
} // while closed
or same result using get method for user name.
var gr_questions = new GlideRecord('question_answer');
gr_questions.addQuery('table_sys_id', current.sys_id);
gr_questions.query();
while (gr_questions.next()) {
var refq = gr_questions.getDisplayValue('question');
var refa = gr_questions.getDisplayValue('value');
if (refa != "") {
var userName = new GlideRecord('sys_user');
userName.get(refa); //use get method
desc.push(refq + " " + userName.name); // or desc.push(refq + " " + userName.getDisplayValue());
} // if closed
} // while closed
-Thanks,
AshishKM
Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution