Gotcha: IS4.6 Flow Engine Ignores Transformers

It took us some time to identify this, so I thought I’d share it.

The IS4.6 Flow Engine will ignore (i.e. not process) Transformers in a Map step, if no outputs are mapped from the transformer step.

Where it was causing us problems was with Database Connections. We initiate several dbConnections, in a map step (using the pub.db:connect as a Transformer), to reduce the number of steps in our flow.
When the flow is complete, we close all of the dbConnections in a single Map step (using the pub.db:close as a Transformer). Since we didn’t really care about the $dbMessages, we didn’t explicitly map them, and as a result, the Flow Engine was not closing the database connections. Eventually we received error messages from Oracle indicating that we’d exceeded the maximum number of connections.

The solution is to explicitly map at least one output from everything you call in a transformer, even if you don’t require it in the pipeline.