Работа с сервисами
Работа с сервисами осуществляется с помощью блоков:
Получить календари
С помощью блока можно получить список календарей сотрудника.
Для этого введите домен или логин пользователя или добавьте его с помощью маппинга в поле Домен\логин.
После выполнения блок возвращает список календарей пользователя, которые можно использовать в блоке Получить события календаря.
При настройке подключения вы можете активировать режим имперсонализации данных. Если он включен, данные о календарях и событиях будут поступать от имени пользователя, чей электронный адрес указан в настройках блока.
Получить события календаря
Блок позволяет получить список событий календаря.
Параметры блока:
- идентификатор календаря (обязательное поле, заполняется вручную или с помощью маппинга)
- условие сбора событий (обязательное поле)
Если поле Условие сбора событий:
- заполнить значением sync_state, то в выходных данных отобразятся повторяющиеся, неповторяющиеся и отмененные события, которые были созданы или обновлены с момента времени последнего выполнения скрипта. Значение sync_state уникально для каждого события и опирается на дату последнего изменения события
- заполнить значением даты в миллисекундах, то в выходных данных отобразятся только те события, которые начинаются с этой даты. Значение даты опирается на время начала события. В этом случае в выходных данных отобразятся неповторяющиеся события, повторяющиеся события разобьются на отдельные встречи. Отмененные события отображаться не будут
Блок выводит данные событий указанного календаря. На основе полученных данных можно создать таблицу и построить процесс.
Отправить письмо
Блок позволяет отправлять письма на указанный адрес электронной почты.
Параметры:
- подключение (выбор существующего подключения или добавление нового)
- адрес получателя
- тема письма
- сообщение (формат: Текст или HTML)
- вложение
- копия
- скрытая копия
Все параметры блока, кроме подключения, можно указать с помощью маппинга.
Отправить письмо можно с адреса, указанного при настройке подключения SMTP, или из системы, выбрав блок «Отправить письмо» в пакете «Письма из системы».
Для отправки письма из пакета «Письма из системы» необходимо настроить сервер исходящей почты.
Особенности работы блока:
- в блоке можно использовать значения только одного блока-источника. Например, перед блоком «4. Отправить письмо» есть еще 2 блока. Данные можно получить только из одного из них. Если указываются значения из обоих блоков, появляется ошибка
- перед блоком обязательно должен быть другой. Количество отправленных писем будет зависеть от количества возвращенных записей. Например, предыдущий блок вернул 5 записей, значит, будет отправлено 5 писем
- в поле Адрес получателя можно указать нескольких пользователей текстом через запятую
Пример:
- Добавляем блок Отправить письмо и вводим адрес получателя. Если получателей несколько, указываем все адреса в поле Адрес получателя текстом через запятую. Заполняем другие поля блока и нажимаем Тестировать.
- Когда тест завершится, письмо будет отправлено на указанные адреса.
HTTP-запрос
Блок позволяет отправлять HTTP-запрос на указанный адрес.
Параметры:
- подключение (выбор существующего подключения или добавление нового)
- URL
- метод (GET, POST)
- заголовок (ключ и значение)
- тело запроса (при методе POST)
- пакетная обработка (при методе POST, позволяет ускоренно отправлять данные)
Метод выбирается из списка, все остальные параметры могут быть заданы вручную или с помощью маппинга.
Пример:
- Вводим URL и тестируем по нажатию кнопки Тестировать.
- Когда тест завершен, получаем выходные данные во вкладке Тест.
Запуск скрипта с помощью GraphQL-запроса
- Получите GUID скрипта и ID рабочего пространства, выполнив следующий запрос в GraphiQL:
ID пространства можно также получить в системной таблице workspace, если подключена привилегия «Системные таблицы».
query{ automation{ script{ script_general(id: <id_скрипта>){ id guid workspace{ id } } } } }
- В блоке HTTP-запрос введите URL-адрес вашего сервера GraphQL с ключом API в формате https://{адрес_сервера}/graphql?api_key=ключ.
- Выберите метод POST.
- В поле Тело запроса введите запрос:
{"query":"mutation{ automation{ script{ execute_by_guid(guid:\"<полученный_GUID_скрипта\", workspace_id:<полученный_id_пространства>){ 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 = 'логин'; const password = 'пароль'; 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"] } ) }
- Нажмите Тестировать.
- Когда тест завершится, выходные данные отобразятся во вкладке Тест.
Была ли статья полезна?