Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Компоненты работы с данными: различия между версиями

Материал из Платформа Эра. Документации
Строка 7: Строка 7:


Все компоненты, помимо специфических параметров также содержат общие параметры и параметры сохранения результата, описанные в [[Базовые компоненты и логика построения сценариев|предыдущей статье курса]].
Все компоненты, помимо специфических параметров также содержат общие параметры и параметры сохранения результата, описанные в [[Базовые компоненты и логика построения сценариев|предыдущей статье курса]].
Детальная техническая информация о компонентах доступна на [https://vendor.era-platform.ru/docs/era/latest/scripts/component_types/common/index.html портале Vendor].


= Описания компонентов =
= Описания компонентов =
Строка 247: Строка 250:
|<code>Код ошибки</code>
|<code>Код ошибки</code>
|Переменная для сохранения кода ошибки.
|Переменная для сохранения кода ошибки.
|}
WEB-запрос
[[Файл:Компонент WEB-запрос.png|центр|безрамки|569x569пкс]]
Позволяет выполнять HTTP- и HTTPS- запросы к web-сервисам по произвольному URL.
Поддерживает HTTP-методы GET, POST, PUT, HEAD, DELETE с контентом и без. Поддерживает отправку асинхронных запросов и запросов с ожиданием ответов.
В случае ошибки переход осуществляется по ветке «Ошибка», и в переменную «Код ошибки» возвращается соответствующий код HTTP.
Компонент поддерживает работу в сессиях, сохраняя и используя cookie, а также HTTPS и подтверждение сертификатов.
Фактическая отправка запроса может производиться как с сервера, на котором работает текущий обработчик сценария, так и с пограничных серверов системы «Era».
В ряде случаев может быть заменено выполнением "curl" запроса через командную строку (компонент Запуск процесса).
{| class="wikitable"
|+Свойства компонента
!Свойство
!Описание
|-
|<code>Прокси</code>
|Выключатель использования прокси-сервера.
|-
|<code>Аутентификация в прокси</code>
|Выключатель прокси-аутентификации.
|-
|<code>Логин прокси</code>
|Логин к прокси-серверу.
|-
|<code>Пароль прокси</code>
|Пароль к прокси-серверу.
|-
|<code>Адрес прокси</code>
|Адрес прокси-сервера.
|-
|<code>Порт прокси</code>
|Порт прокси-сервера.
|-
|<code>Макс. перенаправлений</code>
|Ограничение на максимальное число перенаправлений. Значение для HTTP-заголовка <code>Max-Forwards</code>.
|-
|<code>URL</code>
|URL запроса. Должен содержать схему (например, <code>http://</code>).
|-
|<code>Источник запроса</code>
|Адрес сервера, с которого необходимо отправить запрос.
По умолчанию запрос отправляется с сервера, где обработчик выполняет сценарий.
Возможные форматы указания:
* <code>NodeName</code>
* <code>NodeName:Iface</code>
* <code>NodeName@NodeAddr</code>
* <code>NodeName@NodeAddr:Iface</code>
* <code>RoleId</code>
* <code>RoleId:Iface</code>
* <code>RoleName</code>
* <code>RoleName:Iface</code>
где
* <code>NodeName</code> – короткое имя ноды в ее полном имени (<code>abc002@192.168.0.12</code>);
* <code>NodeAddr</code> – адрес ноды в ее полном имени;
* <code>RoleId</code> – идентификатор роли в конфигурации, по роли определяется нода;
* <code>RoleName</code> – название роли в конфигурации, по роли определяется нода;
* <code>Iface</code> – адрес сетевого интерфейса на сервере.
При отсутствии ноды/роли, любом некорректном задании имени, отправка производится с сервера, где обработчик выполняет сценарий.
При отсутствии или некорректном задании адреса сетевого интерфейса сервера отправителя отправка произойдет с адреса ноды отправителя.
|-
|<code>Метод</code>
|Возможные варианты:
* <code>POST</code> (<code>post</code>, <code>0</code>)
* <code>GET</code> (<code>get</code>, <code>1</code>)
* <code>PUT</code> (<code>put</code>, <code>2</code>)
* <code>HEAD</code> (<code>head</code>, <code>3</code>)
* <code>DELETE</code> (<code>delete</code>, <code>4</code>)
* <code>PATCH</code> (<code>patch</code>, <code>5</code>)
* <code>TRACE</code> (<code>trace</code>, <code>6</code>)
* <code>OPTIONS</code> (<code>options</code>, <code>7</code>)
|-
|Название: <code>Тип контента</code>
Код: <code>contentType</code>
Усл. видимости: <code>да</code>
По умолчанию: <code>"application/x-www-form-urlencoded"</code>
|Значение для HTTP-заголовка <code>Content-Type</code>.
|-
|<code>Тело запроса</code>
|Содержание тела HTTP-запроса.
|-
|<code>Кодировка запроса</code>
|Кодировка, с помощью которой производится преобразование тела запроса из строкового представления к бинарному виду перед отправкой.
Возможные варианты:
* <code>unicode</code> (<code>0</code>)
* <code>utf-8</code> (<code>1</code>)
* <code>utf-7</code> (<code>2</code>)
* <code>cp1251</code> (<code>3</code>) – Кодовая страница <code>windows-1251</code> (кириллица)
* <code>Указать название</code> (<code>byname</code>, <code>4</code>) – Задать название кодировки вручную.
|-
|<code>Название кодировки запроса</code>
|Название кодировки для тела запроса, заданное вручную.
|-
|<code>Базовая аутентификация</code>
|Выключатель базовой аутентификации.
|-
|<code>Логин</code>
|Логин для базовой аутентификации.
|-
|<code>Пароль</code>
|Пароль для базовой аутентификации.
|-
|<code>Заголовки</code>
|Подставляемые в запрос дополнительные HTTP-заголовки. Аргумент содержит мультистрочное значение, формат каждой из строк: <code>HeaderName: HeaderValue</code>.
|-
|<code>Куки</code>
|Подставляемые в запрос дополнительные COOKIE. Аргумент содержит мультистрочное значение, формат каждой из строк: <code>Key=Value</code>.
|-
|<code>Режим</code>
|Режим работы компонента после отправки запроса.
Возможные варианты:
* <code>Ожидание результата</code> (<code>0</code>) – Ожидание ответа вплоть до завершения сценария.
* <code>Асинхронный запуск</code> (<code>1</code>) – Управление сразу передается следующему компоненту.
* <code>Обрыв по таймауту</code> (<code>2</code>) – Ожидание ответа в течение установленного времени, по истечению которого HTTP-подключение разрывается и управление передается следующему компоненту.
* <code>Выход по таймауту</code> (<code>3</code>) – Ожидание ответа в течение установленного времени, по истечению которого управление передается следующему компоненту без разрыва подключения и прерывания процесса отправки.
|-
|<code>Время, с</code>
|Таймаут ожидания ответа на отправленный HTTP-запрос.
|-
|<code>Код ответа</code>
|Переменная для сохранения кода HTTP-ответа. Не заполняется, если запрос не отвечен.
Если запрос завершен ответом 3xx то инициируется новый переадресованный запрос и код ответа 3хх в дальнейшем перезаписывается.
|-
|<code>Заголовки ответа</code>
|Переменная для сохранения заголовков HTTP-ответа.
Не заполняется, если запрос не отвечен.
Если запрос завершен ответом 3xx, то инициируется новый переадресованный запрос, и заголовки в дальнейшем перезаписываются.
|-
|<code>Ответ</code>
|Переменная для сохранения тела HTTP-ответа.
Не заполняется, если запрос не отвечен.
Если запрос завершен ответом 3xx, то инициируется новый переадресованный запрос, и тело в дальнейшем перезаписываются.
|-
|<code>Кодировка ответа</code>
|Кодировка, в которой находится тело HTTP-ответа. Используется для преобразования к строковому представлению в переменной сценария.
Возможные варианты:
* <code>Авто из заголовка</code> (<code>autoheader</code>, <code>5</code>)
* <code>Авто из тела</code> (<code>autometaheader</code>, <code>6</code>)
* <code>unicode</code> (<code>0</code>)
* <code>utf-8</code> (<code>1</code>)
* <code>utf-7</code> (<code>2</code>)
* <code>cp1251</code> (<code>3</code>) – Кодовая страница <code>windows-1251</code> (кириллица)
* <code>Указать название</code> (<code>byname</code>, <code>4</code>) – Задать название кодировки вручную.
|-
|<code>Название кодировки ответа</code>
|Название кодировки для тела ответа, заданное вручную.
|}
|}



