Name

sn_risk_advanced.GetRiskFromSourceRecord

Description

Implements extension point sn_risk_advanced.GetRiskFromSourceRecord

Script

var GetRiskFromSourceRecord = Class.create();
GetRiskFromSourceRecord.prototype = {
  initialize: function() {
  },

  getRiskInfo: function(/*string*/ parentRecord, /*string*/ parentRecordSysId ) {
      var result ={};
  	switch (parentRecord) {
  		case "sn_risk_risk":
  			result.risk = "";
  			var riskGr = new GlideRecord("sn_risk_risk");
  			if(riskGr.get(parentRecordSysId)){
  				result.risk = parentRecordSysId;
  				result.label = riskGr.getValue("name");
  				result.status = 200;
  			}
  			break;
  		default:
  			var dictionary = new GlideRecord("sys_dictionary");
  			dictionary.addEncodedQuery("reference=sn_risk_risk^ORreference=sn_grc_item");
  			dictionary.addQuery('name',parentRecord);
  			dictionary.query();
  			if(dictionary.next()){
  				var columnName = dictionary.getValue('element');
  				var gr = new GlideRecord(parentRecord);
  				gr.addQuery("sys_id", parentRecordSysId);
  				gr.query();
  				if (gr.next()) {
  					var riskId = gr.getValue(columnName);
  					var risk = new GlideRecord("sn_risk_risk");
  					if(risk.get(riskId)) {
  					//Check if risk has any ram associated
  					var hasRam = new sn_risk_advanced.RiskAssessmentUtils().checkRAMExistsForRisk(riskId);
  					if (!hasRam) {
  						result.status = 0;
  						result.errorMsg = gs.getMessage("Selected risk doesn't have a Risk Assessment Methodology associated.");
  						return result;
  					}
  					result.risk = riskId;
  					
  					result.label = risk.getValue("name");
  					result.status = 200;
  					} else {
  						result.status = 0;
  						result.errorMsg = gs.getMessage("Error fetching the risk details. Please contact your system administrator.");
  					}
  				} else {
  					result.risk = "";
  				}
  			}else{
  				result.status =0;
  				result.errorMsg = gs.getMessage("Risk reference field not found in {0} table",[parentRecord]);
  			}

  	}
      return result;
  },
  
  handles: function(handler){
  	return handler == "DEFAULT";
  },

  type: 'GetRiskFromSourceRecord'
};

Sys ID

01f7b60c0f310110580c95758b767e7c

Offical Documentation

Official Docs: