How to fix it
- First, verify what value is actually stored by logging
gr.fieldName.toString()orgr.getValue('fieldName')to see the raw stored value. - If it's a choice field, navigate to
System Definition > Choiceand filter: Table = your table name, Element = your field name, Value = the stored value. - If no choice record exists, create one by clicking New and filling: Table, Element, Value (exact match to stored value), and Label (what you want displayed).
- If choice exists but has blank Label field, edit the record and populate the Label field with the desired display text.
- For reference fields, copy the stored sys_id and navigate directly to the referenced table (e.g., if it's a user reference, go to
sys_user.listand search by sys_id). - If the referenced record doesn't exist, either restore it from the recycle bin (
System Administration > Recycle Bin) or clear the reference field value. - If record exists but display field is empty, identify the display field by going to
System Definition > Dictionary, filter by the target table, and find the field withDisplay = true. - Either populate the display field on the target record or change the display field to a field that has values (edit the dictionary entry and move the
Displaycheckbox). - For business rules on new records, ensure you're in after timing and the record has been saved, or use
current.field_name.getDisplayValue()instead of a separate GlideRecord query. - If using a separate GlideRecord in your business rule, always call
gr.get(sys_id)orgr.query(); gr.next()before accessing field values.
Test your fix by running gs.info(gr.fieldName.getDisplayValue()) in a background script to verify the display value appears correctly before redeploying your business rule.