Как закончить TLOOP, когда достигнуты желаемые критерии

StackOverflow https://stackoverflow.com//questions/25041657

  •  21-12-2019
  •  | 
  •  

Вопрос

Вот мой процесс:

Работа, и конфигурация TJAVA_1

Вы можете увидеть код Java в TJAVA_1.Он разобрал данные из файла, и если оно достигло последней страницы поиска, она установит значение true.Это должно быть критериями стоп для TLoop_1, как показано здесь:

TLOOP Конфигурация

Я занимаюсь неправильными переменными Talend?Как я могу остановить цикл бегать, как только я достиг критериев в моем коде Java?

Это было полезно?

Решение

Вам не нужна «декларация» или значения «итерации». То, что вы хотите, это вариабельная в «состоянии», которая является логией, которая оценивает true и устанавливается на false, когда вы хотите заканчивать цикл.

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

Так что в этом случае вы должны инициализировать переменную Boolean GlobalMap для True (вы можете сделать это в компоненте TJAVA с globalMap.put("loop",true) или использовать компонент TJAVALVAR), а затем в вашей Tjavarow вы можете установить переменную GlobalMap в false с globalMap.put("loop",false).

Если вы должны были использовать «LOOP» в качестве вашей переменной GlobalMap, то вы использовали ((Boolean)globalMap.get("loop")) в вашем «состоянии» в TLOOP.

Орабоченный простой пример этого может выглядеть следующее:

, пока макет задания цикла

Сначала мы устанавливаем переменную петли для true, поскольку мы хотим, по крайней мере, начать!

Tetglobalvar Конфигурация

, а затем мы устанавливаем состояние цикла во время логической глобальной переменной:

Tloop Конфигурация

А затем, наконец, мы запустим какой-то код в компоненте TJAVA, который делает что-то и условно устанавливает глобальную переменную в false, заканчивая контуром:

if (((Integer)globalMap.get("tLoop_2_CURRENT_ITERATION")) == 3) {
    globalMap.put("loop", false);
} else {
    System.out.println(((Integer)globalMap.get("tLoop_2_CURRENT_ITERATION")));
};
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top