FAFR to set priority based on other change fields

FAFR to set priority based on other change fields

Requirement:
Set priority based on 3 change fields.  i.e Change Additional field - "Coverage", "Impact" and "Urgency".

Steps to configure:
1.  Goto Admin > Change Templates > Field and Form Rules > On Field Change:  Urgency.
2.  Set Conditions as:  Coverage is not empty, Impact is not empty and Urgency is not empty.
3.  Execute Script:   Paste the attached script. Update the change additional field value as per your instance.



Script:
var Priority_Matrix = {
  "Coverage 4": {
    "Impact 4": {
      "Urgency 4": "Critical",
      "Urgency 3": "High",
      "Urgency 2": "Medium",
      "Urgency 1": "Low"
    },
    "Impact 3": {
      "Urgency 4": "High",
      "Urgency 3": "High",
      "Urgency 2": "Medium",
      "Urgency 1": "Low"
    },
    "Impact 2": {
      "Urgency 4": "Medium",
      "Urgency 3": "Medium",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 1": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    }
  },
  "Coverage 3": {
    "Impact 4": {
      "Urgency 4": "High",
      "Urgency 3": "High",
      "Urgency 2": "Medium",
      "Urgency 1": "Low"
    },
    "Impact 3": {
      "Urgency 4": "High",
      "Urgency 3": "Medium",
      "Urgency 2": "Medium",
      "Urgency 1": "Low"
    },
    "Impact 2": {
      "Urgency 4": "Medium",
      "Urgency 3": "Medium",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 1": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    }
  },
  "Coverage 2": {
    "Impact 4": {
      "Urgency 4": "Medium",
      "Urgency 3": "Medium",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 3": {
      "Urgency 4": "Medium",
      "Urgency 3": "Medium",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 2": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 1": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    }
  },
  "Coverage 1": {
    "Impact 4": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 3": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 2": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    },
    "Impact 1": {
      "Urgency 4": "Low",
      "Urgency 3": "Low",
      "Urgency 2": "Low",
      "Urgency 1": "Low"
    }
  }
};
var coverage = $CS.getText("UDF_CHAR1");  // Update with the change UDF field name as per your instance.
var impact = $CS.getText("IMPACT");
var urgency = $CS.getText("URGENCY");
$CS.setText("PRIORITY",Priority_Matrix[coverage][impact][urgency]);