Name
global.PlannedTaskDBApi
Description
Implements extension point global.PlannedTaskDBApiExtentions. This is a default extension and it should execute at last
Script
var PlannedTaskDBApi = Class.create();
PlannedTaskDBApi.prototype = {
initialize: function() {
this.isSecure = gs.getProperty("com.snc.planned_task_db_action.isSecure", false);
},
shouldExecute: function(table) {
var gr = new GlideRecord(table);
if(gr.instanceOf('pm_project') || gr.instanceOf('pm_project_task') || table === 'planned_task_rel_planned_task')
return true;
return false;
},
insert: function(table, task, columns, run_calc_brs, workflow) {
var gr;
if(this.isSecure == 'true')
gr = new GlideRecordSecure(table);
else
gr = new GlideRecord(table);
gr.get(task.id);
if (!gr.isValidRecord()) {
gr.setValue("parent", task.parent);
this._setTaskValues(gr, task, columns);
if(!workflow)
gr.setWorkflow(false);
else
gr.setValue("run_calc_brs", run_calc_brs);
return this._getResponse(gr.insert(), gr);
} else {
return this.update(table, task, columns, run_calc_brs, workflow);
}
},
update: function(table, task, columns, run_calc_brs, workflow) {
var gr;
if(this.isSecure == 'true')
gr = new GlideRecordSecure(table);
else
gr = new GlideRecord(table);
gr.get(task.id);
gr.setValue("parent", task.parent);
this._setTaskValues(gr, task, columns);
if(!workflow)
gr.setWorkflow(false);
else
gr.setValue("run_calc_brs", run_calc_brs);
return this._getResponse(gr.update(), gr);
},
saveRelation: function(table, relation, run_calc_brs, workflow) {
var relationGr = new GlideRecord(table);
relationGr.get(relation.id);
new PTGlobalAPI().buildPlannedTaskRelationGR(relationGr, relation);
if(!workflow)
relationGr.setWorkflow(false);
else
relationGr.setValue("run_calc_brs", run_calc_brs);
var id = relationGr.insert();
return this._getResponse(id, relationGr);
},
deleteRecord: function(table, id) {
var gr = new GlideRecord(table);
gr.get(id);
gr.deleteRecord()
return this._getResponse(id, gr);
},
deleteMultipleRecords: function(table,encodedQuery, run_calc_brs, workflow) {
if (workflow && !run_calc_brs){
var grD = new GlideRecord(table);
grD.addEncodedQuery(encodedQuery);
grD.setValue("run_calc_brs", run_calc_brs);
grD.setWorkflow(false);
grD.updateMultiple();
}
var gr = new GlideRecord(table);
gr.addEncodedQuery(encodedQuery);
if(!workflow)
gr.setWorkflow(false);
gr.deleteMultiple();
},
_setTaskValues: function(gr, task, columns) {
new global.PTGlobalAPI().buildGlideRecord(gr, task, columns);
},
_getResponse: function(id, gr) {
return {
sysId: id,
message: gr.getLastErrorMessage()
};
},
type: 'PlannedTaskDBApi'
};
Sys ID
c4d70b0877f31010b83a28489a106133