EXECUTE_SCRIPT
Узел EXECUTE_SCRIPT запускает указанный скрипт с помощью выбранного интерпретатора.
Если к входному порту не подключено ребро, узел запускает скрипт только один раз. В этом случае создается одна выходная запись.
Когда на входной порт поступают записи, выполняется одно выполнение скрипта для каждой записи и создается одна выходная запись для каждого выполнения скрипта.
Если скрипт выполнен успешно, узел продолжает обработку следующих входных записей. В противном случае узел прекращает выполнение скрипта и завершается с ошибкой.
Порты EXECUTE_SCRIPT:
| Тип порта | Номер | Обязательный | Описание | Метаданные |
|---|---|---|---|---|
| Input | 0 | нет | Параметры запуска скрипта. | Любые |
| Output | 0 | нет | Результаты выполнения скрипта. | Любые |
Атрибуты EXECUTE_SCRIPT:
| Атрибут | Обязательный | Описание | Возможные значения |
|---|---|---|---|
| script | нет | Код скрипта, который будет выполнен. | |
| scriptURL | нет | URL-адрес скрипта, который будет выполнен. | scriptURL="./folder/data/stage/script.exe" |
| scriptCharset | нет | Кодировка символов, используемая в скрипте. | scriptCharset="UTF-8 " |
| interpreter | да | Используемый интерпретатор. | interpreter="сmd" |
| workingDirectory | нет | Рабочий каталог исполняемого скрипта. Все относительные пути, используемые внутри скрипта, будут интерпретироваться относительно этого каталога. | workingDirectory="./data-tmp/stage/ftpClearHistory/" |
| inputMapping | нет | Задаёт параметры выполнения скрипта. Можно переопределить script, scriptURL, interpreter, workingDirectory. |
|
| outputMapping | нет | Сопоставляет результаты успешного выполнения скрипта с метаданными на выходном порте. |
|
Мапинг входных данных
Атрибут inputMapping позволяет переопределить настройки узла на основе данных из входящего потока.
Параметры, которые можно переопределить в inputMapping:
script,scriptURL,scriptCharset,interpreter,workingDirectory.
Маппинг выходных данных
outputMapping — это преобразование, которое используется для заполнения потока, передаваемого в нулевой выходной порт узла EXECUTE_SCRIPT. Этот маппинг используется для вывода данных при успешном выполнении графа.
Данные, которые узел может подать на выход:
std_out,err_out,exit_value,err_exception.
Пример. Выполнение скрипта, указанного в файле.
Нужно запустить скрипт и вывести результат его работы в файл. Для этого:
- Поместить узел EXECUTE_SCRIPT на рабочую панель Дизайнера.
- Заполнить атрибуты EXECUTE_SCRIPT в редакторе узла:
| Атрибут | Значение |
|---|---|
| scriptURL | some_directory_name/scriptURL.sh |
| interpreter | sh |
| outputMapping |
|
- Поместить на рабочую область узел FLAT_FILE_WRITER.
- Заполнить атрибуты FLAT_FILE_WRITER в редакторе узла:
| Атрибут | Значение |
|---|---|
| fileURL | dataout_dir/file_name.txt |
- Соединить узлы ребром с метаданными:
| Имя поля | Тип данных |
|---|---|
| stdOut | string |
| errOut | string |
| exitValue | string |
| errException | string |
Используемый скрипт:
echo 'scriptURL'
После запуска графа в файл "dataout_dir/file_name.txt" запишется следующее:
| Имя поля | Значение |
|---|---|
| stdOut | scriptURL |
| errOut | |
| exitValue | exit status: 0 |
| errException |