2016-02-05 11 views
0

Это кажется довольно простым вопросом, но я не мог найти прямой вопрос.Knime - Как использовать ввод и вывод пути как переменную

Сценарий У меня есть worflow в Knime, который считывает файл (Excel), процессы и выходы на несколько файлов. Входные файлы и выходной файл находятся в одной папке, а другая - в другой папке, кроме той, где находится поток knimework.

Я хочу запустить этот поток в нескольких разных папках. Каждая папка имеет один и тот же файл ввода, и выходные файлы всегда будут иметь одинаковое имя. Теперь мне нужно изменить manuallly путь к папке в каждом узле ввода/вывода для каждой отдельной папки.

Возможное решение Переменная с указанием пути к папке. Чтобы запустить рабочий процесс в другой папке, я бы изменил только эту переменную. Это возможно в колене? Как?

ответ

1

Вы можете использовать узел Java Edit Variable для добавления одного и того же имени файла в переменную потока, содержащую путь к фактической папке (как для входных, так и для выходных файлов).

Не знаете, как вы хотели бы изменить входные папки, в случае, если вы сделали это вручную, вы можете использовать узлы QuickForms для выбора (из Лаборатории для обернутых узлов). Для нескольких папок внутри папки вы можете использовать узел List Files.

Чтобы задать параметры с использованием переменных потока, сначала необходимо указать для них значение, после чего вы можете указать adjust the values на вкладке «Переменные» каждого узла.

+0

Я создал переменную worfflow с именем «PATH» с указанием пути к папке. И попытался использовать его в качестве XLS_Locationa в переменных потока узла XLS Reader. Но не получилось. Примечание. Я являюсь основным пользователем knime .... – saxo

+0

Вам нужно использовать узел «Редактировать переменную Java» с кодом, подобным этому: 'out_xlsPath = c_PATH +" /yourExcelFile.xls ";' для создания которая соответствует пути вашего xls-файла, а не его папки. Теперь вы можете использовать эту переменную потока в узле XLS Reader. –

0

Решение

XLS Reader узел не может использовать переменную в качестве входных данных (diferrent из CSV импортера, к примеру). Итак, я выбираю входной файл вручную и передаю XLSLocation как переменную в Java Edit Variable. Здесь я подставляю путь к входному файлу и объединяю имя выходных файлов. Они выводятся как переменная, которая затем используется на выходных узлах.

+0

Не только CSV Importer, но и _every_ node (с изменяемыми настройками) можно настроить с помощью вкладки переменных потока, а не только те, у которых есть специальная кнопка для нее на вкладке обычных настроек. –

+0

Но как это можно сделать? Использование специального синтаксиса? – saxo

+0

Нет, ничего особенного. Вам необходимо создать переменную потока так же, как в вашем решении (например, с помощью Редактирования Java Edit), перейдите на вкладку «Переменные потока» узла XLS Reader и выберите из раскрывающегося меню, кроме опции «XLS_LOCATION», переменную потока, которую вы имеете создано. (Обратите внимание, что переменная потока ожидает путь, а не URI, если это ожидаемый CSV Importer.) Вам нужно подключить переменную потока к узлу XLS Reader, используя красную линию (как вы можете видеть, что во многих примерах) , –