Wyzwaniem przy korzystaniu z pliku konfiguracyjnego jest konieczność ciągłego modyfikowania pliku. SSIS nie załaduje ponownie pliku konfiguracyjnego po uruchomieniu, więc można sobie wyobrazić zadania o 20:05 i 20:35, które wymieniają pliki konfiguracyjne, ale w pewnym momencie może się to stać bałaganem i zepsuć.
Poradziłbym sobie z tą sytuacją za pomocą zmiennych wiersza poleceń (/set opcja w dtexec ). Jeśli uruchamiasz pakiet z wiersza poleceń, wygląda to mniej więcej tak:dtexec.exe /file MyPackage.dtsx
Nawet jeśli używasz agenta SQL, za kulisami buduje on te argumenty wiersza poleceń.
To podejście zakłada utworzenie dwóch różnych zadań (w przeciwieństwie do 1 zadania zaplanowanego 2x dziennie). AgentMyPackage2011 ma etap zadania SSIS, który skutkuje
dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2011\"
a AgentMyPackage2012 ma etap zadania SSIS, który skutkuje
dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"
W interfejsie graficznym wyglądałoby to mniej więcej
Nie ma GUI ani selektora dla właściwości, którą chcesz skonfigurować. Jednakże, ponieważ już utworzyłeś plik .dtsConfig dla swojego pakietu, otwórz ten plik i poszukaj sekcji, takiej jak
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32">
<ConfiguredValue>2009</ConfiguredValue>
Plik ma już ścieżkę do "rzeczy", którą próbujesz skonfigurować, więc wprowadź ją do swojego programu wywołującego, a następnie wyłącz część konfiguracji pakietu dotyczącą roku.
Na koniec link do Kolejności konfiguracji SSIS ponieważ istnieją różnice w modelu 2005 vs 2008. Widzę, że wskazałeś 2008 w swoim zgłoszeniu, ale dla przyszłych czytelników, jeśli używasz zarówno /SET, jak i źródła konfiguracji (xml, serwer sql, rejestr, zmienna środowiskowa), kolejność operacji różni się w zależności od wersji.