Code not working
						
					
					
				
			
		
	
			
	
	
	
	
	
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
06-18-2025 11:42 AM
Requirement:
There is an expiry date field in the CMDB table. Email notifications need to be triggered at specific intervals—10 days, 5 days, 1 day before, and on the exact expiry date and time.
After insert and update business rule -
(function executeRule(current, previous /*null when async*/) {
    // Check if expiry date is present
    if (current.u_expiry_date) {
        var expiryDate = new GlideDateTime(current.u_expiry_date);
        var tenDaysBefore = new GlideDateTime(expiryDate);
        tenDaysBefore.addDaysUTC(-10);
        var fiveDaysBefore = new GlideDateTime(expiryDate);
        fiveDaysBefore.addDaysUTC(-5);
        var twoDaysBefore = new GlideDateTime(expiryDate);
        twoDaysBefore.addDaysUTC(-2);
        // Schedule events
        gs.eventQueueScheduled('event_name', current, '', '', tenDaysBefore);
        gs.eventQueueScheduled('event_name', current, '', '', fiveDaysBefore);
        gs.eventQueueScheduled('event_name', current, '', '', twoDaysBefore);
        gs.eventQueueScheduled('event_name', current, '', '', expiryDate);
    } else {
        gs.info("No expiry date found. Event scheduling skipped.");
    }
})(current, previous);
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
06-18-2025 12:12 PM
The issue is with how you’re using getTableName() and getDisplayValue() on the GlideRecord instance. Here’s how to fix it:
❌ Problem:
var table = rec.getTableName();
gs.info("table name" + table + rec.getDisplayValue());
rec.getDisplayValue() without a field name only works in some contexts (like GlideForm).
It may not return anything if not explicitly told what to display.
✅ Fix:
If you want to print the display value of the rec (e.g., caller or short_description):
var table = rec.getTableName();
gs.info("table name: " + table + " | value: " + rec.getDisplayValue('short_description'));
💡 Bonus Tip:
To dynamically get the display value of the display field, use:
var displayField = rec.getED().getDisplayName();
gs.info("Display field: " + displayField + " = " + rec.getDisplayValue(displayField));This way, you don’t need to hardcode the field name.
