Name
global.BulkAddIncidents
Description
No description available
Script
var BulkAddIncidents = Class.create();
BulkAddIncidents.prototype = Object.extendsObject(AbstractAjaxProcessor, {
PARAMS: {
SYSID: "sysparm_sys_id",
PARENTTABLE: "sysparm_parent_table",
TABLE: "sysparm_table",
VIEW: "sysparm_view",
NOSTACK: "sysparm_nostack",
QUERY: "sysparm_query",
PARENTCOLUMN: "sysparm_parent_column",
FIXEDQUERY: "sysparm_fixed_query",
JS: "sysparm_js",
JSTYPE: "sysparm_js_type",
SELECTEDTASKS: "sysparm_selected_tasks",
TYPE: "sysparm_type"
},
CONSTANTS: {
TASK_TABLE: "task",
CLASS_NAME: "sys_class_name"
},
getFixedQuery: function(parentTable, parentColumn) {
// BulkAddIncidentsFilter extension point and its related logic here would be deprecated in 'W' release
var eps = new GlideScriptedExtensionPoint().getExtensions("BulkAddIncidentsFilter");
for (var i = 0; i < eps.length; i++) {
var query = eps[i].getFixedQuery(parentTable, parentColumn);
if (typeof query === "undefined")
continue;
return query;
}
return new global.BulkAddRecords().getFixedQuery(parentTable, parentColumn);
},
canRelateIncidents: function(parentTable, relatedRecordGr, parentColumn) {
// BulkAddIncidentsFilter extension point and its related logic here would be deprecated in 'W' release
var eps = new GlideScriptedExtensionPoint().getExtensions("BulkAddIncidentsFilter");
for (var i = 0; i < eps.length; i++) {
var check = eps[i].canRelateIncidents(parentTable, relatedRecordGr, parentColumn);
if (typeof check === "undefined")
continue;
return check;
}
return new global.BulkAddRecords().canRelateRecord(parentTable, relatedRecordGr, parentColumn);
},
getURL: function() {
var sysId = this.getParameter(this.PARAMS.SYSID);
var pTable = this.getParameter(this.PARAMS.PARENTTABLE);
var url = new GlideURL("incident_add_records.do");
var parentColumn = gs.getProperty('com.snc.incident.link_to_task.' + pTable);
var fixedQuery = this.getFixedQuery(pTable, parentColumn);
url.set(this.PARAMS.SYSID, sysId);
url.set(this.PARAMS.VIEW, "default");
url.set(this.PARAMS.NOSTACK, "true");
url.set(this.PARAMS.QUERY, "ORDERBYDESCsys_created_on");
url.set(this.PARAMS.TABLE, "incident");
url.set(this.PARAMS.PARENTCOLUMN, parentColumn);
url.set(this.PARAMS.FIXEDQUERY, fixedQuery);
url.set(this.PARAMS.JS, "incident_link_task.js");
url.set(this.PARAMS.JSTYPE, "file_system");
return url;
},
linkTasks: function() {
var taskSysId = this.getParameter(this.PARAMS.SYSID);
var table = this.getParameter(this.PARAMS.TABLE);
var selectedRecords = this.getParameter(this.PARAMS.SELECTEDTASKS);
var query = this.getParameter(this.PARAMS.QUERY);
var parentColumn = this.getParameter(this.PARAMS.PARENTCOLUMN);
var type = this.getParameter(this.PARAMS.TYPE);
if (!taskSysId) {
gs.error("[BulkAddIncidents] Invalid Parameter - sysparm_sys_id is empty or null");
return;
}
if (!table) {
gs.error("[BulkAddIncidents] Invalid Parameter - sysparm_table is empty or null");
return;
}
if (!parentColumn) {
gs.error("[BulkAddIncidents] Invalid Parameter - sysparm_parent_column is empty or null");
return;
}
var grTask = new GlideRecordSecure(this.CONSTANTS.TASK_TABLE);
if (!grTask.get(taskSysId))
return;
var pTable = grTask.getValue(this.CONSTANTS.CLASS_NAME);
var relatedRecordGr = new GlideRecord(table);
if (relatedRecordGr.isValid() && (gs.hasRole('itil') || gs.hasRole('sn_incident_write'))) {
relatedRecordGr.addQuery(parentColumn, 'null');
if (type == 'add_selected')
relatedRecordGr.addQuery('sys_id', 'IN', selectedRecords);
else
relatedRecordGr.addEncodedQuery(query);
relatedRecordGr.query();
while (relatedRecordGr.next()) {
if (this.canRelateIncidents(pTable, relatedRecordGr, parentColumn)) {
relatedRecordGr.setValue(parentColumn, taskSysId);
relatedRecordGr.update();
}
}
}
return;
},
canShowAddButton: function(parent, current) {
var field = gs.getProperty('com.snc.incident.link_to_task.' + parent.sys_class_name);
return parent.active == true && current.isValidField(field);
},
type: 'BulkAddIncidents'
});
Sys ID
9e926b94874313007e31af1e36cb0b30