Версия от 10:44, 24 февраля 2025

Предыдущая статья курса: Базовые компоненты и логика построения сценариев

Общая информация

Для выполнения работы с данными и осуществления сложных операций, в платформе Эра предусмотрен специальный набор компонентов служебных сценариев.

Данные компоненты не связанны друг с другом и реализуют различные механизмы взаимодействия с модулями системы и внешними системами.

Все компоненты, помимо специфических параметров также содержат общие параметры и параметры сохранения результата, описанные в предыдущей статье курса.


Детальная техническая информация о компонентах доступна на портале Vendor.

Описания компонентов

Файловая операция

Производит указанную операцию ввода-вывода на диске. Работает с файлами, каталогами, путями.

Компонент имеет дополнительные переходы по ошибкам доступа к файлам.

Свойства компонента
Свойство Описание
Тип объекта Определяет тип объекта, над которым производится файловая операция.

Возможные значения:

  • Путь (path,1) – Операции со строковым представлением пути.
  • Файл (file,2) – Операции с файлами.
  • Каталог (folder,3) – Операции с каталогами.
  • Содержимое файла (content,4) – Операции с содержимым файла.
Операция Операция со строковым представлением пути.

Возможные значения:

  • Тип пути (getPathType, 101) – Возвращает категорию каталога по указанному пути.
  • Относительный путь (getRelativePath, 102) – Возвращает относительный путь, вырезая из него категорию.
  • Имя файла (getFileName, 103) – Возвращает имя файла из указанного пути.
  • Расширение (getFileExtension, 104) – Возвращает расширение файла из указанного пути.
  • Каталог (getFileDirectory, 105) – Возвращает имя каталога из указанного пути.
  • Построить путь (makePath, 106) – Возвращает путь, собранный из категории каталога и относительного пути, доступный для использования в других операциях и компонентах.
  • Построить путь к файлу (makeFilePath, 107) – Возвращает путь к файлу, собранный из трех аргументов: пути, имени файла и расширения.
