Berdasarkan informasi yang disajikan, Anda melakukan semuanya dengan benar. Jika Anda baru mengenal SSIS, satu hal yang saya sarankan, adalah Anda mendapatkan salinan add-in yang sangat baik BIDSHelper . Ini memiliki fitur hebat yang benar-benar dapat menghemat waktu Anda terutama yang berkaitan dengan konfigurasi dan ekspresi.
Saya membuat paket referensi yang memiliki Manajer Koneksi Excel yang menunjuk ke C:\ssisdata\so_paulsmithjr.xls
dan menghubungkan semuanya.
Pada titik ini, saya tahu semuanya berfungsi, jadi sudah waktunya untuk memindahkan paket. Saya membuat variabel berikut dan nilainya
- File Saat Ini - C:\ssisdata\so_paulsmithjr.xls
- PlaceHolder - ##FILE_PATH##
- TemplateConnection -
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=##FILE_PATH##;Extended Properties="Excel 8.0;HDR=YES";
Variabel keempat diatur menjadi ekspresi (Klik kanan pada variabel, jendela properti. Atur Evaluasi sebagai Ekspresi =Benar &Ekspresi di bawah)
- Koneksi Saat Ini -
REPLACE(@[User::TemplateConnection], @[User::PlaceHolder], @[User::CurrentFile])
Saya membandingkan nilai CurrentConnection dengan ReferenceConnection (yang merupakan nilai asli dari string koneksi Manajer Koneksi Excel) dan semuanya cocok. Pada titik ini, jika saya mengubah nilai CurrentFile ke C:\ssisdata\so_paulsmithjr - Copy.xls, itu akan secara otomatis tercermin dalam nilai CurrentConnection.
Trik terakhir adalah menggunakan Expression pada Excel Connection Manager. Sekali lagi, klik kanan pada CM dan di bawah Properties, akan ada Expressions. Itu tidak akan mengembang karena tidak ada apa-apa di bawahnya. Sebagai gantinya klik elips lalu pilih properti ConnectionString dan pilih elips lagi dan kali ini seret ke bawah @[User::CurrentFile]
variabel. Klik OK x2 dan sekarang manajer koneksi Anda disetel untuk digunakan di mana pun ditentukan oleh variabel CurrentConnection.
Apakah itu bekerja lebih baik?