ServiceDesk > Настройка интерфейса и бизнес-логики / Кейс: автоматизация и фиксирование передачи обращения в разработку

Кейс: автоматизация и фиксирование передачи обращения в разработку

Задача: техподдержка в ИТ-компании принимает обращения от клиентов через ServiceDesk. Если для решения запроса нужно исправить ошибку в работе программного продукта, создаётся задача для отдела разработки. Оператор ServiceDesk создает её вручную в баг-трекере, который используется в компании. В карточке обращения он фиксирует передачу информации техническим специалистам и приостанавливает обработку обращения.

Решение: добавить для приложения Обращения новый статус «Передано в разработку», создать бизнес-процесс «Передать в разработку» и добавить на карточку обращения кнопку для его запуска.

Такой бизнес-процесс позволяет:

  • приостанавливать обработку обращения, если по нему ведутся работы в отделе разработки;
  • автоматически устанавливать для обращения статус «Передано в разработку»;
  • фиксировать в карточке обращения ссылку на задачу для технических специалистов;
  • уведомлять автора обращения о том, что по его запросу ведутся работы в отделе разработки. Обращения может создавать любой сотрудник компании, который является пользователем ELMA365 (например, бухгалтер), или внешний пользователь портала.

Рассмотрим этапы реализации такой возможности при работе с обращениями в разделе ServiceDesk.

Добавление статуса «Передано в разработку»

Чтобы зафиксировать информацию о передаче обращения в отдел разработки и приостановить отсчёт времени на обработку обращения, для приложения Обращения нужно создать новый статус «Передано в разработку».

Для этого выполните следующие действия.

  1. Откройте раздел ServiceDesk.
  2. Нажмите на значок 360004420960-1 рядом с названием приложения Обращения, выберите пункт меню Поле «Статус» и добавьте статус «Передано в разработку». Статусу будет присвоен код, который используется при работе с API. Подробнее читайте в статье «Поле „Статус“».
  3. Нажмите на значок 360004420960-1 рядом с названием приложения Обращения, выберите пункт меню Настройка формы.
  4. Перейдите на вкладку Просмотр и нажмите кнопку Редактировать форму. Откроется дизайнер интерфейсов.
  5. Откройте настройки виджета Оставшееся время, нажав setting-icon-1 и выбрав Перейти в конструктор. Перейдите на вкладку Контекст.
  6. Для каждого обращения рассчитывается время на его обработку. При установке определённых статусов отсчёт этого времени приостанавливается. Такие статусы обращения определяются в контекстной переменной «Список замораживающих статусов». Добавьте в эту переменную созданный статус. Для этого нажмите на её название и в поле Значения добавьте статус «Передано в разработку». Коды статуса в этой переменной и в приложении должны совпадать.
  7. Сохраните и опубликуйте виджет Оставшееся время.
  8. После публикации вернитесь к настройкам виджета Оставшееся время на форме просмотра приложения Обращения. Нажмите setting-icon-1 и выберите Настроить.
  9. В открывшемся окне на вкладке Основные в поле Список замораживающих статусов установите флажок напротив созданного статуса «Передано в разработку» и нажмите Сохранить.

transfer-request-to-development-1

Теперь отсчёт времени на обработку обращений со статусом «Передано в разработку» будет приостанавливаться.

Создание бизнес-процесса

На уровне приложения Обращения создайте бизнес-процесс «Передать в разработку». Этот процесс запускает оператор ServiceDesk, если по запросу была создана задача для отдела разработки. Это можно сделать, нажав в карточке обращения на кнопку Передать в разработку. В рамках этого процесса:

  • оператор ServiceDesk добавляет в карточку обращения ссылку на задачу для отдела разработки;
  • для обращения устанавливается статус «Передано в разработку»;
  • автор обращения получает на электронную почту письмо с информацией о том, что его обращение было направлено в отдел разработки.