Операция Операция с файлом.

Возможные значения:

  • Удалить (deleteFile, 201) – Удаляет файл.
  • Скопировать (copyFile, 202) – Копирует файл.
  • Переместить (moveFile, 203) – Перемещает файл в другой каталог.
  • Проверить наличие (fileExists, 205) – Возвращает 1, если файл существует, иначе 0.
  • Размер (getFileSize, 206) – Возвращает размер файла.
  • Хеш содержимого (getFileHash, 207) – Возвращает хеш содержимого файла.
  • Создать путь (ensureFolder, 208) – Создает каталог для файла по указанному пути, если он не существует.
  • Преобразовать в tiff (fileToFaxTiff, 209) – Преобразует файл в tiff, с параметрами подходящими для компонента Отправка факса Поддерживаемые форматы для преобразования в tiff: bmp, jpg, pdf, png, tiff.
Операция Операция с каталогом.

Возможные значения:

  • Создать (makeFolder, 301) – Создает каталог, если он не существует.
  • Удалить (deleteFolder, 302) – Удаляет каталог.
  • Скопировать (copyFolder, 303) – Копирует каталог со всем содержимым.
  • Переместить (moveFolder, 304) – Перемещает каталог со всем содержимым в другой каталог.
  • Проверить наличие (folderExists, 306) – Возвращает 1, если каталог существует, иначе 0.
  • Количество файлов (getFolderFileCount, 307) – Возвращает количество файлов в каталоге на первом уровне.
  • Количество подкаталогов (getFolderSubfolderCount, 308) – Возвращает количество подкаталогов на первом уровне.
