SQL Server Integration Services als Datenquelle für Reporting Services (Teil 2)

Nachdem ich die Möglichkeit hatte mit einem Produktmanager von Reporting Services zu sprechen, weiß ich nun auch, was der Grund dafür ist, dass SSIS bei “default” nicht freigeschaltet ist: “Security reasons”. Da wir aber in einem geschlossenen Umfeld und unter strikter Beachtung der Sicherheitsbestimmungen davon ausgehen können, dass wir durch unser Tun kein Sicherheitsloch entstehen lassen, habe ich mich dazu entschlossen, meinem letzten Blogeintrag einen weiteren Eintrag folgen zu lassen.

Ordentlich wie Microsoft ist, haben Sie auch die entsprechende Konfiguration der *.config Dateien dokumentiert –> siehe https://msdn.microsoft.com/en-us/library/ms345250.aspx

Dieser Eintrag wird sich damit beschäftigen, wie Sie die bestehende Verbindung zu SSIS parametrisieren können (mit einem einfachen Parameter – kein multivalue Parameter). Normalerweise stellt das in einer geschlossenen Reporting Service Umgebung bei Verwendung des SQL Servers kein Problem dar, da Sie den Parameter direkt in der Abfrage mit einfügen können – z. B.

Select ProductID, [Name] as ProductName, ProductNumber from Production.Product  where ProductSubCategoryID = @ProductSubCategoryID

Leider ist die Verwendung von Parametern innerhalb eines Berichts mit SSIS als Datasource nicht ganz so einfach, da der Parameter zuerst in dem SSIS Paket definiert und anschließend dem Paket übergeben werden muss.

Bei der folgenden Schritt-für-Schritt Anleitung baue ich wieder auf das Beispiel aus meinem letzten Blogeintrag auf.

  1. Dazu öffnen Sie bitte die Solution, die Sie auf Basis des letzten Blogeintrags erstellt haben.

  2. Wechseln Sie dann in das entsprechende SSIS Paket und öffnen Sie die Dataflow Taks.

  3. Öffnen Sie danach die Datasource und fügen Sie als Query folgendes ein:

    SELECT        ProductID, Name AS ProductName, ProductNumber
    FROM            Production.Product
    WHERE        (ProductSubcategoryID = ?)

    Das Fragezeichen repräsentiert in diesem Beispiel den ersten Parameter.
    image

  4. Nachdem Sie die die Abfrage eingegeben haben, müssen Sie noch den Parameter einer Variablen des SSIS Pakets zuweisen. Dazu klicken Sie auf die “Parameters…”-Schaltfläche und geben Sie in dem darauf folgenden Dialog einen sinnvollen Namen für den Parameter ein (damit Sie ihn von anderen Parametern unterscheiden können).
    image
    Anschließend wählen Sie unter “Variables” den Wert “<New Variable>” aus.
    image
    Beachten Sie bitte, dass Sie für numerische Werte einen Standardwert eingeben müssen.

 

="/file c:\FarmBillTesting.dtsx /Set \Package.Variables[User::FilterValue].Properties[Value];" & Parameters!FilterValue.Value.ToString()

 

Wenn die Variable NULL Werte unterstützt, so müssen Sie dies in eine entsprechende Expression einbauen:

ISNULL( @[User::ReportDate] ) ? GETDATE() : @[User::ReportDate]