Name
global.PMKingstonTopTaskUpgradeHelper
Description
No description available
Script
var PMKingstonTopTaskUpgradeHelper = Class.create();
PMKingstonTopTaskUpgradeHelper.prototype = {
initialize: function() {
},
process: function () {
// gs.log("========== START OF PMKingstonTopTaskUpgradeHelper ============= ");
this.populateTopTasksOnRelation();
this.populateTopTaskOnNotification();
// gs.log("========== END OF PMKingstonTopTaskUpgradeHelper ============= ");
},
distinctIds: function (table, column, nullQueryColumn) {
// gs.log("Into distinctIds -> " + table + " | " + column + " | " + nullQueryColumn);
var distinctSysIds = [];
var ga = new GlideAggregate(table);
ga.addAggregate("COUNT", column);
ga.addNullQuery(nullQueryColumn);
ga.groupBy(column);
ga.query();
while(ga.next()) {
distinctSysIds.push(ga.getValue(column));
}
return distinctSysIds;
},
populateTopTasksOnRelation: function () {
// gs.log("Into populateTopTasksOnRelation");
var distinctParentIds = this.distinctIds("planned_task_rel_planned_task", "parent", "parent_top_task");
var distinctChildIds = this.distinctIds("planned_task_rel_planned_task", "child", "child_top_task");
var arrayUtil = new ArrayUtil();
arrayUtil.concat(distinctParentIds, distinctChildIds);
arrayUtil.unique(distinctParentIds);
var gr = new GlideRecord("planned_task");
gr.addQuery("sys_id", "IN", distinctParentIds.join(","));
gr.query();
while(gr.next()) {
this.multiUpdateColumn("planned_task_rel_planned_task", "parent", gr.getValue("sys_id"),
"parent_top_task", gr.getValue("top_task"));
this.multiUpdateColumn("planned_task_rel_planned_task", "child", gr.getValue("sys_id"),
"child_top_task", gr.getValue("top_task"));
}
},
populateTopTaskOnNotification: function () {
// gs.log("Into populateTopTaskOnNotification");
var distinctTaskIds = this.distinctIds("planned_task_notification", "task", "task_top_task");
if(distinctTaskIds.length > 0) {
var gr = new GlideRecord("planned_task");
gr.addQuery("sys_id", "IN", distinctTaskIds.join(","));
gr.query();
while(gr.next()) {
this.multiUpdateColumn('planned_task_notification', 'task',
gr.getValue("sys_id"), 'task_top_task', gr.getValue("top_task"));
}
}
},
multiUpdateColumn: function (table, queryColumn, queryColumnValue, updateColumn, updateColumnValue) {
//gs.log("Into multiUpdateColumn -> " + table + " | " + queryColumn + " | " + queryColumnValue + " | " + updateColumn
// + " | " + updateColumnValue)
var mUpdate = new GlideMultipleUpdate(table);
mUpdate.addQuery(queryColumn, queryColumnValue);
mUpdate.setValue(updateColumn, updateColumnValue);
mUpdate.execute();
},
type: 'PMKingstonTopTaskUpgradeHelper'
};
Sys ID
85ab74e19fc00300598a5bb0657fcf65