Операция Операция с содержимым файла.

Возможные значения:

  • Создать файл (createFile, 401) – Создает новый файл с указанным содержимым.
  • Записать файл (writeFile, 402) – Записывает новое содержимое в существующий файл.
  • Дописать в конец файла (appendFile, 403) – Добавляет содержимое в конец файла.
  • Считать файл (readFile, 404) – Возвращает содержимое файла.

Все операции с содержимым используют указанную кодировку для преобразования из строки в бинарный вид.

Путь Аргумент, содержащий путь.
Отрезать расширение Переключатель режима возврата файла без расширения.
Категория каталога Категория каталога, с использованием которой путь становится доступным для применения в операциях ввода-вывода.

Возможные значения:

  • SYNC_COMMON (1) – Каталог общих данных всех доменов в синхронизирующемся между серверами каталоге.
  • SYNC_DOMAIN_COMMON (2) – Каталог общих данных домена в синхронизирующемся между серверами каталоге.
  • SYNC_DOMAIN_DATA (3) – Каталог данных домена в синхронизирующемся между серверами каталоге.
  • SYNC_SCRIPT_DATA (4) – Каталог данных сценария в синхронизирующемся между серверами.
  • SITESHARE_PUBLIC (5) – Каталог общих данных на сетевом диске сайтового хранилища, доступного всем серверам на сайте.
  • SITESHARE_DOMAIN_DATA (6) – Каталог данных домена на сетевом диске сайтового хранилища, доступного всем серверам на сайте.
  • SITESHARE_SCRIPT_DATA (7) – Каталог данных сценария на сетевом диске сайтового хранилища, доступного всем серверам на сайте.
  • GLOBALSHARE_PUBLIC (8) – Каталог общих данных на сетевом диске глобального хранилища, доступного всем сайтам.
  • GLOBALSHARE_DOMAIN_DATA (9) – Каталог данных домена на сетевом диске глобального хранилища, доступного всем сайтам.
  • GLOBALSHARE_SCRIPT_DATA (10) – Каталог данных сценария на сетевом диске глобального хранилища, доступного всем сайтам.
  • TEMP (11) – Временный каталог текущего обработчика сценария. Удаляется через 5 секунд после его завершения.
Относительный путь Аргумент, содержащий относительный путь.
Имя файла Аргумент, содержащий название файла.
Расширение Аргумент, содержащий расширение файла.
Путь источника Аргумент, содержащий путь источника.
Путь назначения Аргумент, содержащий путь назначения.
Хеш-функция Хеш-функция для применения к содержимому файла.
Содержимое Аргумент с содержимым файла.
Кодировка Кодировка для применения к содержимому файла при считывании в переменную и наоборот.

Возможные значения:

  • Авто (1) – Автоматическое определение.
  • Бинарные данные (binary, 2) – Считывание бинарных данных без преобразования.
  • utf-8 (3)
  • utf-16 (4)
  • utf-32 (5)
  • cp1251 (6) – Кодовая страница windows-1251 (кириллица).
  • Указать название (byname, 7) – Указание имени кодировки.
BOM Режим считывания содержания файла с учетом префикса кодировки для UTF.

Возможные варианты:

  • С BOM (withBOM, 1).
  • Без BOM (withoutBOM, 2).
Endian Режим раскладки кодировки unicode.

Возможные варианты:

  • Little-Endian (littleEndian, 1).
  • Big-Endian (bigEndian, 2).
Название кодировки Аргумент, содержащий имя применяемой кодировки.

SQL-Запрос

Позволяет производить действия в БД, а также передавать параметры (на вход и на выход).

В качестве параметров выступают переменные сценария.

Подключение к серверу БД осуществляется по строке подключения. Обращение к БД происходит через ODBC и требует наличия в ОС соответствующих драйверов.

В случае ошибки переход осуществляется по ветке «Ошибка», и в переменную «Код ошибки» возвращается соответствующий код исключения БД.

