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
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.
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
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?
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