사용자가 만든 job meta 테이블에 job에 대한 실행정보를 넣어두고 해당 row를 읽어서 명령을 실행시키고자할때 command를 실행시킬 필요가 있습니다.
사용할 component는 System에 있는 tSystem 이고,
입력항목들은 다음과 같습니다.
항목은
ㅇUse Home Directory : 실행하는 home directory 지정
ㅇUse Single Command : 실행명령
ㅇUse Array Command : 실행명령을 여러개 입력하고자할때
지금까지가 기초이고 meta테이블에서 실행명령어를 받아와서 실행하고자 할때 어떻게 구성하는지 설명하도록 하겠습니다.
tb_job이라는 테이블에 job에 대한 실행위치, 실행명령어를 넣어두었다고 하고,
간단히 생각하면 다음과 같이 구성할수 있다.
Input에는
"select jobid, exec_home_dir, exec_command, exec_param, exec_logfile, exec_jobname from tb_job where jobid in ( 6 );" 와 같이 입력해서 job에대한 정보를 가져옴
--> exec_command에는 "sh dim_charge_info_run.sh" 입력
tSystem_1에는
"cmd /c echo " + ((String)globalMap.get("row1.exec_command"))
라고 해서 실행시켜보면 null이 나와서 의도와는 다르다.
이를 해결하려면 Flow와 Iterate를 구분해야하는데 input에 대한 결과는 Flow이고 tSystem_1에서는 Flow를 받아서 처리를 할 수가 없고 Iterate는 가능하다.
그래서 중간에 tFlowToIterate를 추가해서 해결할 수 있다.
위와 같이 처리하면
tSystem_2에서
"cmd /c echo " + ((String)globalMap.get("row3.exec_command"))
라고 하면 원하는 출력을 얻을 수 있다.