[resolved] Replace String tMap with conditions

One Star

[resolved] Replace String tMap with conditions

Hello,
I would like a table in my tMap OTC powering an Libelle column via a condition like: (row1.Chef_de_Site==null)row1.Chef_de_Projet:row1.Chef_de_Site.
But each time it references null me and suddenly my Libelle column is empty.
Thank you in advance.

Accepted Solutions
Community Manager

Re: [resolved] Replace String tMap with conditions

Your test for an empty String is wrong. The "==" operator checks for the same object, not the same value. You need to use something like below to check for both null and an empty String....
row1.Chef_de_Site!=null && row1.Chef_de_Site.trim().compareToIgnoreCase("")!=0  ? row1.Chef_de_Site : row1.Chef_de_Projet
The above test ensures that the column neither holds a null or an empty String. If that is true, then it returns the column. Otherwise it will return the other column. The null is checked first and that is important since if the column is null, none of the methods on the object will work. 
If that produces a blank field try below....
row1.Chef_de_Site!=null && row1.Chef_de_Site.trim().compareToIgnoreCase("")!=0  ? row1.Chef_de_Site : "NOT BLANK"
If that produces a blank, you have another problem somewhere else. If it does not and outputs "NOT BLANK" it means your Chef_de_Projet is blank.

View solution in original post


All Replies
Community Manager

Re: [resolved] Replace String tMap with conditions

There are several things that could be happening here. Here are the things I would check....
1) The command looks wrong, but that could just be how you transferred it from your job to here. It should be...
row1.Chef_de_Site==null ? row1.Chef_de_Projet : row1.Chef_de_Site
2) Are you sure that row1.Chef_de_Site is null and not an empty String ("")?
3) Are you sure that row1.Chef_de_Projet has a value when row1.Chef_de_Site is null?
One Star

Re: [resolved] Replace String tMap with conditions

I also try to do: row1.Chef_de_Site == ""? row1.Chef project: row1.Chef_de_Site but when I test the condition tMap me it shows null.
Yes if Chef_de_Site is empty Chef_de_Projet is necessarily filled, the 2 columns can not be empty and 2 columns can be filled 2 but in this case I want Chef_de_Site.
Community Manager

Re: [resolved] Replace String tMap with conditions

Your test for an empty String is wrong. The "==" operator checks for the same object, not the same value. You need to use something like below to check for both null and an empty String....
row1.Chef_de_Site!=null && row1.Chef_de_Site.trim().compareToIgnoreCase("")!=0  ? row1.Chef_de_Site : row1.Chef_de_Projet
The above test ensures that the column neither holds a null or an empty String. If that is true, then it returns the column. Otherwise it will return the other column. The null is checked first and that is important since if the column is null, none of the methods on the object will work. 
If that produces a blank field try below....
row1.Chef_de_Site!=null && row1.Chef_de_Site.trim().compareToIgnoreCase("")!=0  ? row1.Chef_de_Site : "NOT BLANK"
If that produces a blank, you have another problem somewhere else. If it does not and outputs "NOT BLANK" it means your Chef_de_Projet is blank.

View solution in original post

One Star

Re: [resolved] Replace String tMap with conditions

OK ... The first test of my condition in the tMap put me null when in fact it works without worries

2019 GARTNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

Best Practices for Using Context Variables with Talend – Part 2

Part 2 of a series on Context Variables

Blog

Best Practices for Using Context Variables with Talend – Part 1

Learn how to do cool things with Context Variables

Blog

Migrate Data from one Database to another with one Job using the Dynamic Schema

Find out how to migrate from one database to another using the Dynamic schema

Blog