none
API einbinden in die Skriptkomponente Version 2008R2 RRS feed

  • Frage

  • Hallo Zusammen,

    ich möchte per API Zugriff (C#) auf Webdaten Zugriff erhalten und diese abziehen. Wenn ich das Ganze aufbaue im Microsoft Visual Studio 2010 funktioniert das auch einwandfrei und ich bekomme die gewünschten Ergebnisse angezeigt.

    Allerdings bekomme ich das im SSIS in der Skriptkomponente einfach nicht hin. Ich habe schon viele Beispiele gefunden, aber leider nichts in Bezug auf das Web/eine API sondern nur auf Datenbankebene.

    Ich kann die Verbindung im Verbindungsmanger der Skriptkomponente erfolgreich herstellen, komme aber einfach nicht drauf wie ich diese danach in den Code einbinde.

    Über ein Beispiel oder einen Tip bin ich sehr Dankbar.

    Viele Grüße

    Freddi


    Dienstag, 23. April 2013 06:49

Alle Antworten

  • komme aber einfach nicht drauf wie ich diese danach in den Code einbinde.

    Hallo Freddi,

    die Scripit Komponente als Data Source funktioniert eigentlich denkbar einfach. In den Eigenschaften der Komponente definierst Du unter "Inputs and Outputs" die Ausgabespalten mit Namen und Typ, ich habe hier mal nur eine Spalte angelegt:

    Im Script hast Du dann einen OutputBuffer zur Verfügung, der "in etwa" dem Namen der Ausgabe aus dem Screenshot oben entspricht, hier also "Ausgabe0Buffer". Der funktioniert wie ein Stack, man fügt einfach eine neue Zeile hinzu und weist die Werte für die einzelnen Spalten zu, das erfolgt in der Methode "CreateNewOutputRows", also als Beispiel:

    using System;
    using System.Data;
    using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
    using Microsoft.SqlServer.Dts.Runtime.Wrapper;
    
    [Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
    public class ScriptMain : UserComponent
    {
       
        public override void CreateNewOutputRows()
        {
    
            Ausgabe0Buffer.AddRow();
            Ausgabe0Buffer.MyID = 1;
    
            Ausgabe0Buffer.AddRow();
            Ausgabe0Buffer.MyID = 2;
    
            Ausgabe0Buffer.AddRow();
            Ausgabe0Buffer.MyID = 3;
        }
    }

    Die Ausgabe sind hier also 3 Datensätze. Genau so (ähnlich) kannst Du es mit Deinem Zugriff auf dem Webservice machen: Daten abrufen, durch iterieren und die Daten in den OutputBuffer schreiben.


    Olaf Helper

    Blog Xing

    Mittwoch, 24. April 2013 18:28