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

ITIL - определяет приоритет события, как сумму данных серьезности и срочности за вычетом единицы:
Приоритет = Срочность + Серьезность - 1

Мы уже рассматривали, как упростить арифметические вычисления (см. раздел Совместное добавление атрибутов) и теперь можем создавать вычисления для определения числовых значений приоритета на основании числовых значений срочности и серьезности. Создайте три числовых атрибута события с именами "Срочность", "Серьезность" и "Приоритет", а затем добавьте следующее вычисление для атрибута "Приоритет":
import System
static def GetAttributeValue(Событие):
 Значение = Событие._Срочность + Событие._Серьезность – 1
 return Значение

Затем можно добавить срочность, серьезность и приоритет в окно события и вычисление начнет определять числовое значение приоритета.

Однако вы можете изменять эти атрибуты для использования упорядоченных списков, содержащих значения, имеющие иные имена. Вы можете меть срочности и серьезности с именами "Высокая", "Средняя" и " Низкая" (с рангом от 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(Событие):
     if Событие._Срочность события == null:
      return null
     if Событие.Серьезность == null:
      return null
    Значение = Событие._Срочность события.Ранг + Событие.Серьезность.Ранг - 1
    return Событие.GetRankedObject("Управление событиями._Вычисленный приоритет", Значение)
  4. Щелкните Тест синтаксиса для подтверждения того, что структура вычисления не содержит ошибок, а затем щелкните OK.
    Вычисление будет добавлено в атрибут.
  5. Щелкните .
    Изменения будут сохранены.

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

Последнее действие - это добавление параметров в окно события.

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