Чтобы создать бизнес-процесс, выполните следующие действия:

  1. Откройте раздел ServiceDesk.
  2. Нажмите на значок 360004420960-1 рядом с названием приложения Обращения, выберите пункт меню Бизнес-процессы и добавьте новый процесс, нажав кнопку + Процесс. Подробнее читайте в статье «Бизнес-процессы на уровне приложения».

Рассмотрим, каким образом можно настроить такой процесс.

Модель бизнес-процесса

На рисунке ниже представлена модель бизнес-процесса «Передать в разработку».

transfer-request-to-development-2

Когда вы создаете новый процесс, автоматически добавляется динамическая зона ответственности Инициатор. Разместите все элементы внутри неё. Подробнее читайте в статье «Зоны ответственности».

Рассмотрим, из каких элементов состоит модель.

Стартовое событие

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

  1. На модели процесса откройте окно настроек стартового события, перейдите на вкладку Форма и создайте новую форму. Подробнее читайте в статье «Вкладка "Формы"».
  2. Удалите с формы виджет Стандартная форма элемента.
  3. Чтобы зафиксировать ссылку на задачу для отдела разработки и комментарий оператора ServiceDesk, нужно добавить в контекст бизнес-процесса переменные «Ссылка на тикет» типа Ссылка и Комментарий типа Строка. Далее вы можете добавить их на форму запуска процесса или на форму просмотра элемента приложения Обращения.
  4. В дизайнере бизнес-процессов перейдите на вкладку Контекст и нажмите кнопку + Добавить.
  5. В открывшемся окне укажите отображаемое имя переменной, имя свойства и выберите тип данных.
  6. Нажмите кнопку Создать.
  7. Разместите на форме запуска поля Ссылка на тикет и Комментарий и сделайте их обязательными для заполнения. При запуске процесса оператор ServiceDesk должен будет добавить ссылку на тикет для отдела разработки и комментарий.

transfer-request-to-development-3

  1. На вкладке Сценарий можно создать клиентский сценарий, в котором проверяется наличие ссылки на задачу для отдела разработки. Если ссылку указали в карточке обращения, то поле будет заполнено автоматически.

async function onInit() {
    const ticket = await Context.data.obrasheniya!.fetch();
    if (ticket.data.link_on_tiket)
    {
        Context.data.ssylka_na_tiket_v_team = ticket.data.link_on_tiket;
    }
 
}

где,

  • obrasheniyaконтекстная переменная процесса типа Приложение, которая ссылается на приложение Обращения;
  • ssylka_na_tiket_v_team — контекстная переменная процесса, в которой сохраняется ссылка на задачу для отдела разработки.

Блок «Сценарий»

В этом сценарии вычисляется время, которое осталось для работы с обращением. Расчёт оставшегося времени необходим, так как при установке статуса «Передано в разработку» отсчёт времени приостанавливается.

Чтобы настроить этот элемент, выполните следующие действия.

  1. В настройках элемента на вкладке Основное в поле Название* укажите название операции, которое будет отображаться в системе.
  2. В поле Функция нужно привязать к блоку конкретную функцию. Чтобы создать новую функцию, нажмите кнопку Создать. Введите её название. При этом можно использовать только латинские буквы, цифры и знак подчеркивания. Нажмите Создать, а затем Открыть.
  3. Откроется редактор, в котором вы можете написать сценарии. Пример сценария для вычисления оставшегося времени приведён ниже.

async function calcLastTimeSecondMethod(): Promise<void> {
    const request = await Context.data.obrasheniya!.fetch();
    if (request) {
        const lastTime = request.data.lastTime;
        const changeDate = request.data.statusChangeDate;
        const date_now = new Datetime();
        if (lastTime !== undefined && changeDate) {         
            const workedDuration = await System.productionSchedule.getWorkingTime(changeDate, date_now);
            const workedTime = workedDuration?.seconds ?? 0;
            const newLastTime = lastTime - workedTime;
            Context.data.ostavsheesya_vremya = newLastTime >= 0 ? newLastTime : 0;
            request.data.lastTime = newLastTime >= 0 ? newLastTime : 0;
        }
        request.data.statusChangeDate = date_now;
        await request.save();
    }
}

где,

  • obrasheniya — контекстная переменная процесса типа Приложение, которая ссылается на приложение Обращения;
  • statusChangeDateсвойство приложения Обращения, в котором сохраняется дата, когда для обращения был установлен статус «В ожидании»;
  • ostavsheesya_vremya — контекстная переменная процесса, в которой сохраняется время, оставшееся на обработку обращения.
  1. Во время исполнения процесса может возникнуть ошибка сценария. Чтобы определить, какие действия должны выполняться в этом случае, перейдите на вкладку Обработка ошибок.
  2. Включите опцию Повторить выполнение, чтобы сценарий выполнялся повторно.
  3. В поле Количество повторений укажите, сколько попыток выполнения сценария будет предприниматься.
  4. В поле Время задержки между повторениями (сек) определите частоту попыток воспроизведения сценария.
  5. Нажмите кнопку Сохранить.

Подробнее читайте в статье «Сценарий».

Блок «Изменение элемента»

Чтобы зафиксировать ссылку на задачу для отдела разработки, в контекст бизнес-процесса была добавлена переменная «Ссылка на тикет» типа Ссылка. Подробнее об этом можно прочитать в пункте «Стартовое событие».

Блок «Изменение элемента» позволяет сохранить в карточке обращения ссылку на задачу для отдела разработки. Ссылка добавляется в карточку, как только оператор ServiceDesk указал её при запуске процесса.

Выполните следующие действия:

  1. В настройках элемента на вкладке Основное укажите название операции и переменную «Обращение», которая ссылается на приложение Обращения. Эта переменная уже создана в контексте, так как процесс «Передать в разработку» был создан на уровне приложения.
  2. Перейдите на вкладку Значение полей. В колонке Поле Приложения укажите поле, которое необходимо будет изменить. В нашем случае это «Ссылка на тикет». В колонке Переменная процесса укажите соответствующую переменную процесса, в которой будет хранится ссылка.
  3. Нажмите кнопку  Сохранить.

Подробнее читайте в статье «Изменение элемента».

Блок «Управление статусом»

Этот элемент позволяет изменить статус обращения.

В настройках элемента укажите название, контекстную переменную «Обращение», которая ссылается на приложение Обращения, и выберите статус, который будет установлен на этом этапе бизнес-процесса. В данном случае нужно указать статус «Передано в разработку».

После завершения настроек нажмите Сохранить.

Подробнее читайте в статье «Управление статусом».

Блок «Присваивание»

После того как для обращения был установлен статус «Передано в разработку», автор запроса должен получить письмо о том, что по его обращению ведутся работы в отделе разработки. Сначала в рамках процесса определяется автор обращения, а на следующем этапе ему отправляется письмо.

Обращения может создавать любой сотрудник компании, который является пользователем ELMA365 (например, бухгалтер), или внешний пользователь портала. Автор обращения сохраняется в свойстве Автор приложения Обращения. Адрес электронной почты автора обращения хранится во вложенном свойстве Эл. почта. Если обращение создал пользователь ELMA365, адрес почты передается из его профиля. Если обращение создал внешний пользователь портала, адрес почты передается из системного справочника Внешние пользователи.

Для определения автора обращения можно использовать элемент Присваивание. Для работы с ним нужно добавить в процессе контекстную переменную «Автор обращения» типа Пользователи.

Выполните следующие действия.

  1. В дизайнере бизнес-процессов перейдите на вкладку Контекст и нажмите кнопку + Добавить.
  2. В открывшемся окне укажите отображаемое имя переменной, имя свойства и выберите тип данных.
  3. Нажмите кнопку Создать.
  4. Откройте вкладку Схема в настройках элемента Присваивание на вкладке Основное укажите его название.
  5. Перейдите на вкладку Таблица соответствия.
  6. В колонке Поля контекста выберите добавленную контекстную переменную процесса «Автор обращения», в которой будет храниться пользователь, который создал запрос.
  7. В колонке Значения выберите поле Автор приложения Обращения. Значение этого поля будет присваиваться контекстной переменной «Автор обращения».
  8. Нажмите Сохранить.

