通过紧急度和严重性计算优先级

ITIL 将事件的优先级定义为紧急度和严重性之和减去一:
优先级 = 紧急度 + 严重性 - 1

我们已了解如何进行简单的算术计算(请参阅将属性相加),因此可以设计一个计算,以根据紧急度和严重性的数值确定优先级的数值。在“事件”上创建三个数值属性,分别名为紧急度严重性优先级,然后将以下计算添加到优先级属性:

复制
import System
static def GetAttributeValue(Incident):
    Value = Incident._Urgency + Incident._Severity – 1
    return Value

然后可以向“事件”窗口添加“紧急度”、“严重性”和“优先级”,而计算将确定优先级的数值。

但是,可以更改这些属性,以使用包含不同命名值的有序列表。可以拥有等级为“高”、“中”、“低”(等级从 3 到 1)的“紧急度”和“严重性”,以及五个“优先级”等级,从“优先级 1”(最高优先级,等级为 5)到“优先级 5”(最低优先级,等级为 1)。

严重性

名称

等级

 

3

 

2

 

1

紧急度

名称

等级

 

3

 

2

 

1

优先级

名称

等级

 

优先级 1

5

 

优先级 2

4

 

优先级 3

3

 

优先级 4

2

 

优先级 5

1

然后根据下表从“紧急度”和“严重性”确定“优先级”。

 

 

严重性

 

 

紧急度

优先级 1

优先级 2

优先级 3

优先级 2

优先级 3

优先级 4

优先级 3

优先级 4

优先级 5

例如:
严重性“中”= 等级 2
紧急度“低”= 等级 1
,因此优先级等级 = 2 + 1 - 1 = 2
而优先级等级 2 =“优先级 4”

本示例使用事件管理模块中提供的事件紧急度严重性等级对象来计算等级,该等级用于确定称为计算的优先级的新等级属性的值,将在事件管理模块中创建该属性。

该计算有三个步骤:

  1. 创建新的等级对象,将其关联到“事件”,并进行填充。建议不要使用属性创建向导执行该操作,这样可以更好地控制命名约定。
  2. 将计算添加到新的等级对象。
  3. 将控件添加到“事件”窗口。
要创建新的等级对象:
  1. 对象设计器中,单击“业务对象”树中的事件管理模块,然后单击操作列表中的新建业务对象
    出现“行为选择”消息框,询问是否要指定行为。
  2. 单击
    出现“行为选择”对话框。
  3. 可用项目列表中,单击等级(仅创建),然后单击
    “等级(仅创建)”移动到“已选择的项目”列表。
  4. 单击确定
    新业务对象创建完成。
  5. 属性网格中,为计算的优先级键入标题,然后单击
    将询问是否要创建“名称”属性。
  6. 单击
    随即保存“计算的优先级”对象。请注意,它的名字是“_CalculatedPriority”,稍后会用到它。同样请注意,还添加了“等级”属性。现在需要将该对象关联到“事件”对象。
  7. 业务对象树中,将计算的优先级对象拖动到事件对象上。
    会询问是否希望能够从“计算的优先级”访问所有相关的“事件”实例。
  8. 单击
    随即创建关系。在“事件”的“属性”树中,可以看到 计算的优先级
  9. 单击
    随即保存对象。现在需要为对象创建窗口,然后使用“管理”组件创建值。
  10. 窗口管理器中,为事件管理\计算的优先级创建新窗口,仅添加名称
  11. 管理组件中,显示有序列表树,然后创建五个计算的优先级值。

现在我们可以将所需的计算添加至“事件”对象中的“计算的优先级”属性。该计算将读取“计算的优先级”有序列表中所需的值。

要添加计算:
  1. 对象设计器中,打开事件管理\事件对象,然后单击计算的优先级
  2. 计算的优先级属性网格中,将计算类型设置为 BeforeSave
    出现“编辑计算的优先级的公式”对话框。
  3. 编辑器框中,将计算更改为:
复制
import System
static def GetAttributeValue(Incident):
    if Incident._IncidentUrgency == null:
        return null
    if Incident.Severity == null:
        return null
    Value = Incident._IncidentUrgency.Rank + Incident.Severity.Rank - 1
    return Incident.GetRankedObject("IncidentManagement._CalculatedPriority", Value)
  1. 单击测试语法以确认计算的结构中没有错误,然后单击确定
    “计算”会添加到属性。
  2. 单击
    随即保存更改。

如果清空严重性列表或紧急度列表中的任何一个,则 if... 而且,如果清除任一严重性紧急性列表,return null 行会将计算的优先级的值设置为“null”(空白),否则会保留之前计算的计算的优先级值。
最后一行 return Incident.GetRankedObject("IncidentManagement._CalculatedPriority", Value) 返回与计算的等级值相对应的“计算的优先级”的名称。

最后一个阶段是将控件添加到“事件”窗口。

要将控件添加到窗口:
  1. 窗口管理器中,打开“事件”窗口,并添加字段事件紧急度严重性计算的优先级
  2. 事件紧急度严重性属性网格中,将是更改时计算设置为,然后保存窗口。
    记录事件并填写事件紧急度严重性字段时,会自动利用相应的值填写计算的优先级字段。