We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Show last 10 incidents with their assignment group members.

NegiSNOW
Tera Contributor

i need a help where i need to print last 10 incident along with the members as per their assignment group.

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron

@NegiSNOW 

try this

(function() {
    var incidents = [];
    
    // Get last 10 incidents (ordered by sys_created_on DESC)
    var incGr = new GlideRecord('incident');
    incGr.orderByDesc('sys_created_on');
	incGr.addNotNullQuery('assignment_group');
    incGr.setLimit(10);
    incGr.query();
    
    while (incGr.next()) {
        var groupMembers = [];
        
        // Get assignment group members for this incident
        if (!incGr.assignment_group.nil()) {
            var memberGr = new GlideRecord('sys_user_grmember');
            memberGr.addQuery('group', incGr.assignment_group);
            memberGr.query();
            
            while (memberGr.next()) {
                var userGr = new GlideRecord('sys_user');
                if (userGr.get(memberGr.user)) {
                    groupMembers.push({
                        name: userGr.getDisplayValue('name'),
                        email: userGr.email.toString(),
                        sys_id: userGr.sys_id.toString()
                    });
                }
            }
        }
        
        incidents.push({
            number: incGr.number.toString(),
            short_description: incGr.short_description.toString(),
            assignment_group: incGr.assignment_group.getDisplayValue('name'),
            sys_created_on: incGr.sys_created_on.getDisplayValue(),
            state: incGr.getDisplayValue('incident_state'),
            members: groupMembers
        });
    }
    
    // Output JSON
    var result = { last_10_incidents: incidents };
    gs.info('=== LAST 10 INCIDENTS WITH GROUP MEMBERS ===');
    gs.info(JSON.stringify(result, null, 2));
    
})();

Output:

AnkurBawiskar_0-1770732249692.png

 

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

3 REPLIES 3

Dr Atul G- LNG
Tera Patron
var gr = new GlideRecord('incident');
gr.orderByDesc('sys_created_on');
gr.setLimit(10);
gr.query();

while (gr.next()) {
var group = gr.assignment_group.getRefRecord();
var members = [];
 
var gm = new GlideRecord('sys_user_grmember');
gm.addQuery('group', group.sys_id);
gm.query();
while (gm.next()) {
members.push(gm.user.name.toString());
}
gs.print('Incident: ' + gr.number + ', Assignment Group: ' + group.name + ', Members: ' + members.join(', '));
}
*************************************************************************************************************
Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG

****************************************************************************************************************

i need it in JSON format @Dr Atul G- LNG 

Ankur Bawiskar
Tera Patron

@NegiSNOW 

try this

(function() {
    var incidents = [];
    
    // Get last 10 incidents (ordered by sys_created_on DESC)
    var incGr = new GlideRecord('incident');
    incGr.orderByDesc('sys_created_on');
	incGr.addNotNullQuery('assignment_group');
    incGr.setLimit(10);
    incGr.query();
    
    while (incGr.next()) {
        var groupMembers = [];
        
        // Get assignment group members for this incident
        if (!incGr.assignment_group.nil()) {
            var memberGr = new GlideRecord('sys_user_grmember');
            memberGr.addQuery('group', incGr.assignment_group);
            memberGr.query();
            
            while (memberGr.next()) {
                var userGr = new GlideRecord('sys_user');
                if (userGr.get(memberGr.user)) {
                    groupMembers.push({
                        name: userGr.getDisplayValue('name'),
                        email: userGr.email.toString(),
                        sys_id: userGr.sys_id.toString()
                    });
                }
            }
        }
        
        incidents.push({
            number: incGr.number.toString(),
            short_description: incGr.short_description.toString(),
            assignment_group: incGr.assignment_group.getDisplayValue('name'),
            sys_created_on: incGr.sys_created_on.getDisplayValue(),
            state: incGr.getDisplayValue('incident_state'),
            members: groupMembers
        });
    }
    
    // Output JSON
    var result = { last_10_incidents: incidents };
    gs.info('=== LAST 10 INCIDENTS WITH GROUP MEMBERS ===');
    gs.info(JSON.stringify(result, null, 2));
    
})();

Output:

AnkurBawiskar_0-1770732249692.png

 

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader