Hi everyone, I'm new in Talend, and I'm working with a Main Job and Sub Jobs... in the Sub Jobs I'm using tDie to exit in specific events, and I want to use that to redirect the execution in the Main Job as an IF sentence. An example: Main Job: Run subJob1: -(on subjobOK)-> Run subJob2 -(on subJobError)-> tDie subJob1: - CheckFileOnFTP: -(IF Exist)-> Load into DB -(IF Not Exist)-> tDie So, when I run de Main Job and the file in the FTP doesn't exist, I get a Java Error... even when I handle the existance of the file with tDie. And if I run only the subJob, the error-handle works fine. How can I handle this kind of 'exceptions' with Talend?
If you do want to steer the job chain based on the return code: 1. uncheck the option in the tRunJob Die On Error. 2. If the if-trigger and use here the tRunJob return value CHILD_RETURNCODE (Integer) to decide which tRunJob should called next.
Thank you Jan, Works fine , now I can handle our own return codes in order to be more specific about the messages of ending jobs. But if I use a tPostjob, it will override the Return Code of any tDie and return 1, even when I put a tLogCatcher on the tPostjob. So, how can I get my return codes from a Child Job who have tPostjob?
Hi JSeverino, I raised a Talend Jira about this bug and they claimed it is not a bug. Apparently it is perfectly acceptable for a tDie error code not to be returned to the parent job IF the child job uses a tPostJob. My reaction to that is.....probably not appropriate to be written here. However, I wrote some code which provides a workaround to this. It is described in the Jira which is here: https://jira.talendforge.org/browse/TDI-36963 If you agree that this needs fixing, please comment on the Jira.
Hi, indeed it is a bit weird behaviour the error code does not survive a tPostJob processing. Because if that, I usually have following procedure: I always inspect the globalMap for keys ending with ERROR_MESSAGE and DIE_CODE and take this value as real exist code by setting the member variable this.errorCode.
Hi Richard. Thanks for answer. I'm agree. I use tPostjob for logging status, so I need to keep the final status (in this case given by the tDie component)... By the moment I'll avoid the use of tPostjob.. that's sad because I think is a very useful component