Komut dosyası bileşeni için bir hata çıktı benzetme

Hata satırları otomatik olarak işlenmesi için Kod bileşenindeki bir hata çıktı olarak bir çıkış doğrudan yapılandıramıyor ancak, ek bir çıktı oluşturmak ve komut doğrudan satırlara uygun olduğunda, bu çıktı için koşullu bir mantık kullanarak bir yerleşik hata çıktı işlevselliğini yeniden oluşturabilirsiniz.Hata numarasını ve bir hata oluştuğu sütun KIMLIĞINI almak için iki ek çıktı sütunu ekleyerek bir yerleşik hata çıktı davranışını Benzet isteyebilirsiniz.

Önceden tanımlanmış belirli bir karşılık gelen hata açıklamasını eklemek isterseniz Integration Services hata kodu, kullanabileceğiniz GetErrorDescription(Int32) yöntem IDTSComponentMetaData100 arabirim, komut dosyası bileşen kullanılabilir ComponentMetaData() özellik.

Örnek

Burada gösterilen örnekte, iki eşzamanlı çıkışlarını olan dönüştürme yapılandırılmış bir komut dosyası bileşeni kullanır.AdventureWorks örnek veritabanındaki verilerden adresi hata satırları süzmek için komut dosyası bileşeni amacı olur.Hayali Bu örnek, size bir yükseltme Kuzey Amerika'daki müşteriler için hazırlama ve Kuzey Amerika'da bulunan adresleri filtre gerek varsayar.

Örnek yapılandırmak için

  1. Yeni komut dosyası bileşeni oluşturmadan önce Bağlantı Yöneticisi oluşturmak ve örnek AdventureWorks veritabanındaki adres verileri seçer ve veri akışı bir kaynak'ı yapılandırın.Örneğin, yalnızca CountryRegionName sütun arar, bu Person.vStateCountryProvinceRegion görünümü yalnızca kullanabilirsiniz veya Person.Address Person.StateProvince ve Person.CountryRegion tabloları birleştirerek veri seçebilirsiniz.

  2. Yeni bir komut dosyası bileşeni için veri akışı Tasarımcısı yüzey ekleyin ve dönüştürme yapılandırın.Açık Komut dosyası dönüştürme Düzenleyicisi.

  3. Üzerinde Komut dosyası sayfa kümeScriptLanguage özellik için komut dosyası kodu için kullanmak istediğiniz komut dosyası dili.

  4. Click Edit Script to open Microsoft Visual Studio Tools for Applications (VSTA).

  5. Içinde Input0_ProcessInputRow yöntem, aşağıda gösterilen örnek kodu yapıştırın veya yazın.

  6. VSTA kapatın.

  7. Üzerinde Giriş bir sütun sayfa, komut dosyası dönüştürme işlemek istediğiniz sütunları seçin.Bu örnekte, yalnızca CountryRegionName sütununu kullanır.Seçilmemiş olarak bırakın ve giriş kullanılabilir sütunlar yalnızca üzerinden veri akışında değişmeden gönderilir.

  8. Üzerinde Giriş ve çıkışlarını sayfasında, yeni bir ikinci çıkış eklemek ve ayarlamak, SynchronousInputID Kimliği değeri olan giriş değeri, SynchronousInputID Varsayılan çıkış özellik. küme ExclusionGroup Her bir satır iki çıkışlarını yalnızca biri yönlendirilirsiniz olduğunu belirtmek için aynı (örneğin, 1) sıfır olmayan değer her iki çıkışlarını özellik. Yeni hata çıktı "MyErrorOutput." gibi farklı bir ad verin.

  9. Ek çıktı sütunları çıkış KIMLIĞI sütun, hatanın oluştuğu ve büyük bir olasılıkla hata açıklaması hata kodu içerebilir istenen hata bilgileri yakalamak için yeni hata ekleyin.Bu örnek, yeni sütunlar ErrorColumn ve ErrorMessage oluşturur.Yakalama, önceden tanımlanmış. Integration Services uygulamasında kendi hataları hata numarası için bir HataKodu sütun eklemek dikkat edin.

  10. Giriş sütun veya sütunları, komut dosyası bileşen hata koşulları için denetleyecek ID değeri not alın.Bu örnekte bu sütun kimliği ErrorColumn değer doldurmak için kullanır.

  11. Kapatma Script Editor dönüştürme.

  12. Komut dosyası bileşen çıkışlarını uygun hedefe iliştirin.Düz dosya hedefleri, kolay ad hoc sınama için yapılandırılacak olan.

  13. paket çalıştırın.

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

  If Row.CountryRegionName <> "Canada" _
      And Row.CountryRegionName <> "United States" Then

    Row.ErrorColumn = 68 ' ID of CountryRegionName column
    Row.ErrorMessage = "Address is not in North America."
    Row.DirectRowToMyErrorOutput()

  Else

    Row.DirectRowToOutput0()

  End If

End Sub
public override void Input0_ProcessInputRow(Input0Buffer Row)
{

  if (Row.CountryRegionName!="Canada"&&Row.CountryRegionName!="United States")

  {
    Row.ErrorColumn = 68; // ID of CountryRegionName column
    Row.ErrorMessage = "Address is not in North America.";
    Row.DirectRowToMyErrorOutput();

  }
  else
  {

    Row.DirectRowToOutput0();

  }

}
Integration Services icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.