2017-12-13 35 views
0

나는 (완전히 데이터 통합을위한 순전히 Talend 있지만 ESB.) Talend ESB에 새로운 완전히 브랜드 Talend ESB에 완전히 새로운 해요 말했다되고 그건

, 나는 시계 간단한 경로를 구축하기 위해 노력하고있어 특정 파일 경로와 그것에 드롭 된 파일의 파일 이름을 가져옵니다. 그런 다음 파일 이름을 childjob (cTalendJob)에 전달하고 자식 작업이 파일에 대해 작업을 수행합니다.

디렉토리를 볼 수 있으며 파일 이름 자체와 System.out.println 파일 이름을 얻을 수 있습니다. 그러나 나는 그것을 자식 직업으로 '전달'하는 것처럼 보이지 않는다. 실행되면 무한 루프가됩니다. enter image description here

도움이 매우 감사합니다.

+0

또한 이것이 ESB 밖에서도 얻을 수 있지만 확장 성 및 작업 분리를 위해 ESB가 사용 사례에 적합하다는 것을 알았습니다. – RoflWaffle17

답변

0

Talend 작업에 컨텍스트 매개 변수를 추가 한 다음 매개 변수에 할당하여 경로를 작업으로 전달해야합니다. 필자의 예에서는 "Param"이라는 매개 변수를 내 작업에 추가했습니다. cTalendJob의 Context Param보기에서 + 버튼을 클릭하고 사용 가능한 매개 변수 목록에서 선택하고 값을 지정합니다.

enter image description here

는 그런 다음 파일 이름을 사용하도록 하위 작업에 context.Param을 할 수 있습니다.

+0

먼저 응답 해 주셔서 감사합니다. 그러나, 내 문제는 디렉터리에 파일이 여러 개있을 것이며 위의 그림과 같이 Param의 "값"을 동적으로 설정해야합니다. 나는 cProcessor 'context.body = ((String) exchange.getIn(). getHeader ("CamelFileName"));'에서 다음을 통해 파일 이름을가집니다. 그런 다음 xml 태그로 감싸려고합니다. 'context.FileHandle = " + context.body +" "자식 작업에서 나는 단지 'System.out.println (context.body);'을 사용하지 않으려 고한다. – RoflWaffle17

+0

하지만 내가 간다면 tRouteInput ("body"스키마 포함)에서 tLogRow로 바로 이동하면 파일 이름이 아닌 파일의 내용이 튀어 나옵니다. – RoflWaffle17

+0

출력으로 가져옵니다. [tLogRowImage] (https : // imgur .com/9VAAt9u) – RoflWaffle17