One Star

tMap innerjoin using expression filter on lookup table wrong evaluated

Hi
We are using a lookup to match a operative system against a reference source. We are using TIS4.1 but the example is the same for TOS. Example data is:
Main Stream:
First Name Last name
Hans Müller
.....
Lookup Stream
Hans E. Müller
Peter Müller
....
Now we use a inner join on last name. Additionally we use a expression filter on the input side in the lookup table saying: Lookup_Stream.First_Name.contains(Main_Stream.First_Name)
a) If we now use the inner join with "Uniq match" it happens that Talend first matches Hans Müller => Peter Müller, only after this happend it then applies the filter and finds the row is not matching and sends it to the inner join reject.
b) If we use inner join with "all rows" what happens is: it matches Hans Müller => Hans E. Müller and Hans Müller => Peter Müller. The first match passes the expression filter and is sent to the normal output. The second match doesn't match the criterion of the expression filter and ends up in the inner join reject => data duplication of the input stream is the result
In my opinion the filter criterion on the lookup table should be evaluated as integral part of the join which would lead using the "Uniq Match" to the right result as it would compare both combinations with the expression filter and choose the last matching one. But it looks the join is done and only after this the filter is applied leading to wrong results. Like this it looks like it is impossible to use some softmatch criterias.
Is there a work around for my scenario?
Thanks
Cheers
Petr
1 REPLY
One Star

Re: tMap innerjoin using expression filter on lookup table wrong evaluated

Hi Petr
What do you mean "The first match passes the expression filter and is sent to the normal output" in b? You may encounter a bug...
Could you show me the screenshot of tMap and the result you want?
In fact, filter is before inner join in tMap.
Regards,
Pedro