I have listed down some of the common differences between tJava, tJavaRow and tJavaFlex component.
|Use component to integrate your custom Java code||Yes||Yes||Yes|
|It will be executed first but only once in the subjob.||Yes||No||–|
|It requires Input Flow||No||Yes||No|
|It Requires Output Flow||No||If output Schema Defined||If output Schema Defined|
|It can be used as Start of the Job||Yes||No||Yes|
|It can be used as a separate subjob||Yes||No||Yes|
|It accepts Main Flow or Iterator Flow||Both||Only Main||Both|
|It has three Java code parts (start, main, end)||No||No||Yes|
|It will Auto propagate Data||No||No||Yes|
tJava advantage: this component can be use as trigger component, At start of the job at end of the job.
tJavaRow : this component required main flow so it can be used at end of the Sub Job but not at the start of subjob.
tJavaFlex: this component holds capabilities of tJava & tJavaRows you can use this component for row generation, or at start of job, or at then end of sub job. or individual subjob. It gives you ability to auto propagate data.