Name

sn_risk_advanced.setAppetiteValuesForRiskAssessment

Description

Implements extension point sn_risk_advanced.setAppetiteValues

Script

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

  _getActiveRiskAssessmentState: function() {
      return new sn_risk_advanced.RiskAssessmentUtils().getActiveRiskAssessmentState();
  },

  setAppetiteValues: function(appetiteInfo) {
      var appetiteStatusFields = appetiteInfo.appetiteStatusFields;
      var assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      if (!gs.nil(appetiteInfo.assessmentQuery))
          assessment.addEncodedQuery(appetiteInfo.assessmentQuery);
      for (var column in appetiteStatusFields) {
          assessment.setValue(column, appetiteStatusFields[column]);
      }
      // For target risk
      var projectedAppetiteStatusFields = appetiteInfo.projectedAppetiteStatusFields;
      for (var projColumn in projectedAppetiteStatusFields) {
          assessment.setValue(projColumn, projectedAppetiteStatusFields[projColumn]);
      }
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setWorkflow(false);
      assessment.updateMultiple();
  },

  copyOverallAppetitStatus: function(appetiteStatusColumn) {
      var appetiteUtils = new sn_risk_advanced.RiskAppetiteUtils();

      var assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      assessment.addQuery(appetiteStatusColumn, appetiteUtils.withInAppetiteStatusId);
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setValue('overall_appetite_status', appetiteUtils.withInAppetiteStatusId);
      assessment.setWorkflow(false);
      assessment.updateMultiple();

      assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      assessment.addQuery(appetiteStatusColumn, appetiteUtils.outsideAppetiteStautusId);
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setValue('overall_appetite_status', appetiteUtils.outsideAppetiteStautusId);
      assessment.setWorkflow(false);
      assessment.updateMultiple();

      assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      assessment.addQuery(appetiteStatusColumn, appetiteUtils.outsideToleranceStautusId);
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setValue('overall_appetite_status', appetiteUtils.outsideToleranceStautusId);
      assessment.setWorkflow(false);
      assessment.updateMultiple();

      // For target risk.
      var projectedStatusColumn = "projected_" + appetiteStatusColumn;
      assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      assessment.addQuery(projectedStatusColumn, appetiteUtils.withInAppetiteStatusId);
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setValue('projected_appetite_status', appetiteUtils.withInAppetiteStatusId);
      assessment.setWorkflow(false);
      assessment.updateMultiple();

      assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      assessment.addQuery(projectedStatusColumn, appetiteUtils.outsideAppetiteStautusId);
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setValue('projected_appetite_status', appetiteUtils.outsideAppetiteStautusId);
      assessment.setWorkflow(false);
      assessment.updateMultiple();

      assessment = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
      assessment.addQuery(projectedStatusColumn, appetiteUtils.outsideToleranceStautusId);
      assessment.addQuery('state', 'IN', this._getActiveRiskAssessmentState());
      assessment.setValue('projected_appetite_status', appetiteUtils.outsideToleranceStautusId);
      assessment.setWorkflow(false);
      assessment.updateMultiple();
  },

  type: 'setAppetiteValuesForRiskAssessment'
};

Sys ID

939be39653261110bad1ddeeff7b1260

Offical Documentation

Official Docs: