Как закончить TLOOP, когда достигнуты желаемые критерии
Вопрос
Вот мой процесс:
Вы можете увидеть код Java в TJAVA_1.Он разобрал данные из файла, и если оно достигло последней страницы поиска, она установит значение true.Это должно быть критериями стоп для TLoop_1, как показано здесь:
Я занимаюсь неправильными переменными 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
, поскольку мы хотим, по крайней мере, начать!
, а затем мы устанавливаем состояние цикла во время логической глобальной переменной:
А затем, наконец, мы запустим какой-то код в компоненте 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")));
};
.