======Background Scripts====== ---- =====Approve===== var app = new GlideRecord('sysapproval_approver'); app.addQuery('state','requested'); //app.setLimit(30); app.query(); while(app.next()) { gs.print('Approval count in requested state '+app.getRowCount()); app.state='approved'; app.update(); } ---- =====Clear Attribute===== ClearUserLog(); //Log Time Started UserLog("Script Started at" + gs.nowDateTime()); //Query Table var gr = new GlideRecord('sys_user'); gr.addNotNullQuery('mobile_phone'); gr.query(); //Update Records while (gr.next()) { gr.mobile_phone = ""; gr.setWorkflow(false); gr.update(); } //Log Time Ended UserLog("Script Ended at" + gs.nowDateTime()); ---- =====Fix SLA===== ClearUserLog(); var gr = new GlideRecord('incident'); gr.addQuery("numberSTARTSWITHMINC_"); gr.query(); UserLog("Number of incidents to update " + gr.getRowCount()); var sla = new SLARepair(); while(gr.next()) { var sysId = gr.getValue('sys_id'); gs.info("Updating incident " + sysId); sla.repairBySysId(sysId, "incident"); } ---- =====Metric Incident Category TESTING===== ClearUserLog(); var definition = new GlideRecord("metric_definition"); definition.get("name", "Incident Category") UserLog(definition.name); var gr = new GlideRecord("incident"); //gr.addEncodedQuery("opened_at<=javascript:gs.endOfToday()"); gr.addEncodedQuery("numberSTARTSWITHINC0010525"); gr.query(); UserLog('Found ' + gr.getRowCount()); // Update fieldname below for category or subcategory while(gr.next()) { UserLog("Number "+gr.sys_id); history = new GlideRecord("sys_audit"); history.addQuery("documentkey", gr.sys_id); history.addQuery("fieldname", "category"); history.orderBy("sys_created_on"); history.query(); var gdtStart = new GlideDateTime(gr.opened_at); UserLog('First start '+gdtStart ); var i = 0; while(history.next()) { i++ UserLog("Row count"+i); var grMetric = new GlideRecord('metric_instance'); grMetric.addQuery('id', gr.getValue('sys_id')); grMetric.addQuery('definition', definition.getValue('sys_id')); grMetric.addQuery('value', gr.getDisplayValue('category')); grMetric.query(); UserLog("State "+gr.state); var gdtEnd = new GlideDateTime(history.sys_created_on); UserLog("End "+gdtEnd); if ((gr.state >= 6) && (i > history.getRowCount())) { gdtEnd = new GlideDateTime(gr.resolved_at); UserLog("End "+gdtEnd); } else if(i == history.getRowCount()) { UserLog("Incident not resolved"); } if (!grMetric.hasNext()) { //var now = new GlideDateTime(); var gdurCalendar = GlideDateTime.subtract(gdtStart, gdtEnd); UserLog("Difference "+gdurCalendar); } gdtStart = new GlideDateTime(history.sys_created_on); UserLog("Next start "+gdtStart); } } ---- =====Metric Incident Category===== //Incident Category = 1bf7c3561bce8d5099e265b1604bcb43 //Incident Subcategory = e02847961bce8d5099e265b1604bcba9 var definition = new GlideRecord("metric_definition"); definition.get("name", "Incident Category") gs.print(definition.name); var gr = new GlideRecord("incident"); gr.addEncodedQuery("opened_at<=javascript:gs.endOfYesterday()"); gr.setLimit(3); gr.query(); gs.print('Found ' + gr.getRowCount()); // Update fieldname below for category or subcategory while(gr.next()) { gs.print(gr.sys_id); history = new GlideRecord("sys_audit"); history.addQuery("documentkey", gr.sys_id); history.addQuery("fieldname", "category"); history.orderBy("sys_created_on"); history.query(); while(history.next()) { var grMetric = new GlideRecord('metric_instance'); grMetric.addQuery('id', gr.getValue('sys_id')); grMetric.addQuery('definition', definition.getValue('sys_id')); grMetric.addQuery('value', gr.getDisplayValue('category')); // For original value, use the line below instead of the line above //grMetric.addQuery('value', history.getValue('oldvalue')); grMetric.query(); var gdtStart = new GlideDateTime(history.sys_created_on); // For original time, use the line below instead of the line above //var gdtStart = new GlideDateTime(gr.opened_at); gs.print("Start "+gdtStart); if (!grMetric.hasNext()) { var now = new GlideDateTime(); var instant = new GlideDuration(0); //var gdurCalendar = GlideDateTime.subtract(gdtStart, gdtEnd); grMetric = new GlideRecord('metric_instance'); grMetric.initialize(); grMetric.setValue('table', gr.getRecordClassName()); grMetric.setValue('id', gr.getValue('sys_id')); grMetric.setValue('definition', definition.getValue('sys_id')); grMetric.setValue('field', definition.getValue('field')); // Update value below for category or subcategory grMetric.setValue('value', history.getValue('oldvalue')); grMetric.setValue('duration', instant); grMetric.setValue('calculation_complete', true); grMetric.setValue('start', gdtStart); grMetric.setValue('end', now); grMetric.insert(); } } } ---- =====Trigger Business Rule===== ClearUserLog(); //Log Time Started UserLog("Script Started at " + gs.nowDateTime()); //Query Table var gr = new GlideRecord('sys_user'); gr.addEncodedQuery('u_business_unit!=NULL^u_business_unit_ref=NULL'); gr.query(); //Update Records while (gr.next()) { // gr.setWorkflow(true); gr.setForceUpdate(true); } //Log Time Ended UserLog("Script Ended at " + gs.nowDateTime()); ---- =====Unlock USER PROD===== ClearUserLog(); //Log Time Started UserLog("Script Started at" + gs.nowDateTime()); //Query Table var gr = new GlideRecord("sys_user"); gr.addQuery('active', 'true'); gr.query(); while (gr.next()) { gr.locked_out = false; gr.setWorkflow(false); gr.update(); } //Log Time Ended UserLog("Script Ended at" + gs.nowDateTime()); ---- =====Update Time Zone===== ClearUserLog(); //Log Time Started UserLog("Set TimeZone Started at" + gs.nowDateTime()); //Query Table var gr = new GlideRecord('sys_user'); gr.addNotNullQuery('location'); gr.addNullQuery('time_zone'); gr.query(); //Update Records while (gr.next()) { gr.time_zone = gr.location.time_zone; gr.setWorkflow(false); gr.update(); } //Log Time Ended UserLog("Set TimeZone Ended at" + gs.nowDateTime()); ----