Description
To remain feature-compatible with the "old" tSalesforceOutput, we need to be able for it to supply outgoing connections to the next component (both main and reject).
Our current implementation relies on the fact that outgoing records must be identical to incoming records, so the Studio just copies it off of the incoming connection and supplies it to the outgoing connection. Outgoing reject records are constructed from the incoming record along with additional information in a DataRejectedException.
Unfortunately, it's a useful use case for the outgoing record to have a different schema (i.e., it includes information discovered during the write).
We need a mechanism to provide the set of outgoing main/rejected records with additional information at the time the record was written. Currently the write() method does not have a way to return anything to pass to the next component. (In fact, the DataRejectedException is a mechanism for the write to have a return value with error information).
We'll make this explicit by having an special interface for output components that aren't exclusively "Sink" implementations. They'll continue to implement the Sink interface but provide a way to get at records to pass onto next components, and we'll use this interface instead of the DataRejectedException.
Attachments
Issue Links
- prerequisite of
-
TCOMP-183 Output components can't return fields value which are different from Input schema
- Closed