tags:

views:

24

answers:

2

I'm writing an SSIS Transformation component. I would like to allow the user to select which input fields he would like to pass-through to the output.

I thought that the SetUsageType() function would control this - it takes an enumeration (DT_READONLY, DT_READWRITE, DT_IGNORED). DT_READONLY is for input-only fields, DT_READWRITE is for input/output fields, and DT_IGNORED is to not carry the field from input to output at all.

However, in my tests, it seems that a synchronous operation will output all of the input fields along with any output fields that I've added. Is this always the case? Is there a way of suppressing certain input fields from being transferred to the output?

It looks like I can do this with an asynchronous, but I was hoping for synchronous.

A: 

Not sure I understand why you would use SSIS for this task but I think you best option would be to output all the rows and then allow the user to pick and simply ignore the ones they elect not to view.

ajdams
This pass-through feature is one small part of a larger component. It is provided as a convenience so that the user wouldn't have to do this extra step after processing with our component.
Marc Bernier
A: 

If I remember correctly, what makes a synchronous task a synchronous task is that it reuses the input buffer as the output buffer only adding columns or changing data in columns or redirecting entire rows. If you really need to remove columns from your flow it looks like an asynchronous task is what you want. In an asynchronous task a new buffer is created.

See: Understanding Synchronous and Asynchronous Transformations

William Todd Salzman
I converted the component last night and this morning with this suspicion, but it's good to know that I didn't waste my time and could have kept the sync'd one.
Marc Bernier

related questions