Name

global.PlannedTaskDBApiExtentionConsumer

Description

No description available

Script

var PlannedTaskDBApiExtentionConsumer = Class.create();
PlannedTaskDBApiExtentionConsumer.prototype = {
  initialize: function(baseTable, workflow) {
  	this.instance = this.getExtentionPoint(baseTable);
  	this.workflow = workflow;
  },
  
  getExtentionPoint: function(baseTable) {
  	var dbApiExt = new PTGlobalAPI().getPlannedTaskExtentions("PlannedTaskDBApiExtentions");
  	for(var i = 0; i < dbApiExt.length; i++){
  		var shouldExecute = dbApiExt[i].shouldExecute(baseTable);
  		if(shouldExecute) 
  			return dbApiExt[i];
  	}
  	return null;
  },

   insert: function(table, task, columns, run_calc_brs) {
      if (this.instance)
  		return this.instance.insert(table, task, columns, run_calc_brs, this.workflow);
      else 
  		return this._insert(table, task, columns, run_calc_brs);
  },

  update: function(table, task, columns, run_calc_brs) {
      if (this.instance)
  		return this.instance.update(table, task, columns, run_calc_brs, this.workflow);
      else
          return this._update(table, task, columns, run_calc_brs);
  },
  
  deleteMultipleRecords: function(table,encodedQuery, run_calc_brs) {
  	if(this.instance)
  		return this.instance.deleteMultipleRecords(table,encodedQuery, run_calc_brs, this.workflow);
  	else 
  		return this._deleteMultipleRecords(table,encodedQuery, run_calc_brs);
  },
  
  saveRelation: function(table, relation, run_calc_brs) {
  	if(this.instance)
  		return this.instance.saveRelation(table, relation, run_calc_brs, this.workflow);
  	else
  		return this._saveRelation(table, relation, run_calc_brs);
  },
  
  deleteRecord: function(table,id) {
  	if(this.instance)
  		return this.instance.deteRecord(table,id);
  	else 
  		return this._deleteRecord(table,id);
  },
  
  _deleteRecord: function(table,id){
  	var gr = new GlideRecord(table);
  	gr.get(id);
  	gr.deleteRecord();
  },
  
  _deleteMultipleRecords: function(table,encodedQuery,run_calc_brs) {
  	if (this.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(!this.workflow)
  		gr.setWorkflow(false);
  	gr.deleteMultiple();
  },
  _insert: function(table, task, columns, run_calc_brs) {
  	var gr = new GlideRecord(table);
  	gr.get(task.id);
      if (!gr.isValidRecord()) {
          gr.setValue("parent", task.parent);
          new global.PTGlobalAPI().buildGlideRecord(gr, task, columns);
          if(!this.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);
      }
  },
  
  _update:function(table, task, columns, run_calc_brs) {
  	var gr = new GlideRecord(table);
  	gr.get(task.id);
  	gr.setValue("parent", task.parent);
      new global.PTGlobalAPI().buildGlideRecord(gr, task, columns);
  	if(!this.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) {
  	var relationGr = new GlideRecord(table);
  	relationGr.get(relation.id);
  	new global.PTGlobalAPI().buildPlannedTaskRelationGR(relationGr, relation);
  	if(!this.workflow)
  		relationGr.setWorkflow(false);
  	else
          relationGr.setValue("run_calc_brs", run_calc_brs);
  	return relationGr.insert();
  },
  
  _getResponse: function(id, gr) {
  	return {
  		sysId: id,
  		message: gr.getLastErrorMessage()
  	};
  },

  type: 'PlannedTaskDBApiExtentionConsumer'
};

Sys ID

e8257b0877331010b83a28489a1061d8

Offical Documentation

Official Docs: