문제

여기 내 프로세스가 있습니다 :

작업 레이아웃 및 tjava_1 구성

TJAVA_1의 Java 코드를 볼 수 있습니다.파일에서 데이터를 파싱하고 마지막 검색 페이지에 도달하면 값을 true로 설정합니다.이것은 여기에 표시된 것처럼 TLOOP_1의 정지 기준이 될 것입니다.

tloop 구성

Talend 변수를 잘못 취급하고 있습니까?Java 코드의 기준에 도달하면 루프가 실행 중단을 중단하려면 어떻게합니까?

도움이 되었습니까?

해결책

"선언"또는 "반복"값이 필요하지 않습니다. 원하는 것은 true로 평가되는 부울 인 "조건"의 변수이며 루프를 종료하려는 경우 false로 설정됩니다.

모범 사례는 런타임에 또는 하위 작업을 시작할 때 작업에 제공된 실제 컨텍스트에 대한 컨텍스트 변수를 사용하고 단일 작업에서 전역 사용 가능한 변수에 대해 전역 맵을 사용합니다.

이 경우 boolean globalmap 변수를 true로 설정 한 다음 (globalMap.put("loop",true)와 함께 tjava 구성 요소 에서이 작업을 수행하거나 tsetglobalvar 구성 요소를 사용하십시오) tjavarow에서 globalmap 변수를 globalMap.put("loop",false)로 false로 설정할 수 있습니다.

"루프"를 GlobalMap 변수로 사용하려면 TLOOP의 "조건"에서 ((Boolean)globalMap.get("loop"))를 사용할 수 있습니다.

이 작업의 간단한 예제는 다음과 같습니다.

먼저 루프 변수를 최소한 시작하도록 원하는대로 루프 변수를 true로 설정했습니다!

tsetglobalvar 구성

을 누른 다음 WHILL 루프의 상태를 부울 글로벌 변수로 설정합니다.

tloop 구성

그리고 마침내 우리는 무언가를 수행하고 조건부로 전역 변수를 false로 설정하고 루프를 끝내는 Tjava 구성 요소에서 일부 코드를 실행합니다. 루프를 종료합니다.

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