Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Scripting Practice question

Aditya_hublikar
Mega Sage
//last 3 latest updated incident
var gr=new GlideRecord('incident');
gr.orderByDesc('sys_updated_on');
gr.setLimit(3)
gr.query();
while(gr.next())
{
    gs.print(gr.number);
}


// incident group by with assignment group
var gr=new GlideAggregate('incident');

gr.addAggregate('COUNT','assignment_group');
gr.query();
while(gr.next())
{
    gs.print(gr.getDisplayValue('assignment_group')+" - "+gr.getAggregate('COUNT','asignment_group'))
}


// incident created in last 7 days
var date=new GlideDate();
date.addDays(-7);
var date1=new GlideDate();
var gr=new GlideRecord('incident');
gr.addQuery('sys_created_on','>',date);
gr.addQuery('sys_created_on','<',date1);
gr.query();
while(gr.next())
{
    gs.print(gr.number)
}


// category=network set priority=critical
var gr=new GlideRecord('incident');
gr.addQuery('category','Network');
gr.query();
while(gr.next())
{
    try
    {
        gr.impact=1;
    gr.urgency=1;
    gr.update();
    gs.print(gr.number)
    }
    catch(e)
    {
        gs.print(e)
    }

}

// fetch unique caller ids
var gr=new GlideAggregate('incident')
gr.groupBy('caller_id');
gr.addAggregate('count')
gr.query();
while(gr.next())
{
    gs.print(gr.getAggregate('count')+" - "+gr.getDisplayValue('caller_id'))
}

// all user having admin role
var gr=new GlideAggregate('sys_user_has_role');
gr.addQuery('role.name','admin');
gr.query();
while(gr.next())
{
    gs.print(gr.user.name);
}

// fetch incident older than 5 days
var date=new GlideDate()
date.addDays(-5);
var gr=new GlideRecord('incident');
gr.addQuery('sys_created_on','<',date);
gr.query();
while(gr.next())
{
    gs.print(gr.number)
}


// encrypt and decrypt
var encrypter = new GlideEncrypter();
var plainText = "Hello123";
var encryptedText = encrypter.encrypt(plainText);
gs.print("Encrypted Value: " + encryptedText);
var decryptedText = encrypter.decrypt(encryptedText);
gs.print("Decrypted Value: " + decryptedText);

// Write script to remove all attachments from an incident.
var gr=new GlideRecord('incident');
gr.addQuery('number','INC0012633');
gr.query();
if(gr.next())
{
    var ga=new GlideRecord('sys_attachment');
    ga.addQuery('table_sys_id',gr.getUniqueValue());
    ga.query();
    while(ga.next())
    {
        ga.deleteRecord();
    }
}


4 REPLIES 4

GlideFather
Tera Patron

Hi @Aditya_hublikar,

 

I am trying to understand your examples - the first 6 or 7 codes could be achieved with no-code methods (in reports or list view), no?

 

Also, could you possibly explain what script is that - a background/fix script or something else?

You used gs.print(), so I assume it's background script.

 

Unsolicited advice: be careful with naming your variables gr, it is not considered a good practice unless it is in a function, explanation can be googled.

 

 

_____
Answers generated by GlideFather. Check for accuracy.

Hello @GlideFather ,

 

I practice some scripting questions in background script , so i simply share here for beginners practice . 

In that case, it makes perfect sense! :)) my comment was from the accessibility perspective, that more people will know how to adjust report/list filters than to script something.

 

To practice and master your scripting, i recommend you to focus on the variable naming convention, instead of var gr to go with var incidentGR or something like this.

 

And also some consistency, in the last one you have GR (glideRecord) and GA (glideAggregate), instead try something like var attachmentGR = new GlideRecord('sys_attachment'); it can make your code more/better readable when there will be more lines or more separated functions or conditions.

 

Keep going and thanks for sharing!

_____
Answers generated by GlideFather. Check for accuracy.

Hello @GlideFather ,

 

okay , i will remember this next time .