Структура модуля "Управление обращениями" ======================================================================== .. 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``. Изменение/добавление нового статуса необходимо производить предварительно ознакомившись с разделом :ref:`incident_status` . Поля расположенные ниже условно обозначены как Группа полей статуса. Продробнее об этом также читайте в разделе :ref:`incident_status` . .. 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. Контактная информация Поле Контакт ``itsm_form_incident_contact`` - ссылка на реестр Контакты заполняется: * вручную, при регистрации через интерфейс Synergy * заполняется автоматически при регистрации через портал или почту. Поля ``crm_form_contact_phone_phone`` динамической таблицы ``crm_form_contact_phone`` и ``crm_form_contact_email_email`` динамической таблицы ``crm_form_contact_email`` заполняются: * механизмом сопоставления в скриптах соответсвюущих компонентов, при регистрации через интерфейс Synergy * блок.процессом ``event.blocking.interpreter.email``, при регистрации через портал или почту. .. note:: Наличие значения в поле ``crm_form_contact_email_email`` в первой строке динамической таблицы ``сrm_form_contact_email`` является ключевым для процесса отправки уведомлений пользователю. .. warning:: Реестр "Контакты" в версии Synergy Itsm 1.0 является рудиментом предыдущих версий и будет исключен в последующих версиях. .. figure:: _static/Incident_form_conacts.png Рис. 6. Затронутая инфраструктура Поле "Затронутый сервис" ``itsm_form_incident_servicelink`` является ключевым - по нему, а также по полям * ``itsm_form_incident_author`` (группа пользователя, являющиегося автором обращения) * ``itsm_form_incident_priority`` (приоритет) осуществляется связь обращения с SLA, получение длительности и расчет сроков исполнения обращения с указанными параметрами. .. figure:: _static/Incident_form_service.png Рис. 7. Связанные сущности В этот раздел автоматически попадают созданные на основании данного обращения Проблемы, а также могут быть указаны вручную связанные с данными обращения. .. figure:: _static/Incident_form_problems.png Рис. 8. История основных статусов В этом разделе отображается основная информация по клюечвым статусам (На очереди, В работу, Ожидает оценки исполнителя). Эти поля вынесены на форму для возможности получения отчетности путем стандартной выугрузке данных реестра в xls. .. figure:: _static/Incident_form_history.png Рис. Структура Маршрута обращения ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Основной условный переход * Условный переход при завершении .. _incident_status: Что такое статус обращения? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ В терминологии продука Synergy ITSM статус - это набор следующий объектов и настроек: * Значение справочника статусов * Шаблон маршрута * Переход в условном переходе маршрут реестра * При необходимости: дополнительные поля ФЗ и логика их копирования в процессе event.blocking.interpreter.completion Диаграмма состояний обращения ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: На данной диаграмме отображается перечень статусов и переходов между ними настроенный по-умолчанию, но может быть изменен при внедрении решения по потребностям конкретного проекта. .. figure:: _static/Incident_statechart.png Рис. Список блокирующих процессов ------------------------------------ event.blocking.interpreter.counter.reopen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется для получения данных о том, сколько раз обращение было направлено повторно от пользователя при оценке решения обращения. Он увеличивает значение поля ``itsm_form_incident_count_reopen`` на 1 единицу, если статус обращения является "Направлено повторно". event.blocking.interpreter.counter.wrongway ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется для получения данных о том, сколько раз обращение было неверно направлено на очередь операторами первой линии. Он увеличивает значение поля ``itsm_form_incident_count_wrongway`` на 1 единицу, если статус обращения является "Неверно направлено". event.blocking.interpreter.incident.auto_assignment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данное БП используется для автоматического назначения обращения исполнителям для услуг, у которых в карточке включена опция "Автоматическое назначение". Список исполнителей при этом берется из карточки сервиса из поля "Группа, ответственная за поддержку услуги". БП устанавливает статус обращения "На очереди" и направляет обращение в работу ответственным исполнителям. Если у сервиса по обращения не включена опция "Автоматического назначения", то обращение идет дальше по маршруту на первую линию. event.blocking.interpreter.incident.durationOfWork ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется для подсчета времени нахождения на первой линии, на второй линии, у внешних поставщиков. Он заполняет поля в скрытой таблице на обращении, а точнее следующие поля: * Первая линия: * Время решения в минутах * Время решения в часах * Просрочено ли? * Вторая линия: * Время решения в часах * Просрочено ли? * Внешние поставщики: * Время решения в часах * Просрочено ли? * Суммарное время решения в часах В дальнейшем эти данные используются для отчетов, дашбордов, для ведения статистики. event.blocking.interpreter.responsible.duration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется для получения данных о продолжительности работы по обращению для исполнителя. Он по сервису обращения находит карточку данного сервиса и в таблице данных по SLA находит к какой группе относится автор обращения. По приоритету обращения БП получает продолжительность времени разрешения запроса для данного пользователя и заполняет его в поле Продолжительность ``itsm_form_incident_responsible_duration`` для исполнителя. event.blocking.interpreter.timer.date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП к текущей дате добавляет 16 рабочих часов по рабочему календарю и полученную дату заполняет поле "Дата таймера" ``itsm_form_incident_timerDate``. Эта дата в дальнейшем при отправлении обращения на оценку инициатору используется как дата запуска таймера. Данный таймер запускает маршрут, который завершает работу инициатора по оценке и переводит обращение в статус "Закрыто". event.blocking.interpreter.incident.relations.ci ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется для копирования данных о массовом обращении в затрагиваемые конфигурационные единицы. Если обращение является массовым, БП получает все затронутые конфигурационные единицы и в карточку каждой КЕ в таблицу "Массовые инциденты" в разделе "Связанные сущности" добавляет ссылку на данное обращение. event.blocking.interpreter.incident.close_child ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данные БП переводит все дочерние обращения в статусе "Ожидает закрытия массового инцидента" массового инцидента в статус "Закрыто" и заполняет данные по решению обращения. event.blocking.interpreter.mass_incident ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП записывает ссылку текущего обращения в поле ``itsm_form_incident_child`` в карточку массового инцидента, закрытия которого он ожидает для решения обращения. В дальнейшем при закрытии обращения по массовому инциденту, все обращения в поле ``itsm_form_incident_child`` будут автоматически закрыты. event.blocking.interpreter.incident.supplier.duration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется для заполнения продолжительности работы внешнего поставщика по заявке и даты завершения работы внешнего поставщика по SLA. Для получения этих данных процесс, используя сервис и приоритет обращения, переходит в карточку внешнего поставщика и в таблице с данными по SLA находит продолжительность времени разрешении в соотвествии с сервисом и приоритетом обращения. При помощи продолжительности БП высчитывает дату завершения работы внешнего поставщика с учетом рабочего времени по рабочему календарю. event.blocking.interpreter.notification.supplier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП отправляет внешнему поставщику на указанный на обращении почтовый адрес уведомление о назначении обращения в работу. Шаблон уведомления настраивается в реестре "Настройки уведомлений". event.blocking.interpreter.incident.add_to_problem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП используется при направлении обращения в статус "Ожидает закрытия проблемы". При этом указывается проблема, решение которой необходимо для данного обращения. БП записывает обращение в поле "Инциденты" на карточке проблемы. event.blocking.interpreter.incident.index.tagcloud ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный БП добавляет в индекс для визуализации "Облако тегов" слова из темы и описания обращения, при этом убирая слова-исключения и заменяя на слова-синонимы. Список слов-исключений и слов-синонимов берется из реестра синонимов и реестра исключений. event.blocking.interpreter.completion ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Что делает процесс?** 1. Получает ход выполнения по обращению 2. Определяет последнюю завершенную работу 3. Определяет файл по форме завершения в папке Прочие для этой работы 4. Копирует данные с найденного файла формы завершения на форму обращения (меняет статус и записывает значения группы полей статуса) event.blocking.interpreter.email ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Что делает процесс?** 1. Получает id записи реестра Контакты, выбранного в поле Автор 2. Копирует данные с найденной записи реестра Контакты на форму обращения event.blocking.itsm.send.rate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Что делает процесс?** 1. Получает email с формы обращения (таблица контактов автора) 2. Получает формат уведомления для статуса Ожидает оценки пользователя 3. Отправляет на найденный email уведомление о необходимости подтвердить завершение решения с двумя ссылками "Отправлен повторно", "Завершение подтверждено" *Прим. После отправки процесс разблокируется. По нажатию на ссылку завершится текущая на тот момент работа "Ожидание оценки". Подробнее - в разделе статуса)* event.blocking.incident.calc.status.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Что делает процесс?** 1. Получает из формы SLA время решения и время реакции по параметрам данного обращения 2. Записывает их на форму обращения 3. Рассчитывает плановую дату завершения с учетом рабочего календаря 4. Записывает плановые даты завершения на форму обращения Дополнительные механизмы ------------------------------------ Переназначение обращения ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Получает ход выполнения по обращению 2. Завершает текущую работу по обращению 3. Создает новую работу по обращению для указанного пользователя со статусом "В процессе" *Прим. Функция переназначения работ позволяет оператору завершить работу, в которой он не является ни исполнмтелем, ни автором* Для отображения кнопки у пользователя, данного пользователя необходимо добавить в группу *itsm_group_reassign_access* . Кнопка "Переназначить" доступна для статусов обращений: "На очереди", "В процессе", "Информация предоставлена". При необходимости в скрипте можно добавить требующиеся статусы. Операции над фильтрами ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для всех обращений в указанном преднастроенном фильтре: 1. Завершает текущую работу с формой завершения с заполненными полями статус и группа полей статуса Операции над выборкой ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Реестр "Операции над выборкой" доступен из клиентской части Synergy в Хранилище -> Реестры. На АРМ для вызова записи реестра необходимо на основной таблице выбрать несколько обращений, отметив галочкой в начале строки, и в меню "Действия" над таблицей выбрать нужный статус. Для всех обращений произвольной выборки завершается текущая работа с формой завершения с заполненными полями указанного статуса и группы полей статуса. Создание проблемы из обращения ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для создания проблемы из обращения отображается кнопка "В проблему". По нажатию на нее создается запись реестра "Проблемы" и поле "Источник" заполняется ссылкой на обращение. Также дополнительно копируются данные из обращения в проблему. Данная кнопка становится доступной только после активации записи реестра обращения и для определенных статусов. Список статусов, при которых отображается данная кнопка на АРМ, настраивается в записи реестра "Настройки АРМ". .. figure:: _static/armSettings.png Рис. Настройки АРМ Отображение кнопки в клиентской части Synergy настраивается в скрипте на статусе обращения (``itsm_form_incident_status``). Текст скрипта: :: if(window.location.href.indexOf('Synergy') !== -1) { let buttonProblem = $(`[document_id="${getDocID()}"]`).closest('tbody').find('[data-button="APPROVE"]:contains("В проблему")').closest('tr'); if([3].indexOf(Number(val)) === -1) { buttonProblem.hide(); } else { buttonProblem.show(); } } При необходимости указания дополнительных статусов кроме статуса "В процессе", в массив через запятую нужно добавить порядковые номера других статусов из справочника "Статусы инцидента". Например: if([3, 7, 6].indexOf(Number(val)) === -1). По умолчанию, кнопка "В проблему" доступна для статуса "В процессе". Создание запроса на изменение из обращения ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Доступна возможность создания запросов на изменение из обращений. Для этого отображается кнопка "Запрос на изменение", по нажатию на которую создается запрос на изменение на основе обращения и поле "Ссылка на обращение" заполняется ссылкой на документ, в поле "Источник" указывается "Обращение". Также дополнительно копируются данные из обращения в запрос на изменение. Данная кнопка доступна для пользователей группы ``itsm_group_button_rfc`` на статусах обращений "Зарегистрировано", "Информация предоставлена", "На очереди", "В процессе". При необходимости в скрипте можно добавить или убрать нужные статусы, а также данные копируемые из обращения в запрос на изменение.