Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Warning, Resolving an Incident will NOT PREVENT the SLA breach notifications from sending. To fully stop an SLA Breach, the Incidents must be set to state Closed, which is '7'. If you run the script below, and then run the next script to set closed, that is sufficient to fully stop SLA breech notifications before they happen. Alternatively, we could fully delete the Incidents, which would trivially stop the SLA breech notifications.

Code Block
//var incidents = ["INC0333439"];
//var caller = 'somit@yale.edu';
// sys_id for somit@yale.edu
var u_sys_id = '6bb31c742bd62500fcb01abf59da1546';
var date = '2014-07-31';
var state = '6';
var inc_num = '';
// state 6 is resolved
 
    var gr = new GlideRecord('incident');
    gr.addQuery('caller_id',u_sys_id);
    gr.addQuery('opened_at','ON',date);
    gr.query();
 
    var counter=0;
    while (gr.next()) {
      inc_num = gr.number;
      gs.print(inc_num);
      update_one_inc(inc_num);
      counter++;
    }
    gs.print("counter is: " + counter);
    gs.print("inc_num is: " + inc_num);
 
// the portion above successfully found 1032 incidents!

function update_one_inc ( inc_num) {
 var gr2 = new GlideRecord('incident');
 gr2.addQuery('number',inc_num);
 gr2.query();
 if ( gr2.next() ) {
   gr2.incident_state = state;
   gr2.u_incident_type = 'Invalid';
   // incident type 5 is 'invalid'
   gr2.u_level_1 = 'Data';
   //gr2.u_it_provider_service = 'Other IT Provider Service';
   gr2.u_it_provider_service = '22bc2a165d7718007ac08a508e67e8fe';
   //gr2.u_it_business_service = 'Other IT Business Service';
   gr2.u_it_business_service = 'f3aaaad25d7718007ac08a508e67e875';
   gr2.description = 'Spam email';
   gr2.close_code = 'Invalid Incident';
   // close code 9 is 'invalid incident'
   gr2.close_notes = 'Spam email';
   gr2.autoSysFields(false);
   gr2.setForceUpdate(true);
   gr2.setWorkflow(false);
   gr2.update();
 }
}

...

Close a large batch of incidents

Code Block
//var incidents = ["INC0145723","INC0145726","INC0145736","INC0145721","INC0145718","INC0145729","INC0145722","INC0145727","INC0145716","INC0145711"INC0333439"];
//var statecaller = '3somit@yale.edu';
// sys_id for (i=0; i<incidents.length; i++) { somit@yale.edu
var u_sys_id = '6bb31c742bd62500fcb01abf59da1546';
var date = '2014-07-31';
var state = '7';
var inc_num = '';
// state 6 is closed
 
    var gr = new GlideRecord('incident');
    gr.addQuery('number',incidents[i]caller_id',u_sys_id);
    gr.addQuery('opened_at','ON',date);
    gr.query();
 
     ifvar counter=0;
    while (gr.next()) {
      inc_num = gs.print("old state = " + gr.incident_stategr.number;
      gs.print(inc_num);
      close_one_inc(inc_num);
   gr.incident_state  = statecounter++;
    }
    grgs.update(print("counter is: " + counter);
    }
}

Lou often gives us lists of change fields

Here's how to make them better with bash. This still needs some work, but is better than nothing:

Code Block
[db692@mas013-new ~]$ cat asdf
CHG0006629
CHG0004449
# the next line is for gnu sed
[db692@mas013-new ~]$ echo -n "var changes = [\""; cat asdf | sed ':a;N;$!ba;s/\n/","/g'
var changes = ["CHG0006629","CHG0004449
# here's one for MAC (BSD) sed
zuse:~ db692$ echo -n "var incidents = [\""; cat jkl | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/'\",\"'/g'
gs.print("inc_num is: " + inc_num);
 
// the portion above successfully found 1032 incidents!
 
function close_one_inc ( inc_num) {
 var gr2 = new GlideRecord('incident');
 gr2.addQuery('number',inc_num);
 gr2.query();
 if ( gr2.next() ) {
   gr2.incident_state = state;
   gr2.update();
 }
}

 

Reopen closed incidents

Code Block
var incidents = ["INC0145723","INC0145726","INC0145736","INC0145721","INC0145718","INC0145729","INC0145722","INC0145727","INC0145716","INC0145711"];
var state = '3';

for (i=0; i<incidents.length; i++) {
    var gr = new GlideRecord('incident');
    gr.addQuery('number',incidents[i]);
    gr.query();
    if(gr.next()) {
        gs.print("old state = " + gr.incident_state);
        gr.incident_state = state;
        gr.update();
    }
}