Возврат значений из БД происходит в табличном виде. Сохранение значений в переменные осуществляется по принципу идентичности имен столбцов в последнем из вернувшихся датасетов и переменных сценария. Переменным присваиваются значения из последней строки последнего датасета.

Свойства компонента
Свойства Описание
База Данных БД для подключения.

Возможные варианты:

  • Проектная (project_psql, 4) – Проектная БД домена (PosgtreSQL), строка подключения к которой берется из настроек домена (settings → project_postgresql_connstr).
  • Другая (other, 2) – Другая БД.
Драйвер Возможные варианты:
  • ODBC (odbc, 0) – подключение через драйвер ODBC.
  • PSQL (psql, 1) – подключение через внутренний адаптер к PostgreSQL.

Для режима указания БД Другая.

Строка соединения Строка подключения к БД.

Для режима указания БД Другая.

Пример для odbc драйвера

Driver={SQL Server Native Client 11.0};
Server=192.168.0.73,14350;
Database=testbase;
UID=test;
PWD=123;

Пример для psql драйвера

Driver={PostgreSQL Unicode(x64)};
Server=127.0.0.1;
Port=5433;
Database=era_dummy_central_common;
Uid=platformpgadmin;
Pwd=123456;

или аналогично формату в конфигурации:

host:127.0.0.1,port:5432,login:platformpgadmin,pwd:123456,database:postgres
Время, с Таймаут на выполнение запроса к БД.
Запрос Тело SQL-запроса.

Пример для ODBC:

INSERT INTO EMPLOYEE (NR, FIRSTNAME, LASTNAME, GENDER)
VALUES (?, ?, ?, ?)

Пример для PSQL:

SELECT name as a, birthdate::varchar as b,Where id = $1 or code = $2

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

При этом сопоставление значений производится по именам столбцов в датасете выдачи и переменных.

Возвращаемые специальные значения null, true, false преобразуются в строковое представление при сохранении в переменные сценария.

Параметры запроса Списочное значение, устанавливающее параметры для запроса.

Порядок параметров строго соответствует порядку применения параметров в запросе.

Кодировка Кодировка, в которой следует сохранить строковые значения в переменных.

Возможные варианты:

  • utf-8 (1)
  • cp1251 (2) – Кодовая страница windows-1251 (кириллица)
Код ошибки Переменная для сохранения кода ошибки.

WEB-запрос

Позволяет выполнять HTTP- и HTTPS- запросы к web-сервисам по произвольному URL.

Поддерживает HTTP-методы GET, POST, PUT, HEAD, DELETE с контентом и без. Поддерживает отправку асинхронных запросов и запросов с ожиданием ответов.

В случае ошибки переход осуществляется по ветке «Ошибка», и в переменную «Код ошибки» возвращается соответствующий код HTTP.

Компонент поддерживает работу в сессиях, сохраняя и используя cookie, а также HTTPS и подтверждение сертификатов.

Фактическая отправка запроса может производиться как с сервера, на котором работает текущий обработчик сценария, так и с пограничных серверов системы «Era».

В ряде случаев может быть заменено выполнением "curl" запроса через командную строку (компонент Запуск процесса).

