Pipeline variables show up as carryover from previous lines, unless they are dropped. The only exception, as you noted, is that the final line will include the output variables.
Prior to that, you need to define the variable and immediately assign a value to it, even if it is a null value. That will keep it active in the pipeline.
Also note, the the developer assumes linear processing in terms of dropping variables. If you drop a variable in the first result of a branch, then the other branches will no longer show it, even though at runtime the first branch might be skipped and the variables would actually still be in the pipeline. In this case, you must again explicitly add the variable.
Adding a variable to the “Pipeline In” and mapping it to something will also keep it in the pipeline.
#Flow-and-Java-services#Integration-Server-and-ESB#webMethods