Цикл для Pentaho, где я переопределяю переменную при каждом выполнении - PullRequest
0 голосов
/ 28 июня 2019

У меня есть Excel с 300 строк.Мне нужно использовать каждую из этих строк в качестве имени поля в преобразовании.

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

Я пытался определить переменную как значение, которое у меня есть в одной строкеи преобразование работает.Теперь мне нужен цикл, который получает значение за значением и переопределяет созданную мной переменную, затем выполняет преобразование.Я попытался определить задание, которое имеет следующее:

Start -> Transformation (ExcelFileCopyRowsToResult) -> SetVariables -> Transformation (Transf, который выполняется с использованием любого имени переменной в данный момент).

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

1 Ответ

1 голос
/ 28 июня 2019

Выполнение преобразования для каждой строки в наборе результатов является стандартным способом выполнения действий в PDI. У вас большая часть правильности, но вместо того, чтобы устанавливать переменную (что происходит только один раз в потоке работ), используйте строки результатов напрямую.

Сначала настройте второе преобразование на Выполнить для каждой строки в окне редактирования.

Затем вы можете использовать один из двух способов передачи полей в преобразование, в зависимости от того, что вам удобнее:

  1. Начать преобразование с получения строк из результата. Это должно каждый раз получать по одной строке. Поля будут непосредственно в потоке и могут использоваться как таковые.

  2. Передайте поля как параметры, чтобы их можно было использовать как переменные. Я использую это чаще, но это требует немного больше настроек.

    • Внутри второго преобразования перейдите к свойствам и введите нужные имена переменных на вкладке «Параметры».
    • Сохраните преобразование.
    • В работе откройте окно редактирования преобразования и перейдите в Параметры.
    • Нажмите Получить параметры.
    • Введите имя поля из первого преобразования в поле Имя столбца потока для каждого параметра.
...