Uploaded image for project: 'Talend Component Kit'
  1. Talend Component Kit
  2. TCOMP-190

make Output components handle rejection and main output data with different schemas

Apply templateInsert Lucidchart Diagram
    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.12.0
    • None
    • None
    • None
    • All
    • Small

    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

          Activity

            People

              rskraba Ryan Skraba
              rskraba Ryan Skraba
              Ryan Skraba
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: