Kontakt  Impressum 
 
       Navigationslinks überspringen.   

SSIS: Datei aus dem Internet über HTTP downloaden


Für den Download von Dateien aus dem Internet stellen die SSIS keinen eigenen Task zur Verfügung. Es gibt den FTP-Task und den Task 'Webdienst' in Verbindung mit dem HTTP-Verbindungs-Manager, aber eine Task für einen automatischen Dateidownload ist nicht vorgesehen.

Die einfachste Lösung ist die Verwendung einer Skripttask, in der ein WebClient für den Download verwendet wird. Für die erfolgreiche Ausführung des untenstehenden Programmcodes sind folgende vorbereitende Schritte notwendig:
  1. Internetverbindung mit Zugriff auf die gewünschte Download URL
  2. Zwei Paket-Variable in einem SSIS-Paket anlegen

  3. Paketvariablen

  4. Einen Skripttask in die Ablaufsteuerung ziehen
  5. Die Variablen auf der Seite Skript zuweisen

  6. Zuweisung der Variablen

  7. Den nachfolgenden Programmcode in der Skripttask eingeben (kopieren):
Imports System.Net

Public Class ScriptMain
    Public Sub Main()
        Dim myWebClient As WebClient
        Dim WebUrl As String
        Dim Dateiname As String
        Dim fireagain As Boolean

        Try
            myWebClient = New WebClient()
            ' Variable füllen 
            WebUrl = CStr(Dts.Variables("WebUrl").Value)
            Dateiname = CStr(Dts.Variables("Dateiname").Value)

            ' Ereignismeldung senden (nur zur Information des Anwenders) 

            Dts.Events.FireInformation(0, String.Empty, String.Format _
                 ("Downloading '{0}' from '{1}'", WebUrl, Dateiname), _
                   String.Empty, 0, fireagain)

            ' Download durchführen

            myWebClient.DownloadFile(WebUrl, Dateiname)

            Dts.TaskResult = Dts.Results.Success

        Catch ex As Exception
            ' Fehlermeldung senden

            Dts.Events.FireError(0, String.Empty, ex.Message, String.Empty, 0)
            Dts.TaskResult = Dts.Results.Failure
        End Try
    End Sub

End Class

Dieser Programmcode basiert auf einen Weblog von Ashvini Sharma, dem SSIS Entwicklungsleiter.

Berthold Neumann
19. Mai. 2006

As a craftsman's replica watches in the Rolex brand, the Rolex Sea-made replica watches online is water-resistant to 4,000 feet, while the brand deep-deep watch is waterproof to 12,800 feet. The waterproof rating of the replica watches uk shows the extraordinary results of working with professional divers for decades uk replica watches.