How can I create my own custom SSIS 2008 SFTP Component?

  • I need help, please.

    One of our internal departments is going from FTP to SFTP. We use SSIS to send a lot of files in their direction, which means I need to switch over to SFTP. Our company does not allow us to use third party tools unless they've licensed them. My boss would like to keep costs down. So I cannot download shareware (WINSCP or Putty whatever) nor can I buy components from Pragmatic Works, etc.

    This leaves me with limited options such as using Powershell (which requires me to move my file from our NAS to our FTP server and then lose control over it) or creating my own custom SSIS component.

    Since I do not want to lose control (i.e., have multiple servers / programs running the file) and to keep this all in SSIS (I want this to be one job without having to jump around checking different things to verify the file sent), that leaves me with creating my own component for SSIS. I know this can be done, but my google-fu keeps pointing me in the direction of third party tools.

    Can someone please point me in the direction of the "How to create custom SSIS components" links and advice on how to create an SFTP component?

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • i've used this open source project several times:

    https://ssissftp.codeplex.com/

    no sense reinventing the wheel, if it's open source, you can rename it, taking care to leave credit where credit is due, and add it to your toolbox.

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • Lowell (4/6/2015)


    i've used this open source project several times:

    https://ssissftp.codeplex.com/

    no sense reinventing the wheel, if it's open source, you can rename it, taking care to leave credit where credit is due, and add it to your toolbox.

    Lowell, as much as I would love to, I can't. It's against company policy. Aside from the licensing issue, the company doesn't want people installing code they don't understand that could 1) potentially be used against the company (i.e., hacking or trojans) and 2) be difficult to maintain. I'm sure there are other reasons, too. Essentially, I have to reinvent the wheel. I have no choice.

    I've tried getting around this before. It was a no-go. Corporate is very strict about this policy. Either we license it properly, or we create it ourselves.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • Brandie Tarvin (4/6/2015)


    Lowell (4/6/2015)


    i've used this open source project several times:

    https://ssissftp.codeplex.com/

    no sense reinventing the wheel, if it's open source, you can rename it, taking care to leave credit where credit is due, and add it to your toolbox.

    Lowell, as much as I would love to, I can't. It's against company policy. Aside from the licensing issue, the company doesn't want people installing code they don't understand that could 1) potentially be used against the company (i.e., hacking or trojans) and 2) be difficult to maintain. I'm sure there are other reasons, too. Essentially, I have to reinvent the wheel. I have no choice.

    I've tried getting around this before. It was a no-go. Corporate is very strict about this policy. Either we license it properly, or we create it ourselves.

    That sucks. I have written 1 SSIS custom component back in 2008-9 time frame for SSIS 2005, but I would bet it hasn't changed much. I used the examples in Professional SQL Server 2005 Integration Services to get started.

  • Jack Corbett (4/6/2015)


    Brandie Tarvin (4/6/2015)


    Lowell (4/6/2015)


    i've used this open source project several times:

    https://ssissftp.codeplex.com/

    no sense reinventing the wheel, if it's open source, you can rename it, taking care to leave credit where credit is due, and add it to your toolbox.

    Lowell, as much as I would love to, I can't. It's against company policy. Aside from the licensing issue, the company doesn't want people installing code they don't understand that could 1) potentially be used against the company (i.e., hacking or trojans) and 2) be difficult to maintain. I'm sure there are other reasons, too. Essentially, I have to reinvent the wheel. I have no choice.

    I've tried getting around this before. It was a no-go. Corporate is very strict about this policy. Either we license it properly, or we create it ourselves.

    That sucks. I have written 1 SSIS custom component back in 2008-9 time frame for SSIS 2005, but I would bet it hasn't changed much. I used the examples in Professional SQL Server 2005 Integration Services to get started.

    Thanks for the reference, Jac. There is a 2008 version of the book that I am going to check out (WROX's chapter list says it contains the same "extending SSIS" chapter as the 2005 version).

    Hopefully that will solve my issue. We'll see how good I get at designing custom components.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • you did see that that project contains the complete source code, so you can compile it yourself, right?

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • Lowell (4/6/2015)


    you did see that that project contains the complete source code, so you can compile it yourself, right?

    Honestly, I didn't even look at it. But since you mention that I can compile it myself, that might be my way around the issue. So long as I can prove to my boss that I understand how each bit of the code is working.

    Thank you for drawing my attention to this, Lowell.

    EDIT: DAMN. Sorry, still can't use it. It's for 2012 and 2014.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • So how does the cost and risk of you doing this compare to purchasing a 3rd party solution?

    Taking a look into that might change the keeping costs down picture.

    Not that you couldn't do it, but we would always do that as a check to justify which path to take.

    Many times a bundle of components also have other nice to have pieces, which also lower the overall cost.

    I came from a similar environment, where corporate approved all software, whether free or purchased.

    So even if it was 'in the budget' for someone, or in some cases already licensed through your EA / MSDN, it still had to be blessed before installation.

    The argument against open source might be somewhat flawed.

    Who will they review your code for security flaws?

    Some open source can have support, which also can be valuable.

    I have confidence that you can come up with something, but your time isn't free either.

    That developer time seems to be an assumption that isn't always considered.

    And Risk can be a wild card. What's your confidence level?

    Sounds like data going over the internet, and they want to tighten things up.

  • Greg Edwards-268690 (4/6/2015)


    The argument against open source might be somewhat flawed.

    Who will they review your code for security flaws?

    Some open source can have support, which also can be valuable.

    That was the other argument corporate had for open source code that I couldn't remember this morning. Security flaws, etc. Thank you for mentioning that.

    I have confidence that you can come up with something, but your time isn't free either.

    That developer time seems to be an assumption that isn't always considered.

    And Risk can be a wild card. What's your confidence level?

    Sounds like data going over the internet, and they want to tighten things up.

    True, true, I need to learn but do I have the time to fiddle?, true.

    Good points all. I've also asked my boss to consider budgeting for Pragmatic Works' Task Workflow thingee, but he didn't give me a yes or no answer.

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • there's an older 2008 version here, which can be compiled:

    SSIS SFTP Task v1.5 for SQL Server 2008

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • as i remember it, pragmatic works is around 1500 bux, which would save you weeks of self development anyway.

    certainly a good option, in my opinion.

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • Lowell (4/6/2015)


    there's an older 2008 version here, which can be compiled:

    SSIS SFTP Task v1.5 for SQL Server 2008

    I appreciate the link, but it won't open in the version of BIDS that I'm using. Apparently it was created in a version of Visual Studio that is after mine. Given that I believe I have the last version of 2008 available, I'm thinking it was built in VS 2010 or 2012. @=(

    Checking for updates to VS / BIDS anyway...

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

  • So I have a copy of Visual Studio 2012 now (YAY!) and have opened the older version of the package. Now I get to learn more C# as I try and decipher this code.

    Can someone help me out with this little snippet?

    namespace SSISSFTPTask110.SSIS

    {

    [DtsTask(

    DisplayName = "SFTP Task",

    UITypeName = "SSISSFTPTask110.SSISSFTTaskUIInterface" +

    ",SSISSFTPTask110," +

    "Version=2.0.0.30," +

    "Culture=Neutral," +

    "PublicKeyToken=f7871de73e053501",

    IconResource = "SSISSFTPTask110.sftp.ico",

    TaskContact = "cosmin.vlasiu@gmail.com",

    RequiredProductLevel = DTSProductLevel.None

    )]

    }

    So this is at the start. I get that the UITypeName is the namespace dot task name. What I don't get is what Culture is, how the TaskContact property works (is that just the email of the guy who developed it?) and how I get the PublicKeyToken?

    So what does "culture" mean? I've seen several references to it, and the links I've looked at seem to assume I know what it is because they tell me how to use it, not the intro material on it.

    And it seems wrong to me to use the PublicKeyToken that's listed in the script. I get the feeling I should be looking at something locally (I don't know what) and finding the PublicKeyToken for that to put in the script.

    Thoughts?

    Brandie Tarvin, MCITP Database AdministratorLiveJournal Blog: http://brandietarvin.livejournal.com/[/url]On LinkedIn!, Google+, and Twitter.Freelance Writer: ShadowrunLatchkeys: Nevermore, Latchkeys: The Bootleg War, and Latchkeys: Roscoes in the Night are now available on Nook and Kindle.

Viewing 13 posts - 1 through 13 (of 13 total)

You must be logged in to reply to this topic. Login to reply