tJava vs tJavaRow vs tJavaFlex

tJava tJavaRow tJavaFlex
We can integrate custom Java code Use component to integrate your custom Java code Use component to integrate your custom Java code
It will be executed first but only once in the subjob. It will be executed for each row in the subjob.
It doesnot requires Input Flow It requires Input Flow It doesnot requires Input Flow
It does not requires output Flow If output Schema Defined If output Schema Defined
It can be used as Start of the Job It can not be used as Start of the Job It can be used as Start of the Job
It can be used as a separate subjob It cannot be used as a separate subjob It can be used as a separate subjob
It accepts Main Flow and Iterator Flow It accepts only Main Flow It accepts Main Flow and Iterator Flow
It has only the main part of the code It has only the main part of the code It has three Java code parts (start, main, end)
It will not Auto propagate Data It will not Auto propagate Data It will Auto propagate Data
It applies exclusively to the start part of the generated code of the subjob. The tJavaRow code applies to each and every row of the data getting processed. The tJavaFlex has three Java code parts (start, main, end) that enable you to enter personalized code for different purposes
Common use of tJava include setting global or context variables prior to the main data processing stages and printing logging messages.It is udes to display status message and variables. The tJavaRow component is used as an intermediate component and you are able to access the input flow and transform the data. It allows the execution of arbitrary Java code, and bridges the functionality of tJava and tJavaRow.
It will be executed first but only once in the subjob. The Java code inserted through the tJavaRow will be executed for each row. The Start code is executed prior to any rows being processed, so it is used to initialize the variables.The start part will be executed first but only once in the subjob.