Name

global.ProblemUtilsClientSNC

Description

No description available

Script

var ProblemUtilsClientSNC = Class.create();
ProblemUtilsClientSNC.prototype = Object.extendsObject(AbstractAjaxProcessor, {

  submitForm: function() {
  	var tableName = this.getParameter('sysparm_record_type');
  	var pTaskExts = new TableUtils("problem_task").getAllExtensions();
  	if(tableName == 'problem' || pTaskExts.indexOf(tableName) !== -1) {
  		var sys_id = this.getParameter('sysparm_sys_id');
  		var fieldsToBeUpdated = JSON.parse(this.getParameter('sysparm_fields'));
  		var recordGr = new GlideRecord(tableName);
  		recordGr.get(sys_id);
  		if (recordGr.isValidRecord() && recordGr.canWrite()) {
  			for (var field in fieldsToBeUpdated) {
  				recordGr[field + ""] = fieldsToBeUpdated[field];
  			}
  			if (recordGr.update())
  				return true;
  		}
  		return false;
  	}
  	else {
  		gs.error("Invalid Record Type");
  		return false;
  	}
  },
  isDisplayBackgroundMoveMessage: function() {
      var problemUtil = new ProblemV2Util();
      var recordsToMove = gs.getProperty("problem.duplicate.records_to_move");
      var recordsMap = problemUtil.dotCommaToMap(recordsToMove.split(","));
      var record;
      var gr;
      for (record in recordsMap) {
  		gr = new GlideRecord(record);
  		if(gr.isValid()) {
  			gr.addQuery(recordsMap[record], this.getParameter('sysparm_srcPrbSysId'));
  			gr.setLimit(1);
  			gr.query();
  			// Even if one record exist with parent as the Source Problem return true. 
  			if (gr.hasNext()) 
  				return true;
  		} 
  	}
      return false;
  },
  isDisplayWarningTaskMove: function() {
      var recordsToMove = gs.getProperty("problem.duplicate.records_to_move");
      // If Moving of PTASKs is specified
      if (recordsToMove && recordsToMove.split(",").indexOf('problem_task.problem') !== -1) {
          // If Cascade closure of PTASK is enabled 
          if (gs.getProperty("problem.closed.cancel_open_tasks") === 'true') {
              // If The target PRB is Closed
              var targetProbRecord = new GlideRecord('problem');
              targetProbRecord.get(this.getParameter('sysparm_trgtPrbSysId'));
              // If target PRB is Closed
              if (targetProbRecord.isValidRecord() && targetProbRecord.state + "" === ProblemState.STATES.CLOSED) {
                  var grPTask = new GlideRecord('problem_task');
                  if (grPTask.isValid()) {
                      grPTask.addQuery('problem', this.getParameter('sysparm_srcPrbSysId'));
                      grPTask.query();
                      while (grPTask.hasNext()) {
                          grPTask.next();
                          // If source Problem's Ptask are OPEN
                          if (grPTask.state != ProblemTaskState.States.CLOSED) {
                              return true;
                          }
                      }
                  }
              }
          }
      }
      // If any of 4 conditions are not met simple return false. 
      return false;
  },
  
  isDisplayReassesInfoForClosedPrb: function() {
  	var ptaskGr = new GlideRecord("problem_task");
  	if (ptaskGr.get(this.getParameter('sysparm_ptaskSysId'))) {
  		var ptaskStateUtil = new ProblemTaskStateUtils();
  		return (ptaskStateUtil.canReassessPtask(ptaskGr) && !ptaskStateUtil.canReassesPtaskForClosedPrb(ptaskGr));
  	}
  	return false;
  },
  
  type: 'ProblemUtilsClientSNC'
});

Sys ID

76bf6f7487a12300c386d61e36cb0b2d

Offical Documentation

Official Docs: