tfilterrow advanced mode code completion

One Star

tfilterrow advanced mode code completion

I am using a tfilterrow with out4 from a tmap as the input source to the tfilterrow. I have entered the following filtering options.
input_row.SOURCE.equals("CSWS.AECC") ||
input_row.SINK.equals("CSWS.AECC") ||
input_row.SOURCE.startsWith("AECC.") ||
input_row.SINK.startsWith("AECC.")
The source code contains the following after it is generated by Talend
out4.SOURCE.equals("CSWS.AECC")||
out4.SINK.equals("CSWS.AECC")||
out4.SOURCE.startsWith("AECC.")||
out4.SINK.startsWith("AECC.")
I get an error that states out4.SOURCE cannot be resolved or is not a field.

I have other jobs that use the same exact advanced filter options that are not re-written by the Talend code generator and they work. The filters need to be
input_row.SOURCE.equals("CSWS.AECC") ||
input_row.SINK.equals("CSWS.AECC") ||
input_row.SOURCE.startsWith("AECC.") ||
input_row.SINK.startsWith("AECC.")
Is this a bug? How do I overcome this issue?
RG
Community Manager

Re: tfilterrow advanced mode code completion

Hello
out4.SOURCE.equals("CSWS.AECC")||
out4.SINK.equals("CSWS.AECC")||
out4.SOURCE.startsWith("AECC.")||
out4.SINK.startsWith("AECC.")

The code generated by Talend is ok, did you try close the job and open again?
Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: tfilterrow advanced mode code completion

Yes I have closed the job and this did not "fix" the issue. I have compl;etely shut down Talend and restarted the program and the issue remains.
Why does Talend generate the code differently now. I have several other jobs using the same filtering options and Talend did not "re-write" the code to use "out4.source" instead of "input_row.source".
My other jobs work flawlessly using "input_row.source". I started experiencing this issue after I upgraded to open studio 4.
One Star

Re: tfilterrow advanced mode code completion

I gave up on trying to fix the old job and recreated it. It works now - and Talend generated the code exactly as it did before in the previous versions using
input_row.SOURCE.equals("CSWS.AECC") ||
input_row.SINK.equals("CSWS.AECC") ||
input_row.SOURCE.startsWith("AECC.") ||
input_row.SINK.startsWith("AECC.")

There is a bug related to replacing/modifying the tfilterrow component and the code generation.
Thanks again,
RG
One Star

Re: tfilterrow advanced mode code completion

Same song second verse - The code that Talend Open Studio is generating will not work and its the same issue - but this timedeleteing the job and starting over is not the solution. The code below is what is being generated.
out4.SOURCE.equals("CSWS.AECC")||
out4.SINK.equals("CSWS.AECC")||
out4.SOURCE.startsWith("AECC.")||
out4.SINK.startsWith("AECC.")

This code is what is needed for the filter row to workl
input_row.SOURCE.equals("CSWS.AECC") ||
input_row.SINK.equals("CSWS.AECC") ||
input_row.SOURCE.startsWith("AECC.") ||
input_row.SINK.startsWith("AECC.")
Why does Talend insist on generating this code that doesn't work? What am I doing wrong?
Community Manager

Re: tfilterrow advanced mode code completion

Hello
Which version of TOS do you use? I am using TOS4.0.1 and it works fine.
The generated code should be:
out4.SOURCE.equals("CSWS.AECC")||
out4.SINK.equals("CSWS.AECC")||
out4.SOURCE.startsWith("AECC.")||
out4.SINK.startsWith("AECC."),
If you still have problem, please export your job and send it to me via email.
Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business