Свойства компонента
Свойство Описание
Прокси Выключатель использования прокси-сервера.
Аутентификация в прокси Выключатель прокси-аутентификации.
Логин прокси Логин к прокси-серверу.
Пароль прокси Пароль к прокси-серверу.
Адрес прокси Адрес прокси-сервера.
Порт прокси Порт прокси-сервера.
Макс. перенаправлений Ограничение на максимальное число перенаправлений. Значение для HTTP-заголовка Max-Forwards.
URL URL запроса. Должен содержать схему (например, http://).
Источник запроса Адрес сервера, с которого необходимо отправить запрос.

По умолчанию запрос отправляется с сервера, где обработчик выполняет сценарий.

Возможные форматы указания:

  • NodeName
  • NodeName:Iface
  • NodeName@NodeAddr
  • NodeName@NodeAddr:Iface
  • RoleId
  • RoleId:Iface
  • RoleName
  • RoleName:Iface

где

  • NodeName – короткое имя ноды в ее полном имени (abc002@192.168.0.12);
  • NodeAddr – адрес ноды в ее полном имени;
  • RoleId – идентификатор роли в конфигурации, по роли определяется нода;
  • RoleName – название роли в конфигурации, по роли определяется нода;
  • Iface – адрес сетевого интерфейса на сервере.

При отсутствии ноды/роли, любом некорректном задании имени, отправка производится с сервера, где обработчик выполняет сценарий.

При отсутствии или некорректном задании адреса сетевого интерфейса сервера отправителя отправка произойдет с адреса ноды отправителя.

Метод Возможные варианты:
  • POST (post, 0)
  • GET (get, 1)
  • PUT (put, 2)
  • HEAD (head, 3)
  • DELETE (delete, 4)
  • PATCH (patch, 5)
  • TRACE (trace, 6)
  • OPTIONS (options, 7)
Название: Тип контента

Код: contentType

Усл. видимости: да

По умолчанию: "application/x-www-form-urlencoded"

Значение для HTTP-заголовка Content-Type.
Тело запроса Содержание тела HTTP-запроса.
Кодировка запроса Кодировка, с помощью которой производится преобразование тела запроса из строкового представления к бинарному виду перед отправкой.

Возможные варианты:

  • unicode (0)
  • utf-8 (1)
  • utf-7 (2)
  • cp1251 (3) – Кодовая страница windows-1251 (кириллица)
  • Указать название (byname, 4) – Задать название кодировки вручную.
Название кодировки запроса Название кодировки для тела запроса, заданное вручную.
Базовая аутентификация Выключатель базовой аутентификации.
Логин Логин для базовой аутентификации.
Пароль Пароль для базовой аутентификации.
Заголовки Подставляемые в запрос дополнительные HTTP-заголовки. Аргумент содержит мультистрочное значение, формат каждой из строк: HeaderName: HeaderValue.
Куки Подставляемые в запрос дополнительные COOKIE. Аргумент содержит мультистрочное значение, формат каждой из строк: Key=Value.
Режим Режим работы компонента после отправки запроса.

Возможные варианты:

  • Ожидание результата (0) – Ожидание ответа вплоть до завершения сценария.
  • Асинхронный запуск (1) – Управление сразу передается следующему компоненту.
  • Обрыв по таймауту (2) – Ожидание ответа в течение установленного времени, по истечению которого HTTP-подключение разрывается и управление передается следующему компоненту.
  • Выход по таймауту (3) – Ожидание ответа в течение установленного времени, по истечению которого управление передается следующему компоненту без разрыва подключения и прерывания процесса отправки.
Время, с Таймаут ожидания ответа на отправленный HTTP-запрос.
Код ответа Переменная для сохранения кода HTTP-ответа. Не заполняется, если запрос не отвечен.

Если запрос завершен ответом 3xx то инициируется новый переадресованный запрос и код ответа 3хх в дальнейшем перезаписывается.

Заголовки ответа Переменная для сохранения заголовков HTTP-ответа.

Не заполняется, если запрос не отвечен.

Если запрос завершен ответом 3xx, то инициируется новый переадресованный запрос, и заголовки в дальнейшем перезаписываются.

Ответ Переменная для сохранения тела HTTP-ответа.

Не заполняется, если запрос не отвечен.

Если запрос завершен ответом 3xx, то инициируется новый переадресованный запрос, и тело в дальнейшем перезаписываются.

Кодировка ответа Кодировка, в которой находится тело HTTP-ответа. Используется для преобразования к строковому представлению в переменной сценария.

Возможные варианты:

  • Авто из заголовка (autoheader, 5)
  • Авто из тела (autometaheader, 6)
  • unicode (0)
  • utf-8 (1)
  • utf-7 (2)
  • cp1251 (3) – Кодовая страница windows-1251 (кириллица)
  • Указать название (byname, 4) – Задать название кодировки вручную.
Название кодировки ответа Название кодировки для тела ответа, заданное вручную.


Следующая статья курса: Запуск служебных сценариев
Предыдущая статья курса: Базовые компоненты и логика построения сценариев