Daniel Wilson
asked on
SSIS custom task: Property is not getting value
We have developed a custom SSIS task to ... do some proprietary stuff.
It has a bunch of public properties, including
< _
Bindable(True), _
Category("Email"), Description("URL ...")> _
Public Property EmailWebServiceURL() As String
Get
Return sEmailWebServiceURL
End Get
Set(ByVal value As String)
sEmailWebServiceURL = value
End Set
End Property
The Validate routine checks that this property is set:
If Active Then
If EmailWebServiceURL = vbNullString Then
componentEvents.FireError( 0, "Email Web Service Task", "You must provide the URL of the EmailWebService", vbNullString, 0)
Return DTSExecResult.Failure
End If
'go validate more stuff
end if
In our development environments, this works fine. But on our test environment, the package that calls this component is getting the error above -- "You must provide the URL ..."
Same component, same package.
As shown in the attached picture, the properties are being set from user variables.
On the TEST environment, we have traced the SQL statement that retrieves the value for the variable. Rerunning that statement yields the value we expect.
What could be causing this problem?
Thanks!
SendMailProperties.GIF
It has a bunch of public properties, including
< _
Bindable(True), _
Category("Email"), Description("URL ...")> _
Public Property EmailWebServiceURL() As String
Get
Return sEmailWebServiceURL
End Get
Set(ByVal value As String)
sEmailWebServiceURL = value
End Set
End Property
The Validate routine checks that this property is set:
If Active Then
If EmailWebServiceURL = vbNullString Then
componentEvents.FireError(
Return DTSExecResult.Failure
End If
'go validate more stuff
end if
In our development environments, this works fine. But on our test environment, the package that calls this component is getting the error above -- "You must provide the URL ..."
Same component, same package.
As shown in the attached picture, the properties are being set from user variables.
On the TEST environment, we have traced the SQL statement that retrieves the value for the variable. Rerunning that statement yields the value we expect.
What could be causing this problem?
Thanks!
SendMailProperties.GIF
ASKER
ASKER
Oops, hit Submit too soon.
>>are there any other processes which could change the value?
Yeah, in the Package Configurations.
On the TEST environment (the one that's failing), we have traced the SQL statement that retrieves the value for the variable. Rerunning that statement yields the value we expect.
packageConfigWizard.GIF
>>are there any other processes which could change the value?
Yeah, in the Package Configurations.
On the TEST environment (the one that's failing), we have traced the SQL statement that retrieves the value for the variable. Rerunning that statement yields the value we expect.
packageConfigWizard.GIF
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Perfect! Glad you got it.
ASKER
No, I haven't got it!
I know where the data are supposed to be coming from ... and the data are there! But this element is not getting into the property.
Once we get to our TEST environment, we can't use most of our regular tools to troubleshoot. Looks like your Option 1 or similar may be our only choice ... but if you can think of anything that would CAUSE this, that would be good as our promotion process to get a revised package to TEST will eat a week and a half.
Thanks!
I know where the data are supposed to be coming from ... and the data are there! But this element is not getting into the property.
Once we get to our TEST environment, we can't use most of our regular tools to troubleshoot. Looks like your Option 1 or similar may be our only choice ... but if you can think of anything that would CAUSE this, that would be good as our promotion process to get a revised package to TEST will eat a week and a half.
Thanks!
Just verify the Configuration table exists on the Test database, same Connection Manager name as was used in Dev.
ASKER
yeah, that's been verified.
We've even pointed the TEST SSIS packages at the DEV database instance to rule out such a data issue. The TEST SSIS package fails even looking at the DEV DB. Conversely, DEV SSIS packages succeed when looking at the TESt DB.
We get success when the custom component is installed somewhere other than TEST.
We get failure when the custom component is installed on TEST.
And the DB at which it looks is independent of that.
A couple guys have been suggesting rights issues ... but since the custom component is instantiated I find that one hard to believe.
Further ideas?
Thanks!
We've even pointed the TEST SSIS packages at the DEV database instance to rule out such a data issue. The TEST SSIS package fails even looking at the DEV DB. Conversely, DEV SSIS packages succeed when looking at the TESt DB.
We get success when the custom component is installed somewhere other than TEST.
We get failure when the custom component is installed on TEST.
And the DB at which it looks is independent of that.
A couple guys have been suggesting rights issues ... but since the custom component is instantiated I find that one hard to believe.
Further ideas?
Thanks!
Assumptions:
1. The connection manager used for the Configuration is pointed where you think it is.
2. The user running the package has access to the Schema on the configuration database.
3. If you put a msgbox in the form to display the URL, the data for the URL will NOT be there because the problem is in the configuraiton.
Ideas:
1. Put an Execute SQL Task in the package and select the URL from the configuration table. Use the same connection manager used by the Configuration. Select the value and put it into another variable. Put a msgbox to display that value.
1. The connection manager used for the Configuration is pointed where you think it is.
2. The user running the package has access to the Schema on the configuration database.
3. If you put a msgbox in the form to display the URL, the data for the URL will NOT be there because the problem is in the configuraiton.
Ideas:
1. Put an Execute SQL Task in the package and select the URL from the configuration table. Use the same connection manager used by the Configuration. Select the value and put it into another variable. Put a msgbox to display that value.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Curious, can you explain more about losing the Expressions? What does that mean?
ASKER
We got an admin to put Visual Studio on the Test server. It took long enough to figure out ... but eventually we saw that if you click on the task, go to Properties, and expand Expressions -- they were empty.
The first screenshot I posted shows how it looks on our workstations and on the DEV clusters.
The first screenshot I posted shows how it looks on our workstations and on the DEV clusters.
ASKER
Daniel, you have to remove the "close" request to award points. Choose Multiple Solutions.
Thanks, Hogg
Thanks, Hogg
The obvious answer is the variable User::EmailWebServiceURL has no value. How is this variable populated? If it is defined at design time, are there any other processes which could change the value?
Also check your script logic. How is this working? Any way it could be looking for something "server based"? sEmailWebServiceURL = value