Bagaimana cara saya melanjutkan setelah gagal dalam SSIS


12

Saya ingin menerapkan sesuatu seperti berikut: masukkan deskripsi gambar di sini

Dalam paket ini, saya ingin mengulang daftar nama basis data, secara dinamis mengubah pengaturan koneksi manajer.

Namun, kegagalan pertama pada "Uji Koneksi" akan berhenti dan gagal eksekusi paket.

Tapi saya ingin melanjutkan loop Foreach saya. Saya memahami bahwa ini harus dimungkinkan (jika tidak, apa gunanya panah merah gagal ini?)

Hal yang saya coba antara lain mengacaukan "MaximumErrorCount".

Jawaban:


12

Untuk menjawab pertanyaan saat saya menanyakannya, dimungkinkan untuk melanjutkan setelah kegagalan dengan memastikan bahwa MaximumErrorCount bernilai nol untuk tugas dan wadah induknya ... Dalam hal ini berarti tugas "Tes Koneksi", wadah "foreach" dan paket itu sendiri.

Saya akhirnya melakukan sesuatu yang berbeda. Dan Jamie Thomson Memverifikasi Koneksi Sebelum Menggunakannya sangat membantu di sini. Inilah yang saya lakukan:

Saya mengganti tugas Koneksi Tes dengan tugas skrip. Tugas skrip hampir persis seperti skrip Jamie kecuali saya

  • hanya menggunakan satu manajer koneksi, tidak semuanya,
  • hasil tugas selalu sukses
  • dan saya menetapkan variabel baru "Pengguna :: ConnectionSucceeded" ke hasil tes koneksi.

Saya juga mengubah panah yang keluar dari tugas koneksi tes untuk mengevaluasi ekspresi, mereka mengevaluasi:

  • @ [Pengguna :: ConnectionSucceed] == Benar
  • @ [Pengguna :: ConnectionSucceed] == Salah

masing-masing.

Saya juga harus ingat untuk mengedit beberapa batasan yang masuk ke tugas "Perbarui LastMonitored". Saya mengubahnya untuk menggunakan logis "ATAU".

Seperti apa paket SSIS saya sekarang: paket baru


1

Cara mudah ...

Klik dua kali pada Precedence Constraint (The green line) setelah tugas "Test Connection". Anda akan melihat "Opsi kendala", klik pada daftar drop-down "Nilai" dan pilih "Penyelesaian". Ini memberitahu paket Anda untuk terus berjalan setelah tugas selesai terlepas jika gagal.

Catatan: Jangan mengubah daftar turun bawah "Operasi evaluasi" dari "Kendala" kecuali jika Anda ingin menambahkan Ekspresi untuk dievaluasi setelah tugas selesai. Juga pertahankan batasannya di "Logical AND."

Semoga ini membantu.

Menggunakan batasan prioritas


Kendala yang didahulukan ditetapkan untuk "Sukses" dengan sengaja. Selain itu, mengubahnya menjadi "Penyelesaian" tidak menjawab pertanyaan yang saya ajukan atau tugas yang saya hadapi. Jika "Uji Koneksi" gagal, ini masih menghentikan eksekusi paket.
Michael J Swart

Begitu banyak halaman yang dibaca hingga akhirnya menemukan jawaban ini! Terima kasih!
alexkovelsky
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.