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