Parent Child Paketler Arası Değişken Paylaşımı

6. July 2012

Merhaba,

Uzun bir aradan sonra yazdığım bu blog yazısında sizlere Parent (Ana) paketten Child (Alt) pakete Package Configuration ile nasıl değişken gönderebileceğimizi ele alacağım.

Bildiğiniz gibi SSIS içerisinde bulunan Execute SSIS Task seçmiş olduğunuz pakete değişken yollama özelliğine sahip değildir. Ancak bazı iş durumları bu tip bir ayarlama yapmanızı gerektirebilir. Genellikle Veri Tabanı içerisinde parametre tablosunda tutulan değişkenlere her iki pakette de erişerek paketlerin aynı parametreyle (Örn: Mali Yıl) çalışmasını sağlayabiliyoruz. Ancak parametre tablosuna sahip olmadığımız durumlarda da (Örneğin aktarım sırasında on the fly bulunan bir değerin varlığı ve bu değeri ayrıca bir yere yazmak istemediğimiz durumlarda) ilk paketten çağırılan pakete değeri değişken olarak yollamak suretiyle bir Package Configuration ile de bunu yapabilmekteyiz.

Öncelikle ana pakette bir değişken yaratıyoruz: İsmi ParentVar olsun ve veritipi de string olsun.

 

Bu yarattığımız değişkenin değerini alttaki pakete yolladıktan sonra değeri alt paket içerisinde tutması için bir adet de alt pakette bir değişken yaratıyoruz. Yine aynı veri tipinde.

 

Ardından alt paket içerisinde control flow'da sağ klik ve "Package Configurations" seçiyoruz, Enable Package Configurations" diyoruz ve açılan sihirbazda aşağıdaki ekrandaki gibi

ConfigurationType kısmında "Parent package variable" seçiyoruz ve "Specify configuration settings directly" diyerek ana pakette verdiğimiz değişkenin ismini tanımlıyoruz. Burada önemli olan değişken isminin birebir aynı olmasıdır. Eğer aynı olmazsa paketiniz çalışma sırasında hata verecektir.

(Meraklısına not: Bu değişkenin bilgisini Environment Variables içerisinde de saklayıp buradan aşağıdaki diğer seçeneği seçerek de ayarlamayı yapabilirsiniz ancak çoklu paketlerin olduğu ortamlarda sistemin environment variable penceresini doldurmak istemeyebilirsiniz.)

 

Next dedikten sonra ana paketteki bu değişkeni alt paketteki hangi değişkenin değerine atayacağımızı belirleriz. Özetle alt paketteki ChildVar'ın Value özelliğini seçeriz ve next, Finish diyerek bu ayarı saklarız.

 

Artık ana paketten "Execute SSIS Task" vasıtasıyla alt paketi çalıştırdığımızda ana paketteki ParentVar'ın değeri alt paketteki ChildVar'ın değeri olarak set edilecek ve alt paket bu değer ile çalıştırılabilecektir.

Control Flow Tasks, Post Operations , ,

Add comment




biuquote
  • Comment
  • Preview
Loading