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  ||  9x 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
Topmate: https://topmate.io/dratulgrover [ Connect for 1-1 Session]

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

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  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader