Bisher habe ich kurz erklärt was Biml ist und wie man ein einfaches DTS Paket mit einem SendMail Task erstellen kann. In diesem Beitrag soll es nun darum gehen, ein einfaches Paket zu erstellen, mit dem Daten aus der AdventureWorks geladen werden und in ein Multicast laufen.
Als erstes wird dafür über das Contextmenue wieder eine neue BimlScript Datei erstellt und eine Connection hinzugefügt. Als Connection verwende ich die OleDb Connection aus dem zweiten Teil dieser Biml Serie.
1: <OleDbConnection Name="AdventureWorks" ConnectionString="Server=.;Initial Catalog=AdventureWorks;Integrated Security=SSPI;Provider=SQLNCLI10"/>
Innerhalb der Tasks Collection füge ich nun einen DataFlow-Task als Container für die SSIS Components hinzu. Diese werden innerhalb des DataFlow-Tasks wiederum im Container Transformations definiert.
1: <Package Name="Biml Sample" AutoCreateConfigurationsType="None" ConstraintMode="Linear">
2: <Tasks>
3: <Dataflow Name="AdventureWorks">
4: <Transformations>
5: ...
6: </Transformations>
7: </Dataflow>
8: </Tasks>
9: </Package>
Für das beschriebene Paket wird nun noch eine OleDbSource und ein Multicast-Task hinzugefügt. Die OleDbSource wird dabei ähnlich wie der im vorherigen Teil beschriebene SendMail Task konfiguriert, in dem die Attribute Name und ConnectionName definiert werden. Hierbei ist wieder darauf zu achten, dass der Wert des ConnectionName Attributes Case Sensitive ausgewertet wird. Die SQL Abfrage für die Datenherkunft wird über das zusätzliche Element “DirectInput” definiert.
1: <OleDbSource Name="PersonContact" ConnectionName="AdventureWorks">
2: <DirectInput>SELECT * FROM [Person].[Contact]</DirectInput>
3: </OleDbSource>
Der nachfolgende Multicast-Task muss nur über das Attribut Name verfügen und wird, sofern im Paket der ConstraintMode mit Linear definiert wurde, automatisch mit der OleDbSource verbunden.
1: <Multicast Name="Multicast" />
Das vollständige Paket kann nun wieder über den BIDS Helper generiert werden.
Download Script: AdventureWorks_Multicast.biml
Wer weitere Informationen zu den Datenflüssen sucht, der findet wieder sehr viele Informationen in der BIML Language Reference. Die einzelnen Elemente die innerhalb des Datenflusses verwendet werden können, sind jedoch ein bisschen versteckt und nur über Package => Tasks => ETL => Transformations zu finden.