Вычисление приоритета из данных срочности и серьезности

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. Нажмите OK.
    Новый бизнес-объект будет создан.
  5. На панели Свойства введите Заголовок для элемента Вычисленный приоритет, а затем щелкните .
    У вас будет запрошено, нужно ли создать атрибут "Имя".
  6. Нажмите Да.
    Объект "Вычисленный приоритет" будет сохранен. Запомните его имя "_Вычисленный приоритет" - мы будем использовать его далее. Также обратите внимание, что добавлен атрибут "Ранг". Теперь нужно связать это объект с объектом "Инцидент".
  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. Щелкните Тест синтаксиса для подтверждения того, что структура вычисления не содержит ошибок, а затем щелкните OK.
    Вычисление будет добавлено в атрибут.
  2. Нажмите .
    Изменения будут сохранены.

Строки if... и return null устанавливают значение вычисленного свойства в null (не заполнено), если не заполнены списки Серьезность или Срочность - в противном случае останется неизменным ранее вычисленное значение для вычисленного приоритета.
Последняя строка return Incident.GetRankedObject("IncidentManagement._CalculatedPriority", Value) возвращает имя вычисленного приоритета, которое соответствует рангу вычисленного значения.

Последнее действие – это добавление параметров в окно инцидента.

Для добавления параметров в окно:
  1. В диспетчере окон откройте окно инциденты и добавьте поля Срочность инцидента, Серьезность и Вычисленный приоритет.
  2. На панели Свойства для Срочность инцидента и Серьезность установите параметр С вычислением при изменении в значение True.
    Во время регистрации инцидента и заполнения полей Срочность инцидента и Серьезность поле Вычисленный приоритет заполняется автоматически соответствующим значением.