Creating a subjob structure with multiple paths from a single source to a single target, as shown in the capture below, is not allowed in the Talend Studio.
As a workaround, you can solve this problem by designing the job in one of the following ways:
Solution 1 consists of doubling the input flow to avoid the flow circle.
Duplicate the input flow part that is composed of tFileInputDelimited_1 and tReplicate_1.
In this job, tFileInputDelimited_2 and tReplicate_2 are a simple copy and paste of tFileInputDelimited_1 and tReplicate_1, thus performing the same processing operation.
This Job design performs the exact same operation and let you get the same result as the unauthorized job described above.
However, if your input flow is complex, contains numerous components, and/or processes large sets of data, you may notice a significant decrease of performance. The reason for this performance issue is that the Job spends twice as much time performing the same processing. Therefore, for complex input flows, you should consider Solution 2, described below.
The second solution works out the output flow part of the Job. The point is to store the result of the first Subjob (input) in a temporary location: either in a file or in memory (cache).
Then read the data in the next Subjob, from the temporary file using a tFileInputDelimited component, or from memory using a tHashInput component.
The job example below caches the result into memory:
In this case:
Solution 2 performs the same operation and provides the same result as the initial unauthorized job.