Strona domowa Elizy, Michała i Blanki
Michał różne
Strona główna > Różne > 
Jak zrobić warunkowe uruchamianie procesów w SSIS.

SSIS (SQL Server Integrated Services) to potężne narzędzie MSSQL2005 będące godnym następcą poczciwych Data Transformation Services z wersji MSSQL2000.

Projektując nowe DTS’y dochodziłem do sytuacji, kiedy brakowało mi logiki wykonywania poszczególnych kroków transformacji danych. Nie raz chciałoby się wykonać jakiś kod dopiero po spełnieniu warunku i najlepiej, żeby ładnie to wyglądało w nowym GUI jaki daje nam SQL Server Business Intelligence Development Studio.

Da się to zrobić i nawet nie jest skomplikowane.
- tworzymy warunek logiczny (kwerendę, która zwraca na przykład springi „tak” lub „nie”)
- tworzymy zmienną globalną (najprościej pusty string)
- kojarzymy wynik kwerendy ze zmienną
- interpretujemy zmienną i w zależności od jej wartości wykonujemy inne procesy

Poniżej zaprezentuję prosty przykład warunku T/N. Nic jednak nie stoi na przeszkodzie, żeby warunek miał więcej wartości do interpretacji.

Zaczynamy od stworzenia warunku. Korzystamy z elementu (Execute SQL Task). Umieszczamy na naszym diagramie.

Tworzenie warunku w diagramie SSIS

Korzystając z menu SSIS->Variables tworzymy zmienną globalną wynik, zadeklarowaną jako pusty string.

Tworzenie zmiennej globalnej w SSIS

Uzupełniamy teraz nasz warunek logiczny. W tym przykładzie posłużymy się kwerendą, która bada parzystość danego miesiąca.

Konfigurowanie warunku w diagramie SSIS

Kwerendę możemy podać w polu SQLStatement właściwości z zakładki General.


select
 cast
(
  case
   when month(getdate())%2 = 0    
   then 'tak'
   else 'nie'
  end
 as char(3)
) as czyMiesiacParzysty


Tworzenie kwerendy w SSIS

Pamiętamy, żeby ustawić ResultSet na wartość SingleRow.

Kojarzymy kwerendę ze zmienną. Robimy to w zakładce Result Set.

Kojarzenie zmiennej i kwerendy warunkowej w SSIS

Teraz tworzymy dwa oddzielne procesy, które będą robiły coś jeśli nasz warunek będzie spełniony lub nie i łączymy ze sobą jak na obrazku.


Łączenie elementow w diagramie SSIS


Klikamy dwukrotnie na zielonej strzałce i uzupełniamy opcje, podając wyrażenie warunkowe.

Tworzenie wyrażenia logicznego w SSIS

Jedna z naszych strzałek będzie przyjmowała wartości „tak” a druga wartości „nie”.
Warto dodatkowo, we właściwościach każdej ze strzałek nadać opis (Description) i zaznaczyć żeby się pokazał na diagramie (ShowAnnotation).

Właściwości strzałek w diagramie SSIS


Teraz wystarczy uruchomić nasz DTS i zobaczyć czy obecny miesiąc jest parzysty czy nie. Ja uruchamiałem w maju więc dostałem taki wynik.

Przykład uruchomienia warunku logicznego w SSIS.

Przykłąd uruchomienia warunku logicznego w diagramie SSIS

Nic nie stoi na przeszkodzie, żeby sprawdzić drugą gałązkę naszego schematu, zmieniając nieco kwerendę, odwracając na przykład logikę zapytania z

month(getdate())%2 = 0

na

month(getdate())%2 = 1

Zastosowanie takiego warunku pozwala na większe możliwości w projektowaniu algorytmu.
Miłego projektowania.

Michał Majchrzak

 

Tekst czytany (6465) razy.     Data dodania: 2009-05-22 12:58:21    « wróć    


Twój nick *
Twój komentarz *
Aby wysłać formularz wpisz hasło z obrazka *
 

Wszystkie prawa zastrzeżone. Projekt i wykonanie Michał i Eliza

Blanka logo