Aracılığıyla paylaş


Hata çıktı Script bileşeni için taklit etme

Doğrudan bir çıktı olarak bir hata çıktı Script bileşenindeki hata satırları otomatik olarak işlenmesi için yapılandıramazsınız rağmen ek bir çıktı oluşturmak ve bu çıktıya uygun olduğunda doğrudan satır komut dosyanızdaki koşullu mantığı kullanarak işlevselliği yerleşik hata çıktı üretebilir.Hata numarasını ve hata oluştuğu sütun kimlik almak için iki ek çıktı sütunları ekleyerek yerleşik hata çıktı davranışını taklit isteyebilirsiniz.

Önceden tanımlanmış bir özel karşılık gelen hata açıklaması eklemek istiyorsanız, Integration Services hata kodu kullanarak GetErrorDescription yöntem, IDTSComponentMetaData100 arabirim, komut dosyası bileşen aracılığıyla ComponentMetaData özellik.

Örnek

Burada gösterilen örnekte, iki zaman uyumlu çıkışlarına sahip dönüştürme olarak yapılandırılan bir komut dosyası bileşeni kullanır.Adres veri hata satırları süzmek için komut dosyası bileşeni amacı budur AdventureWorks2008R2 örnek veritabanı.Biz Kuzey Amerika'daki müşteriler için bir promosyon hazırlıyorsunuz ve Kuzey Amerika'da bulunan adresleri filtre gerekir bu hayali örnek varsayar.

Örnek yapılandırmak için

  1. Yeni Script bileşeni oluşturmadan önce bir Bağlantı Yöneticisi oluşturmak ve yapılandırmak bir veri akışı adres verileri seçer kaynak AdventureWorks2008R2 örnek veritabanı.Bu örnekte, yalnızca aradığı en CountryRegionName sütun, basitçe kullanmak Person.vStateCountryProvinceRegion görünümü veya seçmek veri birleştirerek Person.Address, Person.StateProvince, ve Person.CountryRegion tablolar.

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

  3. Üzerinde Script sayfa, küme ScriptLanguage ö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. De Input0_ProcessInputRow yöntem, yazın veya aşağıda gösterilen örnek kodu yapıştırın.

  6. vsta kapatın.

  7. Üzerinde Giriş sütunları sayfa, komut dosyası dönüştürme içinde işlemek istediğiniz sütunları seçin.Bu örnek, yalnızca kullanır CountryRegionName sütun.Seçili olmayan bırakın kullanılabilir giriş sütunlar yalnızca aracılığıyla veri akışı değişmeden gönderilir.

  8. Üzerinde girdileri ve çıktıları sayfasında, yeni bir ekleme, ikinci çıktı ve küme , SynchronousInputID kimliği değeri olan giriş değeri, SynchronousInputID özellik, varsayılan çıktı.Set ExclusionGroup özellik, her iki çıkışları için aynı sıfır olmayan değer (1 gibi) belirtmek, her satır yöneltilen yalnızca birine iki çıkış verir.Yeni hata çıktı "myerroroutput" gibi farklı bir ad verin.

  9. Çıkış hata kodu, hata oluştuğu sütun ve büyük bir olasılıkla hata açıklaması Kimliğini içerebilir istenen hata bilgileri yakalamak için yeni hata ek çıktı sütunları ekleyin.Bu örnek, yeni sütunlar ErrorColumn ve ErrorMessage oluşturur.Yakalamak, önceden tanımlanmış Integration Services hataları kendi uygulamasında bir ErrorCode eklemek emin olun sütun için hata numarası

  10. Giriş sütun veya komut dosyası bileşeni hata koşulları için denetleyeceği sütunları kimliği değerini not alın.Bu, bu örnek kullanır sütun hata doldurmak için tanımlayıcısütun değer.

  11. Kapat komut dosyası dönüşümü Düzenleyicisi.

  12. Komut dosyası bileşeni çıkışlarına uygun hedeflere iliştirin.Düz dosya hedef ad hoc sınamak için yapılandırmak kolay 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 simgesi (küçük)Integration Services ile güncel kalın

En son karşıdan yüklemeleri, makaleler, örnekler ve videolarını Microsoftyanı olarak seçilen topluluk çözümleri ziyaret Integration Services sayfa msdn veya TechNet:

Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.