Другие
Шаги этой группы служат для выполнения множества разнородных задач.
DbExecute - выполняет указанный SQL-запрос к базе данных
Rollup - создает записи с помощью преобразования
HTTPConnector - обращается к серверу посредством HTTP-запросов
DeleteFiles - удаляет файлы и каталоги
DbExecute
DbExecute выполняет указанные операторы SQL/DML/DDL для базы данных, подключенной с помощью драйвера JDBC. Шаг не имеет входных портов, а ответы на запрос к базе отправляются на первый выходной порт.
Порты DbExecute:
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Output | 0 | да | Для выходных записей | любые |
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
dbConnection | да | Идентификатор соединения с БД, которое будет использоваться. |
|
sqlQuery | да | SQL-запрос, определенный на графе. |
|
url | либо имя внешнего файла, включая путь, определяющий запрос SQL с теми же характеристиками, которые описаны в атрибуте запроса SQL, либо строка атрибута URL-адреса файла, которая используется для чтения порта. | url="port:$0.ddl:discrete" | |
charset | нет |
Кодировка внешнего файла, указанная в атрибуте |
Rollup
Rollup создает одну или несколько выходных записей из одной или нескольких входных записей. Может отправлять разные записи на разные выходные порты, указанные пользователем.
Метаданные на разных выходных портах могут различаться.
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Input | 0 | да | Для входных записей | любые |
Output | 0 | да | Для выходных записей | |
1-N | нет |
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
groupKeyFields / groupKey | да | Ключ, по которому записи считаются включенными в одну группу. Выражается в виде последовательности имен отдельных входных полей, разделенных друг от друга символом «#». | name; salary |
groupAccumulatorMetadataId / groupAccMd / groupMd | дa | Идентификатор метаданных, которые служат для создания групповых аккумуляторов. | InputData |
inputSorted / sorted | да | По умолчанию записи считаются отсортированными. Либо по возрастанию, либо по убыванию. Разные поля могут даже иметь разный порядок сортировки. Если ваши записи не отсортированы, установите для этого атрибута значение false. | False |
transform | да | Алгоритм обработки данных. Функции для преобразования на шаге Rollup описаны в таблице ниже. |
|
Функции шага Rollup:
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
Метаданные, указанные пользователем. Если |
Возвращает | void |
Вызов | Вызывается по одному разу для первой входной записи каждой группы. Вызывается перед updateGroup(groupAccMd). |
Описание | Инициализирует информацию для конкретной группы. |
Пример |
|
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
Метаданные, указанные пользователем. Если |
Возвращает |
если true, то вызывается если false, то вызывается |
Вызов |
Вызывается многократно (по одному разу для каждой входной записи группы, включая первую и последнюю запись). Вызывается после того, как функция |
Описание | Инициализирует информацию для конкретной группы. |
Пример |
|
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
Метаданные, указанные пользователем. Если |
Возвращает |
если true, то вызывается если false, то вызывается |
Вызов |
Вызывается повторно, один раз для последней входной записи каждой группы. Вызывается после того, как |
Описание |
Если |
Пример |
|
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
Целочисленный счетчик (начинается с 0, указывает количество созданных записей. Должен быть завершен, как показано в примере ниже. Вызовы функций заканчиваются, когда возвращается
Если |
Возвращает | целочисленные значения |
Вызов |
Вызывается неоднократно, как указано пользователем. Вызывается после того, как |
Описание |
Создает выходные записи на основе информации об отдельных записях. Если |
Пример |
|
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
целочисленный счетчик (начинается с 0, указывает количество созданных записей. должен быть завершен, как показано в примере ниже. Вызовы функций заканчиваются, когда возвращается SKIP.)
Если |
Возвращает | целочисленные значения |
Вызов |
Вызывается неоднократно, как указано пользователем. Вызывается после того, как |
Описание |
Создает выходные записи на основе всех записей всей группы. Если функция |
Пример |
|
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
string errorMessage string stackTrace integer counter (начинается с 0, указывает количество созданных записей. должно быть завершено, как показано в примере ниже. Вызов функции завершается, когда возвращается SKIP.)
Если |
Возвращает | целочисленные значения |
Вызов |
Вызывается, если |
Описание | Создает выходные записи на основе информации об отдельных записях |
Пример |
|
Параметр | Значение |
---|---|
Обязательный | Да |
Входные параметры |
string errorMessage string stackTrace integer counter (начинается с 0, указывает количество созданных записей. должно быть завершено, как показано в примере ниже. Вызов функции завершается, когда возвращается SKIP.)
Если |
Возвращает | целочисленные значения |
Вызов |
Вызывается, если |
Описание | Создает создает выходные записи на основе всех записей всей группы. |
Пример |
|
Доступ к полям ввода и вывода
Все остальные функции шаблона PseudoRust не позволяют получить доступ ни к входам, ни к выходам, ни к groupAccMd
.
Ввод записей или полей
Входные записи или поля доступны в функциях initGroup()
, updateGroup()
, finishGroup()
. Они также доступны в функциях updateTransform()
, transform()
, updateTansformOnError()
и transformOnError()
.
Выходные записи или поля
Выходные записи или поля доступны в функциях updateTransform()
, transform()
, updateTansformOnError()
и transformOnError()
.
Групповой аккумулятор
Групповой аккумулятор доступен в функциях initGroup()
, updateGroup()
, finishGroup()
. Он также доступен в функциях updateTransform()
, transform()
, updateTansformOnError()
и transformOnError()
.
HTTPConnector
HTTPConnector отправляет запросы к указанному серверу и получает ответы. Запрос записывается в атрибут url
. Ответ может быть отправлен на выходной порт или сохранён в указанном в атрибуте outputURL
файле. Путь к выходному файлу может быть отправлен на указанный выходной порт.
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Input | 0 | нет | Для установки различных атрибутов шага | Любые |
Output | 0 | Содержимое ответа, путь к файлу ответа, код состояния, атрибуты шага | ||
1 | Подробности об ошибках |
Метаданные
таблица входных метаданных
таблица выходных метаданных (исходящих)
таблица ошибок
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
url | да | URL-адрес сервера, к которому подключается компонент. Формат URL-адреса смотрите в разделе [Поддерживаемые форматы](). Поддерживаются протоколы HTTP, HTTPS, FTP и SFTP. | |
requestMethod | да | Метод запроса. | requestMethod="POST" |
addInputFieldsAsParameters | Указывает, следует ли добавлять в URL-адрес дополнительные параметры из входящего ребра. | addInputFieldsAsParameters="false" по умолчанию | |
addInputFieldsAsParametersTo | Отправить параметры в - указывает, следует ли добавлять входные поля в строку запроса или в тело метода. Параметры можно добавлять в тело метода только в том случае, если для метода запроса установлено значение POST. По умолчанию параметры передаются в QUERY. | addInputFieldsAsParametersTo="BODY" | |
multipartEntities | Составные сущности - указывает поля, которые следует добавлять как составные объекты в запрос POST. Имя поля используется в качестве имени сущности. Ожидается список входных полей, разделенных точкой с запятой. | ||
charset | Кодировка символов входных/выходных файлов. | charset="UTF-8" по умолчанию. | |
requestContent | Cодержимое запроса, указывается в сопоставлении входных данных inputMapping. |
|
|
inputURL | URL-адрес входного файла, из которого считывается один HTTP-запрос. Подробнее о выборе файла в разделе [Диалоговое окно URL-файла](). | ||
outputURL | URL-адрес выходного файла, в который записывается HTTP-ответ. Подробнее о выборе файла в разделе [Диалоговое окно URL-файла](). | ||
appendOutput | По умолчанию любой новый ответ перезаписывает старый. Если вы переключите этот атрибут на true, новый ответ будет добавлен к старым. Применяется только к выходным записям. | ||
inputMapping | Сопоставление входных данных. Позволяет устанавливать соответствие между полями входных записей и атрибутами шага. |
|
|
outputMapping | Сопоставление выходных данных. Позволяет сопоставить данные ответа (например, содержимое тела ответа, код состояния и т. д.) с полями выходной записи. Также можно сопоставить значения из входных полей и сведений об ошибке (если для параметра «Redirect error output» установлено значение true). | ||
errorMapping | Сопоставление ошибок. Позволяет сопоставить сообщение об ошибке с выходной записью. |
|
|
authenticationMethod | нет | Указывает, какой метод аутентификации следует использовать. HTTP BASIC | HTTP DIGEST | ANY | authenticationMethod="BASIC" по умолчанию |
username | Имя пользователя, необходимое для подключения к серверу. | username="${USER}" | |
password | Пароль, необходимый для подключения к серверу. | password="${PASSWORD}" | |
Сопоставление входных данных
Для сопоставления входных данных через атрибут inputMapping используется Редактор преобразований, в котором можно решить, какие поля из входной записи следует назначить атрибутам шага.
Редактор преобразований для HTTPConnector
Диалоговое окно предоставляет вам все возможности и функции Редактора преобразований.
Составные объекты
Вы можете настраивать составные объекты в Редакторе преобразований. inputMapping предлагает поля, производные от значения атрибута multipartEntities. Например, поле1;поле2
в качестве значения составных сущностей генерирует следующие поля:
Составные объекты в сопоставлении входных данных
Сгенерированные поля можно использовать для управления составными объектами.
Если вы имеете дело с составными объектами, вам необходимо использовать метод POST. При указании составного объекта к HTTP-запросу автоматически добавляется дополнительный Content-type заголовок, содержащий значение «multipart/form-data». Более того, рёбра будут указываться и распределяться автоматически и в HTTP-запросе. Настройка HTTP-заголовка Content-type как «multipart/form-data» вручную нарушит автоматическую спецификацию рёбер.
Возможные способы настройки составных сущностей (расписать подробнее):
- Список входных полей
- Содержимое карты составного объекта
- Содержимое карты и имя файла
- Использовать файл как составной объект
Список входных полей
Атрибут Multipart entities
содержит список полей из входной записи, разделенных точкой с запятой. Каждое поле представляет собой составную сущность. Имя совпадает с именем поля, значение поля используется в качестве содержимого.
Содержимое карты составного объекта
Используйте сопоставление входных данных inputMapping, чтобы установить содержимое составных сущностей. Составное имя будет таким же, как имя поля, а содержимое будет определяться сопоставлением.
Содержимое карты и имя файла
Составная сущность будет использоваться при сопоставлении данных, но в запросе будет дополнительный составной заголовок, использующий сопоставленное имя файла.
Использовать файл как составной объект
Раздел в разработке
Сопоставление выходных данных
При редактировании атрибута outputMapping открывается Редактор преобразования, в котором вы можете решить, что следует отправить на выходной порт.
Редактор преобразований для HTTPConnector
Чтобы выполнить сопоставление, выполните несколько основных шагов:
- Если у вас уже есть выходные метаданные, щелкните левой кнопкой мыши элемент на левой панели и перетащите его в поле вывода. Это отправит данные результата на выход.
- Если у вас нет выходных метаданных:
- Перетащите поле с левой панели на правую панель (пустое место).
- Это создает новое поле в выходных метаданных.
Вы можете сопоставить различные данные с выходным портом:
-
Значения полей из входных метаданных — вы можете отправлять значения из полей ввода в выходной порт. Это особенно полезно, когда вы используете какой-то идентификатор сеанса для HTTP-запросов.
-
Результат — предоставляет данные о результате. К ним относятся:
- content — содержимое HTTP-ответа в виде строки. Это поле будет иметь значение null, если ответ записывается в файл.
- contentByte — необработанное содержимое HTTP-ответа в виде массива байтов. Это поле будет иметь значение null, если ответ записывается в файл.
- outputFilePath - путь к файлу, в который записан ответ. Будет нулевым, если ответ не записывается в файл.
- statusCode — код состояния HTTP ответа. заголовок — карта, представляющая свойства HTTP-заголовка из ответа.
- rawHeaders — заголовки ответа.
- errorMessage — сообщение об ошибке в случае, если вывод ошибки перенаправляется на стандартный порт вывода.
-
Атрибуты — предоставляет значения атрибутов компонента:
- URL-адрес — URL-адрес, по которому был отправлен запрос.
- requestMethod — метод, который использовался для запроса.
- requestContent — содержимое отправленного запроса (если указано в виде строки).
- inputFileUrl — URL-адрес файла, содержащего содержимое запроса.
Сопоставление выходных данных использует внутренний язык для описания преобразований (вы можете переключиться на вкладку «Источник»). Доступны все виды функций для изменения значения, которое будет сохранено в поле вывода.
Пример в разработке
Сопоставление ошибок
При редактировании атрибута errorMapping открывается редактор преобразований, в котором можно сопоставить сведения об ошибке с выходным портом. Поведение очень похоже на отображение вывода. Если вы оставите сопоставление ошибок пустым, будет использовано сопоставление ошибок по умолчанию:
output.out_1.* = input.in_0.*;
output.out_1.* = input.in_1.*;
Пример. Скачать Web-страницу
Загрузите содержимое веб-страницы modernsolution.ru с помощью HTTPConnector. Сохраните результат в файл для дальнейшей обработки.
Решение
Используйте атрибуты URL-адреса и URL-адреса выходного файла. Загруженная страница будет сохранена в файле result.html в каталоге ${DATAOUT_DIR}.
Атрибут | Значение |
---|---|
URL | |
Output file URL | ${DATAOUT_DIR}/result.html |
DeleteFiles
DeleteFiles используется для удаления файлов и каталогов (в том числе, рекурсивно).
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Input | 0 | нет | Для входных записей, которые необходимо сопоставить с атрибутами шага. | любые |
Output | 0 | нет | Результаты | |
1 | нет | Ошибки |
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
fileURL |
да1 | Путь к файлу или каталогу, который необходимо удалить | fileURL="${DATATMP_DIR}/bl/esb/loadHub/${srcName}_${tableName}.csv" |
recursive | нет | Удалять каталоги рекурсивно. | recursive="true" по умолчанию |
inputMapping | Определяет маппинг входных записей с атрибутами шага. |
| |
standardOutputMapping | Определяет маппинг результатов работы шага на стандартный порт вывода. |
| |
errorOutputMapping | Определяет отображение ошибок на порт вывода ошибок. |
| |
redirectErrorOutput | нет | Если этот параметр включен, ошибки будут отправляться на стандартный порт вывода вместо порта ошибок. | redirectErrorOutput="false" по умолчанию |
stopOnFail | нет | По умолчанию сбой при обработке графа приведёт к тому, что шаг пропустит все последующие входные записи и отправит информацию о них на порт вывода ошибок. Такое поведение можно отключить с помощью этого атрибута.
false: если произойдет ошибка (например, файл не найден), шаг продолжит удаление последующих файлов. true: в случае возникновения ошибки шаг прекратит удаление последующих файлов и отправит информацию об оставшихся неудалёнными файлах на порт ошибки. Примечание: эта функция работает только в том случае, если к порту ошибки шага подключено ребро. | stopOnFail="false" по умолчанию |
Атрибут является обязательным, если он не указан в маппинге входных записей.
Требуется, если соответствующее ребро подключено.
При редактировании любого маппинга открывается Редактор преобразований.
Сопоставление входных данных
Редактор позволяет перезаписать выбранные атрибуты шага значениями входящих записей.
Атрибут | Тип | Возможные значения |
---|---|---|
fileURL | string | fileURL="${DATA_DIR}/folder/log.txt" |
recursive | boolean | true | false |
Сопоставление выходных данных
Редактор позволяет сопоставлять результаты и входные данные с выходным портом.
Если выходное сопоставление пусто, поля входной записи и результирующей записи сопоставляются с выходными данными по имени.
Имя поля | Тип | Возможные значения |
---|---|---|
fileURL | string | Путь к файлу или каталогу, который был удален. |
result | boolean | True, если операция завершилась успешно (может быть false, если включено перенаправление ошибок). |
errorMessage | string | Если операция не удалась, поле содержит сообщение об ошибке (используется, когда включено перенаправление ошибок). |
stackTrace | string | Если операция не удалась, поле содержит трассировку стека ошибки (используется, когда включено перенаправление ошибок). |
Сопоставление ошибок
Редактор позволяет сопоставлять ошибки и входные данные с портом ошибки.
Если сопоставление ошибок пусто, поля входной записи и записи результата сопоставляются с выходными данными по имени.
Имя поля | Тип | Описание |
---|---|---|
result | boolean | Всегда будет установлено значение false. |
errorMessage | string | Сообщение об ошибке |
stackTrace | string | Трассировка ошибок. |
fileURL | string | URL-адрес удаленного файла или каталога. |
Пример. Удаление файла
Чтобы удалить файл ${PROJECT_DIR}/delete_me.txt
нужно заполнить атрибут fileURL
.
Атрибут | Значение |
---|---|
fileURL | ${PROJECT_DIR}/delete_me.txt |
Пример. Удаление директории
Чтобы удалить директорию ${OLD_PROJECT}/old_folder
нужно заполнить атрибуты fileURL
и recursive
.
Атрибут | Значение |
---|---|
fileURL | ${PROJECT_DIR}/delete_me.txt |
recursive | true |