Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
According to a few tests I performed it seems to be the case, but I couldn't find the information in the manual and I would feel better if my feeling was confirmed.
Typically in the example from the picture tJava_1 is executed first, then tJava_2 is executed, and ultimately tJava3 is executed after the 10s sleep fro the tJava2. If I chain several subjobs with an OnSubjobOk after tJava2, tJava3 still seems to be the last component executed. Can I consider this is a guaranteed behaviour ?
Hi
Yes, this is a guaranteed behaviour, if you look into the generated Java code, you will see the execution code of tJava2 is inside the execution range of tJava1. see below, tJava_2Process(globalMap) is the execution entry of tJava2.
/**
* [tJava_1 end ] start
*/
currentComponent="tJava_1";
ok_Hash.put("tJava_1", true);
end_Hash.put("tJava_1", System.currentTimeMillis());
if (true) {
tJava_2Process(globalMap);
}
/**
* [tJava_1 end ] stop
*/
Regards
Shong
Hi, what is the condition of your run if ?
Send me love and kudos
Hi
Yes, this is a guaranteed behaviour, if you look into the generated Java code, you will see the execution code of tJava2 is inside the execution range of tJava1. see below, tJava_2Process(globalMap) is the execution entry of tJava2.
/**
* [tJava_1 end ] start
*/
currentComponent="tJava_1";
ok_Hash.put("tJava_1", true);
end_Hash.put("tJava_1", System.currentTimeMillis());
if (true) {
tJava_2Process(globalMap);
}
/**
* [tJava_1 end ] stop
*/
Regards
Shong
Indeed. Thanks !
Hi Jeremy,
Thank you for your answer. In my example I used a simple "true" since the purpose was to check Talend's behavior when the condition is met. That being said, I don't think the content of the condition really matters. I mean, if the condition is met you'll enter that path of execution and Talend's behavior won't differ depending on the expression that returned true in the run if condition. Will it ?