Name

sn_risk.RiskUtilsAJAX

Description

Client-callable Risk methods.

Script

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

  getRiskScore: function() {
  	var significance = this.getParameter('sysparm_significance');
  	var likelihood = this.getParameter('sysparm_likelihood');
  	
  	var grSignificance = new GlideRecord('grc_risk_criteria');
  	var grLikelihood = new GlideRecord('grc_risk_criteria');
  	if(!grSignificance.get(significance) || !grLikelihood.get(likelihood))
  		return '';
      return new RiskUtils().getRiskScore(grSignificance.weighting, grLikelihood.weighting).sys_id + '';
  },
  
  getRiskValuesFromRiskDefinition: function() {
  	var definitionId = this.getParameter('sysparm_definition_id');
  	var definition = new GlideRecord('sn_risk_definition');
  	definition.get(definitionId);
  	
  	var result = {};
  	result.description = definition.description + '';
  	result.additional_information = definition.additional_information + '';
  	result.category = this._getCategoryValue(definition.category + '');
  	result.name = definition.name + '';
  	result.likelihood = 
  		this._getCriteria('Likelihood', definition.likelihood.display_value);
  	result.significance = 
  		this._getCriteria('Significance', definition.impact.display_value);
  	return (new global.JSON()).encode(result);
  },
  
  _getCategoryValue: function(defId) {
  	var categoryValue = '';
  	var defChoice = '';
  	var choice = new GlideRecord('sn_grc_choice');
  	if (choice.get(defId))
  		defChoice = choice.name + '';
  	
  	if (defChoice != '') {
  		var riskChoice = new GlideRecord('sys_choice');
  		riskChoice.addQuery('name', 'grc_risk');
  		riskChoice.addQuery('element', 'category');
  		riskChoice.addQuery('value', defChoice);
  		riskChoice.addQuery('language', 'en');
  		riskChoice.query();
  		
  		if (riskChoice.next())
  			categoryValue = defChoice;			
  	}
  	return categoryValue;
  },
  
  _getCriteria: function(type, displayValue) {
  	var criteria = new GlideRecord('grc_risk_criteria');
  	criteria.addQuery('type', type);
  	criteria.addQuery('display_value', displayValue);
  	criteria.query();
  	if (criteria.next())
  		return criteria.sys_id + '';
  	else
  		return '';
  },

});

Sys ID

38a2c651cb133100829cf865734c9c89

Offical Documentation

Official Docs: