// Адрес API ITSM системы - получить у администратора системы
установитьПеременную("jira_host", "https://ххххххх.atlassian.net/rest/api/2/issue/")+
установитьПеременную("tags", "{\"Bug\": \"Проблема\", \"2\": \"Задача\", \"3\": \"Комментарий\", \"4\": \"Прочее\"}") +
// Собираем поля для формы оператора
// Добавляем текстовое поле для отображения информации
добавитьПолеВФормуОператора(
форма = "Обновление заявки",
переменная = "formName",
название = "Действие:",
значение = "Регистрация нового инцидента",
тип = "Нередактируемый текст",
описание = "",
обязательное = false
) +
// Добавляем обязательное поле для резюме, форма сохранит введенный текст в переменную summary
// Для подставновки ФИО пользователя используем переменную userFullName
добавитьПолеВФормуОператора(
форма = "Обновление заявки",
переменная = "summary",
название = "Резюме",
значение = "Заявка для {userFullName}",
тип = "Однострочный редактируемый текст",
обязательное = true
) +
// Добавляем обязательное поле для описания, форма сохранит введенный текст в переменную description
// Для подставновки логина пользователя используем переменную userLogin
// Чтобы ускорить процесс добавим вопрос пользователя к описанию с помощью переменной platformInMessageQuery
добавитьПолеВФормуОператора(
форма = "Обновление заявки",
переменная = "description",
название = "Описание заявки",
тип = "Многострочный редактируемый текст",
описание = "Опишите вашу проблему",
значение = "Пользователь: {userFullName} логин: {userLogin} сообщает: {platformInMessageQuery}",
обязательное = true
) +
// Добавляем обязательное поле для выбора тега из списка тегов tags, сохранит выбранное значение в переменную tag
добавитьПолеВФормуОператора(
форма = "Обновление заявки",
переменная = "issuetype",
название = "Тег",
тип = "Выпадающий список",
описание = "Выберите из списка критичность заявки",
обязательное = true,
варианты = "{tags}"
) +
// показываем форму оператору, пока оператор не закроет форму сценарий ждет
// если оператор нажмет в форме Отмена - сценарий остановится
показатьФормуОператору(имя = "Обновление заявки") +
// отправка запроса на регистрацию инцидента в соответствии с выбранными значениями
вызвать.внешнийСервис("{jira_host}", "POST").сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8"),("Authorization", "Basic YWFwbGV0bjFAZ21haWwuY25IUUdmR05VRGdFOXlTMkhuRkE3RA==")).сТеломСообщения("{\"fields\":{\"project\":{\"key\":\"INT\"},\"summary\":\"{summary}\",\"description\":\"{description}\",\"issuetype\":{\"name\":\"{issuetype}\"}}}").сохранитьРезультат(("id","ticketid"),("key","key"),("self","link"))+
// обработка ошибок
если("{http_code} != 201").то(
// если запрос завершен с ошибкой сценарий помещает в диалог соответствующий комментарий и завершает свою работу
комментарий("При запросе на регистрацию инцидента возникла ошибка {http_code}, обратитесь к системному администратору")+
завершить
)+
// помещаем комментарий в диалог об успешной регистрации инцидента
комментарий("Зарегистрирован инцидент: заявка {link}")+
// добавляем переменную чата со ссылкой на инцидент, переменная отобразится в боковой панели оператора без возможности редактирования
установитьПеременнуюВДиалог(
ключ = "linkJira",
значение = "{link}",
название = "Ссылка на Jira",
показыватьОператору = true,
редактируемое = false,
обязательное = false,
тип = "Текст"
)+
установитьПеременнуюВДиалог(
ключ = "incNum",
значение = "{key}",
название = "Инцидент №",
тип = "Текст",
показыватьОператору = true,
обязательное = false,
редактируемое = false
)+
завершить |