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


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

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


*  **Routes_templates** - Шаблоны маршрутов
*  **VMK** - Пользовательские компоненты (кастомизированные объекты интерфейса)
*  **blocking_processes** - Блокирующие процессы
*  **dict_incident** - Справачники
*  Формы: Обращение, Форма завершения обращения, Наряд, Сервисная команда, Внешний поставщик
*  Реестры: Обращения, Наряды, Сервисные командаы, Внешние поставщики

.. figure:: _static/Incident_structure_configurator_main.png

        Рис. 
        

Обращения
------------------------------------

Код: ``itsm_form_incident``

.. warning::

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

Структура Формы обращения
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

1. Статус и группа полей статусов
2. Основная информация
3. Описание обращения
4. Описание решения
5. Контактная информация
6. Затронутая инфраструктура
7. Связанные сущности
8. История основных статусов

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

1. Статус и группа полей статусов

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

Поле статус ссылается на справочник с кодом ``itsm_dict_incidentstatus``. Изменение/добавление нового статуса необходимо производить предварительно ознакомившись с разделом 

.. Что такое статус обращения?:

Поля расположенные ниже условно обозначены как Группа полей статуса. Продробнее об этом также читайте в разделе 

.. Что такое статус обращения?:


.. figure:: _static/Incident_form_status.png

        Рис. 



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

Ключевыми полями в этом разделе являются:

* Идентификатор ``itsm_form_incident_id``
* Дата регистрации ``itsm_form_incident_regdate``
* Автор ``itsm_form_incident_author``
* Оператор ``itsm_form_incident_responsiblemanager``
* Подразделение исполнителя ``itsm_form_incident_responsibleDepartment``
* Исполнитель ``itsm_form_incident_responsible``


.. figure:: _static/Incident_form_common.png

        Рис. 
        



3. Описание обращения

Ключевыми полями в этом разделе являются:

* Тема ``itsm_form_incident_theme`` - 
*При получении обращения через почту это поле заполняется значением - тема письма*

* Описание ``itsm_form_incident_description`` - 
*При получении обращения через почту это поле заполняется значением - тело письма*

* Дополнительная информация - динамическая таблица ``itsm_form_incident_addinfo`` с текстовым полем ``text`` - 
*При получении ответа на Запрос дополнительной информации по электронной почте, в этой таблице создается новая строка и в поле заполняется тело письма*

* Вложениия  - динамическая таблица ``itsm_form_incident_files`` с полем "Добавит файл" ``file`` - 
*При получении обращения и ответа на запрос доп.инфо через почту в эту дин.таблицу сохраняются все вложения электронных писем*

.. figure:: _static/Incident_form_description.png

        Рис. 
        
4. Описание решения

.. note::

    Поля в этом блоке заполняются автоматически копированием данных их файла формы завершении 
    (при выборе статуса: Ожидает оценки пользователя). 
    За копирование данных отвечает блокирующий процесс `event.blocking.interpreter.completion` 


* Код решения ``itsm_form_incident_decisiontype`` - выпадающий список со справочником ``itsm_dict_incidentdecision``

* Описание ``itsm_form_incident_decisiondescription`` - 

* Причина возникновения  ``itsm_form_incident_cause`` - выпадающий список со справочником ``itsm_dict_cause``

* Категория сбоя  ``itsm_form_incident_failCategory`` - выпадающий список со справочником ``itsm_dict_failCategory``

* Тип сбоя ``itsm_form_incident_failType`` - выпадающий список со справочником ``itsm_dict_failType``

* "Создавать запись в Базе Знаний" - Выбор вариантов ``itsm_form_incident_makenew_knowledge`` - 

*От наличия в этом поле включенного чекбокса зависит будет ли добавлена запись в Базу знаний*

* Файлы решения - динамическая таблица ``itsm_form_incident_decision_files`` с полем "Добавить файл" ``Файл``



.. figure:: _static/Incident_form_decision.png

        Рис. 
        
5. Контактная информация

.. figure:: _static/Incident_form_conacts.png

        Рис. 
        
6. Затронутая инфраструктура

.. figure:: _static/Incident_form_service.png

        Рис. 
  
7. Связанные сущности

.. figure:: _static/Incident_form_problems.png

        Рис. 
        
8. История основных статусов

.. figure:: _static/Incident_form_history.png

        Рис. 
        



Структура Маршрута обращения
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Основной условный переход
* Условный переход при завершении

Что такое статус обращения?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

В терминологии продука Synergy ITSM статус - это набор следующий объектов и настроек:

* Значение справочника статусов
* Шаблон маршрута
* Переход в условном переходе маршрут реестра
* При необходимости: дополнительные поля ФЗ и логика их копирования в процессе event.blocking.interpreter.completion

Диаграмма состояний обращения
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. note::
    
    На данной диаграмме отображается перечень статусов и переходов между ними настроенный по-умолчанию, но может быть изменен при внедрении решения по потребностям конкретного проекта.

.. figure:: _static/Incident_statechart.png

        Рис. 


Маршрут обращения
------------------------------------


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


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

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

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

event.blocking.interpreter.email
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

1. Получает id записи реестра Контакты, выбранного в поле  Автор
2. Копирует данные с найденной записи реестра Контакты на форму обращения

event.blocking.interpreter.current.date
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

1. Сохраняет значение текущей даты (на момент запуска данного БП) на форму обращения

*Прим. В дальнейшем эта дата используется для запуска таймера на 48 часов, по истечению которого должна быть завершена работа ожидания оценки пользователя.*


event.blocking.itsm.send.rate
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

1. Получает email с формы обращения (таблица контактов автора)
2. Получает формат уведомления для статуса Ожидает оценки пользователя
3. Отправляет на найденный email уведомление о необходимости подтвердить завершение решения с двумя ссылками "Отправлен повторно", "Завершение подтверждено"
*Прим. После отправки процесс разблокируется. По нажатию на ссылку завершится текущая на тот момент работа "Ожидание оценки". Подробнее - в разделе статуса)*

event.blocking.incident.calc.status.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Получает из формы SLA время решения и время реакции по параметрам данного обращения
2. Записывает их на форму обращения
3. Рассчитывает плановую дату завершения с учетом рабочего календаря
4. Записывает плановые даты завершения на форму обращения


Дополнительные механизмы
------------------------------------

Переназачение обращения
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Получает ход выполнения по обращению
2. Сохраняет на форме обращения статус "На очереди"
3. Завершает текущую работу по обращению

*Прим. Функция переназначения работ позволяет оператору завершить работу, в которой он не является ни исполнмтелем, ни автором*

Операции над фильтрами
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Операции над выборкой
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Общие настройки
------------------------------------


Настройки интеграции с почтой
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Настройки уведломлений
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~