Understanding how in-flow variables are declared by your ETL tool is important. Probably all of them requires the user to declare the variables in the right orders. But what happens when there is an ordering error in a component of your flow.
You can declare variables in Informatica expression transformations. Talend offers the same functionality with variables in the tMap components. Both tools need that you declare the variables you use that depend on one another in the right order, for example:
is perfectly fine but:
will bring issue. This is totally normal and fine.
The difference between the two ETL tools is that Informatica will validate the mapping with no error, then execute it throught the corresponding workflow also with no error, but as you may imagine
Variable1 will be empty (NULL-valued) during run-time.
Talend will fail the build phase. Hereafter you can see a simple input to output job (corresponding to a mapping in Informatica):
with the content of the tMap (similar to an expression transformation in this case):
the build error:
and the error message from the source code:
Informatica is the market leader and has been out here for quite a while, and yet this simple developer mistake is not spotted anywhere from development to run-time. This issue, amongst others, is a reason why Informatica (9.x) is not doing well in a truly CD/CI environment. Any standard programming IDE would also have spotted this issue and the compiler would have failed, just like Talend and the Java compiler.