Работа с сервисами
Работа с сервисами осуществляется с помощью блоков:
- Получить календари
- Получить события календаря
- Получить журнал работ
- Найти задачи
- Получить журнал изменений
- Отправить письмо
- HTTP-запрос
- Выполнить код
Получить календари
С помощью блока можно получить список календарей сотрудника.
Для этого введите домен или логин пользователя или добавьте его с помощью маппинга в поле Домен\логин.
После выполнения блок возвращает список календарей пользователя, которые можно использовать в блоке Получить события календаря.
При настройке подключения вы можете активировать режим имперсонализации данных. Если он включен, данные о календарях и событиях будут поступать от имени пользователя, чей электронный адрес указан в настройках блока.
Получить события календаря
Блок позволяет получить список событий календаря.
Параметры блока:
- идентификатор календаря (обязательное поле, заполняется вручную или с помощью маппинга)
- условие сбора событий
Если поле Условие сбора событий:
- оставить пустым, то в выходных данных отобразятся все события календаря, начиная с первой даты создания
- заполнить значением sync_state, то в выходных данных отобразятся повторяющиеся, неповторяющиеся и отмененные события, которые были созданы или обновлены с момента времени последнего выполнения скрипта. Значение sync_state уникально для каждого события и опирается на дату последнего изменения события
- заполнить значением даты в миллисекундах, то в выходных данных отобразятся только те события, которые начинаются с этой даты. Значение даты опирается на время начала события. В этом случае в выходных данных отобразятся неповторяющиеся события, повторяющиеся события разобьются на отдельные встречи. Отмененные события отображаться не будут
Блок выводит данные событий указанного календаря. На основе полученных данных можно создать таблицу и построить процесс.
Получить журнал работ
Блок находит журнал работ задачи в Jira, который соответствует JQL-фильтру.
Параметры блока:
- подключение (выбор существующего подключения или добавление нового)
- JQL-запрос (Jira Query Language)
Пример:
- Вводим JQL-запрос на поиск задач по фильтру в соответствующее поле. После тестируем блок.
- Когда тест завершен, получаем выходные данные во вкладке Тест.
Полученные данные можно добавить в таблицу с помощью блока «Добавить строки» через функционал «Добавить таблицу с помощью выходных данных».
Найти задачи
Блок находит задачи в Jira, которые соответствуют JQL-фильтру.
Параметры:
- подключение (выбор существующего подключения или добавление нового)
- JQL-запрос (Jira Query Language)
Пример:
- Создаём JQL-запрос для поиска задач в статусе «В работе» и тестируем блок.
- Получаем данные задач с указанным статусом.
Данные, полученные в данном блоке, можно добавить в существующую таблицу с помощью блока Обновить строки или создать новую с помощью блока Добавить строки.
Получить журнал изменений
Блок возвращает журнал изменений для задач, которые соответствуют JQL-фильтру.
Параметры:
- подключение (выбор существующего подключения или добавление нового)
- JQL-запрос (Jira Query Language)
Пример:
- Вводим запрос для получения журнала изменений для задач со статусом «Отложено» и тестируем.
- Получаем данные задач с указанным статусом.
Полученные данные можно внести в таблицу с помощью блока Добавить строки.
Отправить письмо
Блок позволяет отправлять письма на указанный адрес электронной почты.
Параметры:
- подключение (выбор существующего подключения или добавление нового)
- адрес получателя
- тема письма
- сообщение (формат: Текст или HTML)
- вложение
- копия
- скрытая копия
Отправить письмо можно с адреса, указанного при настройке подключения SMTP, или из системы, выбрав блок «Отправить письмо» в пакете «Письма из системы».
При отправке письма из пакета «Письма из системы» подключение настраивать не нужно, лимит количества отправленных писем на каждый указанный адрес составляет от 1 до бесконечности.
Особенности работы блока:
- в блоке можно использовать значения только одного блока-источника. Например, перед блоком «4. Отправить письмо» есть еще два блока: «2.» и «3.». Данные можно получить только из одного из них. Если указываются оба блока, появляется ошибка
- перед блоком обязательно должен быть другой. Количество отправленных писем будет зависеть от количества возвращенных записей. Например, предыдущий блок вернул 5 записей, значит, будет отправлено 5 писем
- в поле Адрес получателя можно указать нескольких пользователей текстом через запятую
- если в поле Адрес получателя подставить значение с помощью маппинга, письмо будет отправлено только на первый адрес, указанный в таблице
Пример:
- Добавляем блок Отправить письмо и вводим адрес получателя. Если получателей несколько, указываем все адреса в поле Адрес получателя текстом через запятую. Заполняем другие поля блока и нажимаем Тестировать.
- Когда тест завершится, письмо будет отправлено на указанные адреса.
HTTP-запрос
Блок позволяет отправлять HTTP-запрос на указанный адрес.
Параметры:
- подключение (выбор существующего подключения или добавление нового)
- URL
- метод (GET, POST)
- заголовок (ключ и значение)
- тело запроса (при методе POST)
- пакетная обработка (при методе POST, позволяет ускоренно отправлять данные)
Метод выбирается из списка, все остальные параметры могут быть заданы вручную или с помощью маппинга.
Пример:
- Вводим URL и тестируем по нажатию кнопки Тестировать.
- Когда тест завершен, получаем выходные данные во вкладке Тест.
Запуск скрипта с помощью GraphQL-запроса
- Получите GUID скрипта и ID рабочего пространства, выполнив следующий запрос в GraphiQL:
query{ automation{ script{ script_general(id: <id_скрипта>){ id guid workspace{ id } } } } }
- В блоке HTTP-запрос введите URL-адрес вашего сервера GraphQL с ключом API в формате https://{адрес_сервера}/graphql?api_key=ключ.
- Выберите метод POST.
- В поле Тело запроса введите запрос:
mutation{ automation{ script{ execute_by_guid(guid:<"полученный_GUID_скрипта">, workspace_id:<полученный_id_пространства>,data:""){ guid } } } }
- Нажмите Тестировать.
- Когда тест завершится, выходные данные отобразятся во вкладке Тест.
Выполнить код
Блок позволяет обрабатывать данные с помощью JS-кода.
Используйте блок, чтобы:
- выполнять множественные/связанные HTTP-запросы
- выгружать/загружать файлы с помощью HTTP-запросов
- совершать математические действия над данными (переменными)
- обрабатывать строки в JSON и фильтровать значения
Чтобы выполнить действие, введите JS-код в поле JavaScript в параметрах блока. С помощью маппинга в код можно подставить переменные.
Блок может содержать z-метод для хеширования и обработки ошибок. Возможные методы для выполнения в JS-среде:
z.base64Encode()
— производит base64-кодирование входной строки. Например:const auth = z.base64Encode(login + ':' + password);
z.base64Decode()
— производит base64-декодирование входной строки. Например:const originalText = z.base64Decode(encodedText);
z.request()
— выполняет HTTP-запрос. Ожидает на вход объект с конфигурацией запроса. Параметры:url
— адрес, куда будет отправлен запросmethod
— по умолчанию GET. Возможные значения: GET, POST, DELETE, PUTheaders
— список заголовков HTTP-запросаjsonBody/multipartBody
— тело запроса. Обязательный параметр для методов POST и PUT
Запуск скрипта с помощью JS-кода
- Введите код в поле JavaScript:
const apiKey = 'ключ'; const scriptGuid = 'GUID_скрипта'; const workspaceId = 1; var resp1 = z.request({ url: 'https://адрес_сервера/graphql?api_key=' + apiKey, method: 'POST', jsonBody: '{"query":"mutation{automation{script{execute_by_guid(guid:\\"' + scriptGuid + '\\", workspace_id:' + workspaceId + '){guid}}}}"}' }); const app = { output: () => ({ resp_1_body: JSON.stringify(resp1.response), resp_1_header: JSON.stringify(resp1.headers), resp_1_status: resp1.status, ["var-with-hard-name-1"]: resp1.headers.date, ["var-with-hard-name-2"]: resp1.headers["cache-control"], content_type: resp1.headers["content-type"], content_length: resp1.headers["content-length"] } ) }
- Нажмите Тестировать.
- Когда тест завершится, выходные данные отобразятся во вкладке Тест.
Получение файла с Jira
- Введите код в поле JavaScript:
const login = 'test@infomaximum.com'; const password = 'JfCi!$gJRQB$QK5x'; const auth = z.base64Encode(login + ':' + password); var resp1 = z.request({ url: 'https://jira.office.infomaximum.com/secure/attachment/76158/Screenshot_1. jpg', method: 'GET', headers: { Authorization: 'Basic ' + auth } }); const app = { output: () => ({ resp_1_body: JSON.stringify(resp1.response), resp_1_header: JSON.stringify(resp1.headers), resp_1_status: resp1.status, file_content: resp1.response, ["var-with-hard-name-1"]: resp1.headers.date, ["var-with-hard-name-2"]: resp1.headers["cache-control"], content_type: resp1.headers["content-type"], content_length: resp1.headers["content-length"] } ) }
- Нажмите Тестировать.
- Когда тест завершится, выходные данные отобразятся во вкладке Тест.
Была ли статья полезна?