SSIS FTP Task Variable Remote Path invalid
I am working on the SSIS FTP Task that transfer file from one FTP server to local location, rename the file name, and finally transfer the renamed file to another FTP server. So I defined 2 FTP tasks.
For the FTP file receive operation, I need the remote path to be updated by a script and pass to the user define variable. So I set TRUE to IsRemotePathVariable. In the RemoteVariable, I set User::FTPSourcePath where the variable is set in the script with "/DMFTP/filename1.jpg"
For the FTP file send operation, I set TRUE to IsRemotePathVariable. In the RemoteVariable, I set User::FTPDestPath where the variable is set in the script with "/DestFTP/"
After all the setting, the FTP Task box show me the error as "Variable "FTPSourcePath" doesn't start with "/". Another FTP box show me "Variable "FTPDestPath" doesn't start with "/"
Can anyone help me on this problem?? Thanks.
June 17th, 2006 8:10am
Did you try escaping the '/' with something like this?
"//DestFTP//"
-Walter
Free Windows Admin Tool Kit Click here and download it now
June 19th, 2006 12:22am
Since you set the variable in a script task, and the value is only available during execution - set DelayValidation property of the FTP task to true.
June 19th, 2006 1:33am
i'm at my wits end with this FTP task problem and need some really reliable advice, please! I don't know if this should be another thread or not but here it is...
I'm doing a simple FTP delete file command using FTP task.
I'm connecting from a windows to a unix box. Creating a FTPConectionMgr and testing connection is successful.
I'm aware that when i'm logged into the server, i'm taken by default to my '/home/user/' directory.
i put in the full path to the file i want to delete ie. /Dev/2.0/Extracts/W.XYZ
When i run the package, it gives me the File Represented by/Dev/2.0/Extracts/W.XYZ does not exist.
If i log into the unix box using ftp.exe i don't have any problem.
Why?
Fyi, i've tried entering the path with '//' and also '////' but doesn't work. What should the path convention be?
Free Windows Admin Tool Kit Click here and download it now
July 5th, 2006 9:16am
Sigh. I tried using a 3rd party tool from IP*Works for ftp process and it works without problems. I can't use it for in my project due to business requirements, so i'm stuck writing my own ftp scripts.
Is there some reason why a smaller company can get ftp working right and microsoft can't?
July 10th, 2006 6:42am
Setting this value gets you through validation, but still fails at execution time.
Is this a known bug? I basically have a variabled dated file that I need to grab and load everyday.. I am populating my variable with the following and it works fine. SELECT '//'+replace(CONVERT(varchar(10), GETDATE(), 121),'-','')+'accounting_log.txt.pgp' AS DatedFileName
I have my remote path set as variable, but it continues to complain here is the output.
===================================
Package Validation Error (Package Validation Error)
===================================
Error at FTP Daily Transaction File [FTP Task]: Variable "DatedFileName" doesn't start with "/".
Error at FTP Daily Transaction File: There were errors during task validation.
(Microsoft.DataTransformationServices.VsIntegration)
------------------------------Program Location:
at Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger(Int32 flags, DataWarehouseProjectManager manager, IOutputWindow outputWindow, DataTransformationsProjectConfigurationOptions options) at Microsoft.DataTransformationServices.Project.DtsPackagesFolderProjectFeature.ExecuteTaskOrPackage(ProjectItem prjItem, String taskPath)
Free Windows Admin Tool Kit Click here and download it now
July 28th, 2006 11:29pm
Is anyone from Microsoft going to suggest a fix for this? This seems to be a bug becasue the "/" has been supplied. The solution above is not a solution since it only bypasses the validation phase, but it still fails at runtime. I can live with it being a bug, becasue I know it will be worked and solved in the future.
August 11th, 2006 3:31pm
Enzoe,
I had the same issue going against the Unix FTP site to attempt to delete files and so I wrote a little function in C# library that I use from a script task to accomplish what I want. You could probably do this inline to a script task but it would not be reusable.
public static void FtpDeleteFiles(ScriptObjectModel dts, string connectionName, string[] remoteFiles){ ConnectionManager mgr = dts.Connections[connectionName]; FtpClientConnection conn = new FtpClientConnection(mgr.AcquireConnection(null)); if (conn != null) { conn.Connect(); try { conn.DeleteFiles(remoteFiles); } finally { conn.Close(); } }}
This allows me to create the FTP connection and configure it through the normal SSIS methods and then invoke the FTP process from those connections myself. There are some area's to improve on so that if the connection is NULL an exception is thrown or logged and maybe return a boolean.
Pretty simple...
Fred
Free Windows Admin Tool Kit Click here and download it now
August 11th, 2006 9:58pm
You are dynamically populating the variable - so its value in unknown until execution. Obviously this package can't be validated until the variable value is set by the previous task, this is why DelayValidate exists and should be used in this case. There is no bug here.
If the package fails at execution time - check that the variable is assigned correct value, use the breakpoints and Watch window.
August 11th, 2006 10:23pm
Michael, i've tried entering a fully qualified path and it doesn't work.
I've tried delaying validation and it doesn't work.
If there are some 'special' way of using the FTP task, it should be made known either in the designer or in BOL. Otherwise, the task should work as would be generally expected, as per basic rules of user usability.
Anyway, i've given up on the FTP Task. I wrote my own assembly to perform the task.
Free Windows Admin Tool Kit Click here and download it now
August 12th, 2006 4:24am
Enzoe, I am encountering the same error and unable to use the FTP task to recieve a dated file (For example, File_Name_mmddyyyy.txt.pgp) via FTP in my SSISpackage. I started looking for the solution to this error last week and after seeing your response, it looks like I will have to do the same thing you did. Could you throw some light on how you achieved this?
I would really appreciate, if you can help and pass the sample code.
Thanks.
August 14th, 2006 6:51pm
Look above and there is some sample code to achieve this. This is a bug specific to Unix FTP servers and the SSIS FTP task only.
Fred
Free Windows Admin Tool Kit Click here and download it now
August 15th, 2006 2:56am
Would you PLEASE fix this Microsoft? The FTP Taskis totally useless when trying to Delete remote files on a Unix FTP server. I notice there was a bug submitted for this but it was closed as "could not repro". Please help!
August 17th, 2006 6:37pm
I am having the same problem. This is a bug. I can ftp the file using almost any other utility including the Microsoft client. This killed my timeline.
Free Windows Admin Tool Kit Click here and download it now
December 27th, 2006 9:58pm
lcj wrote:I am having the same problem. This is a bug. I can ftp the file using almost any other utility including the Microsoft client. This killed my timeline.There is a new Connect bug already formed. The one referenced in this thread was closed... You may vote for it if you wish. In doing so, please be sure to provide constructive comments for Microsoft and others to see.http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=126207
December 27th, 2006 10:14pm
I disagree. What was overlooked is the case when LIST/NLST operations are restricted on the host/by the admin. This is especially true when security requirements are high, e.g. market data providers, financial firms, etc, whose clients are granted access only to specific files. In such cases, shell command capability is highly restricted. To test...ftp into a site and try running "dir" or "ls". If the operation fails with "You are not permitted to perform LST (or NLST) operations", then the SSIS FTP task will fail even though you can still run "get" at the command line on a file by file basis (without being able to see them or list them off).
The FTP Task should've been a little more robust, considering all the lovely quasi-freeware clients out there. It should at least allow a single (path-free) file to be specified. Better...a command/execute parm so users have command line flexibility with custom commands like mget *.txt.
Looks like some here might need to go back to shelling out to the command line (via yet another task) to either run a third-party ftp client or usea cmd/batch file containing ftp -s:FileWithFreelyVisibleCredentials.txt, as in the 2000/DTS days.
Free Windows Admin Tool Kit Click here and download it now
September 5th, 2007 10:36pm
jjeffrey wrote:
I disagree.
You disagree with who? Please use the quote feature to help tie your response to the parent post you are responding to.
September 5th, 2007 10:51pm
I disagree with Michael Entin on the IS team who writes "There is no bug here" (...I thought clicking on the "Reply" button next to the post would do all the clever quoting for me. Sorry.)
New at this, and quite vexed. First, lack of (default)PASV mode at the OS/cmd level was problematic w/ a variety of unix host vendors. I was delighted to see them add a PASV switch to the SSIS ftp task, only to learn how mickey mousethe task nowis.To go one step further, I wrote an SSISscript (task)a la .Net 2.0 FTPWebRequest, FTPWebResponse, etc and I get the same problems because the use of ftp://IPaddressOrSitehere/ syntax is enforced ...which attempts to enumerate (LIST/NLST) the files.
So, if LIST/NLST perms are restricted/disabled on the host, the SSIS FTP task fails.
Now, considering a very large chunk of "ETL" is "extract" from files that are frequently downloaded via *FTP*, it would behoove MS to rethink this task and provide a hotfix. Or allow ftp://IPAddressOrSitehere/MyFile.txt syntax for single file downloads.
Free Windows Admin Tool Kit Click here and download it now
September 6th, 2007 1:18am
[Microsoft follow-up]
September 6th, 2007 6:02am
The bug on not able to delete file from Unix server is fixed in up coming cumulative update for SQL Server 2005.
Free Windows Admin Tool Kit Click here and download it now
September 11th, 2007 7:32pm
Cho Yeung - msft wrote:
The bug on not able to delete file from Unix server is fixed in up coming cumulative update for SQL Server 2005.
Right, well, there is more than just the "delete" from Unix server issue with the FTP task.
September 11th, 2007 8:40pm
We periodically review all the connect bugs user have filed and plan any changes accordingly. If this is a new problem, please file a connect bug with as much repro information and any suggestion you may have.
Free Windows Admin Tool Kit Click here and download it now
September 15th, 2007 1:05am
I've also had this problem with the RemotePathVariable - FTP task, I've tried everything I could imagine and by mistake I've wrote something ("/") in the value filed of myVariablePath (Variables window) and guess what it's working.... I think during execution it was just checking for a value in that filed and after that it doesn't matter if you change your variable in a script task, that's what I do... Honestly I don't have an explanation for it, but after all the hours I've spent on this issue I don't need one anymore.....
March 2nd, 2009 2:17pm
I've also had this problem with the RemotePathVariable - FTP task, I've tried everything I could imagine and by mistake I've wrote something ("/") in the value filed of myVariablePath (Variables window) and guess what it's working.... I think during execution it was just checking for a value in that filed and after that it doesn't matter if you change your variable in a script task, that's what I do... Honestly I don't have an explanation for it, but after all the hours I've spent on this issue I don't need one anymore.....
yes u r correct i think there is no bug at all its all about reference path for eg if u want to upload file in root directory use " / " withou quotes if file is in directory A then use "/A/" without quotes . this works well for me
Free Windows Admin Tool Kit Click here and download it now
May 1st, 2009 5:46am
I am having the same problem.... Did you ever findout how to do this...
Does SSIS 2008 work?Mr Shaw
October 27th, 2010 6:31pm
I had this problem, I had to set the EvaluateAsExpression property of the variable to true
Free Windows Admin Tool Kit Click here and download it now
November 19th, 2011 9:42am