Этот ответ состоит из 2 разделов
Создание цикла с tJava
Повторное неудачное подключение к источнику данных 5 раз (с добавлением tJavaFlex )
___________________________________
РАЗДЕЛ 1: Создание цикла с помощью tJava
-----------------------------------------------------------
Я просто пишу компонент tJava, а затем перебираю в false.Вот так
Шаг 1: создать контекстную переменную
Шаг 2: напишите некоторый код Java в tJava (tJava1)
// setting loop flag
context.continueLooping = true;
//log.info("Starting job...");
, затем подключите On Component Ok
Шаг 3: Создайте tLoop
в условии цикла, поместите ваш контекст context.continueLooping
, который должен быть истинным на первой итерации.
затем итерация
до следующего tJava (tJava2)
if ( ((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) == 1)
{
// code
}
else if(((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) == 2)
{
// code
}
else if (((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) == 3)
{
// code
}
else if (((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) == 4)
{
// code
}
else if (((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) == 5)
{
// code
context.continueLooping = false;
// log.info("DONE");
}
else
{
context.continueLooping = false;
// log.error("out of bounds...");
}
этот tJava выполняет разные коды для каждой итерациипока он не достигнет 5, я использую эту область для подсчета материала и загрузки значения в другие контексты и многое другое.
Затем он запускает часть гнезда n раз, пока значение контекста не становится равным false.
___________________________
РАЗДЕЛ 2: ДЛЯ ПОВТОРИТЬ Сбой соединения
___________________________
, если вам необходимо повторить попытку подключения к БД.
добавить tJavaFlex между tLoop1 и tJava2 следующим образом:
и добавить следующий код в 3 раздела Start:
// start part of your Java code
try{
Main:
// here is the main part of the component,
// a piece of code executed in the row
// loop
if ( ((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) > 1)
{
Thread.sleep(10000);
}
Конец:
// end of the component, outside/closing the loop
}catch (Exception e) {
if ( ((Integer)globalMap.get("tLoop_1_CURRENT_ITERATION")) > 5)
{
context.continueLooping = false;
}
else
{
System.out.println("Connection failed. Retrying...next");
}
}
и добавьте On Component Ok
tJava
с кодом, чтобы прекратить зацикливание при успехе (tJava3)
context.continueLooping = false;