Showing posts with label component. Show all posts
Showing posts with label component. Show all posts

Wednesday, March 7, 2012

Change "Output Alias" on synchronous component programatically

Wanted to enquire how this is done. Tried doing it in the setUsageType method I have overwritten but only allows description to be changed. Basically need to change "Name".

Best option would be to change it instantly when a user selects a column from the inputs in the custom component, ie. it changes the Output Alias to a desired value. (Input tab in advanced editor)

All this is being done in a custom component which I would like to be synchronous, can achieve a similar result asynchronously.

Thanks

Not relaly sure if this can be done, as there is no output column, just the upstream input column which has already been named. If you select the column, then can you not change the IDTSInputColumn90 name in SetUsageType? What happens? The other thing to try would be to change the name property on the IDTSVirtualInputColumn90, can you?

You do not really have an output alias. When you see this in the stock UIs it is because you are creating a new output column, which is not what you appear to be doing.

|||

If you change the name is setUsageType you see a change in debug mode but eventually it does not change the column name (strangely description can be changed however), basically change is ignored. When I change the Output Alias in the gui advanced designer (non programatically) it does not create a new output column in the output column tab listing but does successfully change the alias and column name, which is basically the result I want. Have been able to achieve the change with a new output column and asynchronous component but wanted to do it synchronously. Also figured it could be done programatically due to the fact you can do it non-programatically in the gui advanced editor.

Thanks, will try the virtual column thing.

Friday, February 10, 2012

Cast @[System::StartTime] Problem

This is a Subject Expression I put in my Mail component in my SSIS 2005 package but it's not liking the StartTime concatenation. I tried other ways but can't get it to allow this:

"Process Started by : " + @.[System::UserName] + (DT_DATE) @.[System::StartTime]

I get the error:

TITLE: Expression Builder

Expression cannot be evaluated.


ADDITIONAL INFORMATION:

The data types "DT_WSTR" and "DT_DATE" are incompatible for binary operator "+". The operand types could not be implicitly cast into compatible types for the operation. To perform this operation, one or both operands need to be explicitly cast with a cast operator.

Attempt to set the result type of binary operation ""Process Started by : " + @.[System::UserName] + (DT_DATE)@.[System::StartTime]" failed with error code 0xC0047080.

I tried to use CAST() but not sure if that's allowed or the syntax for it specifically in SSIS 2005

As the error message says, you cannot concatenate DT_WSTR & DT_DATE. Try:

"Process Started by : " + @.[System::UserName] + (DT_WSTR) @.[System::StartTime]

-Jamie