Структура модуля "Управление проблемами"
========================================================================


.. contents:: Содержание
   :depth: 3
 
   
Основные сущности  
------------------------------------

Все объекты конфигурации модуля "Управления проблемами" для удобства поиска и навигации сгруппированы в следущие директории:


*  **routes** - Шаблоны маршрутов
*  **interpreter** - Блокирующие процессы
*  **dict_problem** - Справочники
*  Формы: Проблема, Форма завершения проблемы
*  Реестры: Проблемы


Проблема
------------------------------------

Код: ``itsm_form_problem``

.. warning::

    Менять код формы, а также коды ключевых полей на форме настоятельно не рекомендуется. Это может повлечь за собой ошибки в процессах, заявязанных на данных полях.

Структура Формы проблемы
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Все поля на форме обращения сгруппированы в следующие разделы:

1. Основная информация
2. Дополнительная информация
3. Решение проблемы
4. Решения по схожим вопросам
5. Связанные сущности  

Подробнее о каждом из разделов:

**1. Основная информация**

Поле статус ``itsm_form_problem_status`` является одним из ключевых полей на форме Проблемы.
От этого поля зависит маршрут исполнения обращения, отображаемые поля на форме, доступные/необходимые для заполнения поля на форме завершения Проблемы.
В этом разделе  содержится описание проблемы (``itsm_form_problem_description``), а также информация об исполнителях и ответственных.


**2. Дополнительная информация**

В этом разделе находятся справочники категоризации проблемы: Приоритет, Воздействие, Срочность, Категория, находится ссылка на затронутый проблемы сервис (``itsm_form_problem_servicelink``) и конфигурационные единицы (``itsm_form_problem_confitemlink``).

**3. Решение проблемы**

Раздел решения содержит время закрытия, код закрытия и описание решения (``itsm_form_problem_decisiondescription``).

**4. Решения по схожим вопросам**

В разделе содержатся ссылки на базу знаний по схожим по сервису решенным проблемам.

**5. Связанные сущности**

В данном разделе содержатся ссылки на связанные с проблемой инциденты, проблемы и изменения.



Список блокирующих процессов (БП)
------------------------------------

event.blocking.interpreter.incident.problemDone
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

Данный БП возвращает прежний статус инцидента (если инцидент был приоставновлен) и записывает данные по решению проблемы в таблицу **Проблемы, порожденные данным инцидентом**.


event.blocking.interpreter.incident.waitingProblem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

Блокирующий процесс устанавливает для родительского инцидента статус **Ожидание решения проблемы**.

event.blocking.interpreter.problem.closed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

БП на основе решения закрытой проблемы создает запись в базе знаний, если при закрытии был отмечен чекбокс **Создать запись в базе знаний**.

event.blocking.interpreter.problem.completion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

1. Получает ход выполнения по проблеме
2. Определяет последнюю завершенную работу
3. Определяет файл по форме завершения в папке Прочие для этой работы
4. Копирует данные с найденного файла формы завершения на форму проблемы (меняет статус и записывает значения группы полей статуса)


event.blocking.interpreter.problem.incident_close
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

Процесс завершает инциденты, указанные в поле ``itsm_form_problem_incidentlink``, с описанием решением данной проблемы.

event.blocking.interpreter.problem.notification.status
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

Блокпроцесс отправляет уведомление автору о смене статуса проблемы.

event.blocking.interpreter.problem.relations.ci
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

Блокпроцесс записывает данные о проблеме (дату регистрации и ссылку на проблему) в связанные конфигурационные единицы.

event.blocking.interpreter.problem.set.plan_finish_date
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Что делает процесс?**

Блокпроцесс на основе SLA устанавливает плановую дату завершения для проблемы.