Hello, I'm using Talend 2.2.0 and i have 4 aggregate components i want the output of these four aggregate components to be sent to a tMap component. i want the first aggregate out put to be the main and the 3 others as lookup, the tMap component has to do a lookup on key fields in order to generate one output, this output contains my four measures (look the picture) -calculated by the aggregate components- and the key fields. Once i have this output i have to use an other tMap to do a lookup with the dimension tables already filled in and then the data will be loaded into the fact table. My problem is that when i connect the first tAggregateRow component with the tMap component i cannot then connect the other tAggregateRow components to the tMap component. So what's the problem? is it possible to connect multiple tAggregateRow components to one tMap component?? Note: i was using TOS 2.1.2 and i had the same problem Thanks in advance! Best Regards hamma
Hello, You can't have 2 output of the same component (the tMap) used as input and lookup of a tMap. This is not a bug, cycle are not allowed in jobs. I'm very curious to know what process should lead to such a job. Nevertheless, if you really need it, use temp files or db tables. Regards,
Thanks for the reply but I'm not trying to connect directly the tMap component with the second tMap component, from the first tMap i have four outputs to four tAggregateRow components and i want the output of these last to be sent to the second tMap component (see the picture above). is that possible? i don't see that there is a loop, and what do u mean with loops? Thanks in advance! Best regards. Hamma
Thanks, but i don't think that is a loop, because i think that we have to consider the direction of arrows, so we have a loop when we have the arrows in the same direction drawing a circle. and the link between the tAggregate component and the second tMap (the black line) is from the tAggregate -----> tMap, so i don't think that this is a loop or maybe the definition of loops in Talend is different, thanks to correct me the definition if I'm wrong! Thanks in advance! Best Regards Hamma
Nevertheless how you call it, it' not allowed because tMap needs to load his lookup before the main row. Your first tMap sends data row by row to the four outputs and the second tMap can't load fully his lookup before starting his process. My advice is still to use temporary files or databases. Regards,
I find it more than a little amusing that the two threads explaining why you can't create circular references reference each other. To continue the education of former Ab Initio developers (me), I wanted to know if Talend supports a concept of a phase break. My recollection of AI is that a phase break would be required before rejoining output from the first tMap split. Ab Initio lands the flows temporarily to disk and waits for all data to become available, then proceeds with the merge in the secondary phase. It seems that with Talend we're required to do this temp file landing chore ourselves, but the logic is the same. An intermediate file would be handy here, but we would still require some way to enforce a process blocking until completion. Chris.