======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());
----