Подробнее читайте в статье «Присваивание».

Блок «Оповещение»

Этот элемент позволяет отправлять в ленту оповещение о том, что обращение было передано в отдел разработки.

  1. В настройках элемента на вкладке Основное укажите название, тему и текст сообщения. В теме и тексте сообщения можно использовать контекстные переменные. Для этого нажмите на значок {+} в правом углу поля. Например, в текст можно добавить комментарий, добавленный при запуске процесса «Передать в разработку».
  2. В поле Автор укажите пользователя, от имени которого будет отправлено сообщение. Выберите опцию Текущий пользователь. При этом автором сообщения будет оператор ServiceDesk, который запустил этот процесс.
  3. В поле Ассоциированный объект укажите контекстную переменную, в которой хранится приложение Обращение. Оповещения будут сохраняться в ленту, ассоциированную с этим приложением. Просмотреть ленту можно в карточке обращения на вкладке История.
  4. Перейдите на вкладку Получатели и укажите пользователей, которым придёт оповещение о смене статуса обращения. В нашем случае оповещение должен получить автор обращения. Для этого нажмите кнопку Добавить и выберите контекстную переменную «Автор обращения».
  5. Нажмите Сохранить.

Подробнее читайте в статье «Оповещение».

Блок «Оповещение на email»

После смена статуса автор обращения должен получить на электронную почту письмо о том, что его обращение направлено в отдел разработки.

Автор обращения определяется при помощи блока Присваивание.

Отправить письмо на электронную почту можно при помощи элемента Оповещение на email.

Чтобы использовать эту функцию в бизнес-процессе, сначала нужно подключить её в настройках системы. Подробнее об этом читайте в статье «Оповещение на email».

  1. В настройках блока укажите название, в поле Получатель* укажите контекстную переменную, в которой хранится адрес электронной почты автора обращения. Для этого нажмите на {+} и выберите переменную «Эл. почта», к которой можно перейти, раскрыв в списке Обращение — Автор.
  2. В поле Тема письма* напишите короткую и информативную тему. Например, «Обращение передано в отдел разработки». Также в теме можно использовать контекстные переменные.
  3. В поле Текст письма впишите более подробную информацию. Можно добавлять контекстные переменные. Вы можете использовать HTML разметку, чтобы отформатировать текст нужным образом.
  4. Нажмите Сохранить.

Чтобы процесс можно было использовать в работе, его нужно опубликовать. Для этого нажмите на верхней панели кнопки Сохранить и Опубликовать. Подробнее можно прочитать в статье «Публикация бизнес-процесса».

Добавление кнопки на карточку обращения

Процесс «Передать в разработку» запускает оператор ServiceDesk, если по обращению была создана задача для отдела разработки. Для этого он должен перейти в карточку обращения и нажать кнопку Передать в разработку.

Чтобы реализовать такую возможность, требуется добавить на карточку обращения кнопку для запуска процесса. Для этого выполните следующие действия.

  1. Откройте карточку обращения и в левом нижнем углу нажмите на значок setting-icon-2 .
  2. Нажмите на значок setting-icon-3 и выберите Добавить кнопку запуска процесса.
  3. Перейдите к настройкам кнопки, нажав 360004420960-1 справа от её названия.
  4. Укажите текст, цвет кнопки.
  5. В поле Показывать выберите Если есть доступ к редактированию.
  6. Выберите созданный бизнес-процесс «Передать в разработку».
  7. В поле Связать с полем укажите контекстную переменную «Обращение», в которую будет передаваться элемент приложения.
  8. Чтобы форма запуска процесса отображалась над кнопкой, а не в отдельном окне, установите флажок Рисовать форму рядом с кнопкой.
  9. Выберите стандартный размер формы запуска бизнес-процесса.
  10. Кнопка Передать в разработку будет отображаться только в карточке обращения со статусами «Принято», «В работе» и «В ожидании». Для этого установите флажок Только для выбранных статусов и выберите статусы.

Подробнее читайте в статье «Типы и настройки кнопок».