Share via


Zaman uyumlu dönüşümü Script bileşeni ile oluşturma

Dönüşüm bileşeni veri akışı kullanmak bir Integration Servicesdeğiştirmek ve kaynaktan hedefe geçerken, verileri çözümlemek için paket. Bileşen geçerken her giriş satır ile zaman uyumlu çıkışlarına dönüşümü işler. İle zaman uyumsuz çıkışlarına dönüşümü, işleme tamamlamak için tüm giriş satırları aldı bekler. Bu konuda zaman uyumlu dönüşümü anlatılmaktadır. Zaman uyumsuz dönüşümleri hakkında daha fazla bilgi için bkz: Uyumsuz bir dönüşümü Script bileşeni ile oluşturma. Senkron ve asenkron bileşenleri arasındaki fark hakkında daha fazla bilgi için bkz: Zaman uyumlu ve zaman uyumsuz dönüşümleri anlama.

Script bileşeni genel bakış için bkz: Veri akışı Script bileşeni ile genişletme.

Script bileşeni ve altyapı kodu sizin için oluşturduğu önemli ölçüde bir özel veri akışı bileşen geliştirme sürecini kolaylaştırmak. Ancak, Script bileşeni nasıl çalıştığını anlamak için Tarih bölümünde özel veri akışı bileşen geliştirme konusunda izlemeniz gereken adımları okumak yararlı Bir özel veri akışı bileşen geliştirmeve özellikle Zaman uyumlu çıkışlarına ile özel dönüşümü bileşen geliştirme.

Zaman uyumlu dönüşümü bileşeni ile Başlarken

Veri akışı bölmesine bir Script bileşeni eklediğinizde SSIStasarımcı, Script bileşeni türünü seç iletişim kutusu açılır ve bir kaynak, hedef veya dönüşümü bileşeni türünü seçmenizi ister. Bu iletişim kutusunda Dönüşüm.

Meta veri Tasarım modunda bir zaman uyumlu dönüşümü bileşen yapılandırma

Dönüşüm bileşeni oluşturma seçeneği seçtikten sonra bileşeni kullanarak yapılandırdığınız Komut dosyası dönüşümü Düzenleyicisi. Daha fazla bilgi için, bkz. Script bileşeni Script bileşen düzenleyiciyi içinde yapılandırma.

Script bileşeni script dilini ayarlamak için ScriptLanguage özelliği Script sayfası Komut dosyası dönüşümü Düzenleyicisi.

[!NOT]

Varsayılan komut dosyası dili için Script bileşeni için kullanın komut dosyası dili Tarih seçeneği Genel sayfası seçenekleri iletişim kutusu. Daha fazla bilgi için, bkz. Genel sayfa.

Veri akışı dönüşümü bileşeni bir giriş vardır ve bir veya birden çok çıkış destekler. Bileşen kullanarak meta veri Tasarım modunda, tamamlamanız gereken adımlardan biri için giriş ve çıkışlarına yapılandırma Komut dosyası dönüşümü Düzenleyicisi, önce özel kodunuzu yazın.

Giriş sütunlar yapılandırma

Dönüşüm bileşeni bir giriş vardır.

Tarih Giriş sütunlar sayfası Script dönüşümü Düzenleyici, sütun listesi kullanılabilir ters yönde bileşen çıkış sütunlarından veri akışı gösterir. Dönüştürme veya geçmek istediğiniz sütunları seçin. Okuma ve yazma gibi bir yerde dönüştürmek istediğiniz sütunları işaretleyin.

Hakkında daha fazla bilgi için Giriş sütunlar sayfası Komut dosyası dönüşümü Düzenleyicisi, bakın Komut dosyası dönüşümü Düzenleyicisi (giriş sütunlar sayfa).

Giriş, çıkış ve çıktı sütunları yapılandırma

Dönüşüm bileşeni, bir veya birden çok çıkış destekler.

Tarih giriş ve çıkış sayfası Komut dosyası dönüşümü Düzenleyicisi, sen-ebilmek görmek a tek çıkış oluşturuldu ancak çıkış hiçbir sütun vardır. Bu sayfa Düzenleyicisi, ihtiyaç veya aşağıdaki öğeleri yapılandırmak istediğiniz.

  • Bir veya daha fazla ek çıkışları, benzetimli hatası çıktı beklenmeyen değerler içeren satırları gibi oluşturun. Kullanım Eklemek çıktı ve Çıkış kaldırma çıktıları, zaman uyumlu dönüşümü bileşeni yönetmek için düğmeler. Her satır için bir çıkış ya da diğer yönlendirmek istediğiniz gösterdiğiniz sürece tüm giriş satırları için kullanılabilir tüm çıkış yönlendirilir. Satırlar için sıfır olmayan tamsayı değer belirterek yeniden yönlendirmek istediğiniz belirtmek ExclusionGroupÇıkış özelliğine. Belirli tamsayı değeri girilen ExclusionGroupÇıkış belirlemek için önemli olmayan, ancak aynı tamsayı sürekli çıkışları belirtilen grup için kullanmanız gerekir.

    [!NOT]

    Ayrıca bir sıfır kullanabilirsiniz ExclusionGroupözellik değeri bir tek çıkışlı tüm satırları çıkış istemediğinizde. Ancak, bu durumda siz açıkça görmelisiniz DirectRowTo<outputbuffer>yöntemi çıkışı göndermek istediğiniz her satır için.

  • Giriş ve çıkışları daha açıklayıcı bir ad atayın. Script bileşeni bu adları yazılı erişeni özelliklerini başvurmak için giriş için kullanacağınız üretmek için kullanır ve komut dosyanızı.

  • Senkron dönüşümleri için olduğu gibi sütun bırakın. Genellikle zaman uyumlu dönüşümü veri akışına sütun eklemez. Veri arabelleği bir yerde değiştirilir ve sonraki bileşen veri akışı arabelleği iletilir. Bu durumda, ekleyin ve çıktı sütunları açıkça dönüşüm çıkışları üzerinde yapılandırmanız gerekmez. Çıkışlarına düzenleyici açıkça tanımlanan sütunları olmadan görünür.

  • Benzetimli hata çıkışlarına satır düzeyinde hatalar için yeni sütunlar ekleyebilir. Normalde çok aynı çıktılar ExclusionGroupaynı çıktı sütunları sahip. Ancak, benzetimli hatası çıktı oluşturuyorsanız, hata bilgilerini içerecek şekilde daha fazla sütun eklemek isteyebilirsiniz. Hata satırları işler nasıl veri akışı alt yapısı hakkında bilgi için bkz: Bir veri akışı bileşeni hata çıkışları kullanarak. Script bileşeni ek sütunlar ile ilgili hata bilgileri doldurmak için kendi kodu yazmak gerekir unutmayın. Daha fazla bilgi için, bkz. Hata çıktı Script bileşeni simulasyonu.

Hakkında daha fazla bilgi için giriş ve çıkış sayfası Komut dosyası dönüşümü Düzenleyicisi, bakın Komut dosyası dönüşümü Düzenleyicisi (giriş ve çıkışları sayfa).

Değişkenleri ekleme

Komut dosyanızı varolan değişkenleri kullanmak isterseniz, bunları ekleyebilirsiniz ReadOnlyVariablesve ReadWriteVariablesözellik alanları Script sayfası Komut dosyası dönüşümü Düzenleyicisi.

Birden çok değişken özellik alanları eklediğinizde, değişken adları noktalı virgülle ayırın. Üç nokta tıklatarak birden çok değişken de seçebilirsiniz (...) yanındaki düğme ReadOnlyVariablesve ReadWriteVariablesözellik alanları ve değişkenleri'ı seçerek değişkenleri seçin iletişim kutusu.

Değişkenleri Script bileşeni ile kullanma hakkında genel bilgi için bkz: Değişkenleri kullanarak Script bileşeni.

Hakkında daha fazla bilgi için Script sayfası Komut dosyası dönüşümü Düzenleyicisi, bakın Komut dosyası dönüşümü Düzenleyicisi (kod sayfası).

Komut dosyası kodu tasarım modunda bir zaman uyumlu dönüşümü bileşeni

Meta veriler, bileşen için yapılandırdıktan sonra kendi özel komut dosyası yazabilirsiniz. İçinde Komut dosyası dönüşümü Düzenleyicisi, Script sayfa'yı Komut dosyası Düzenle açmak için Microsoft  Visual StudioAraçları uygulamaları (vsta) nereye sen-ebilmek eklemek senin özel JavaScript IDE Kullandığınız komut dosyası dili olup seçtiğiniz bağlıdır Microsoft  Visual Basic 2008ya Microsoft  Visual C# 2008komut dosyası dili olarak ScriptLanguage özelliği Script sayfa.

Script bileşeni kullanılarak oluşturulmuş bileşenleri her türlü uygulandığı önemli bilgiler için bkz: Kodlama ve kod bileşen hata ayıklama.

Otomatik olarak oluşturulan kodu anlama

vsta oluşturduktan sonra IDE ve düzenlenebilir bir dönüşümü bileşen yapılandırma açtığınızda ScriptMainsınıfı için bir saplama ile kod düzenleyicisinde görünür ProcessInputRowyöntemi. ScriptMainSınıftır nerede özel kodunuzu yazacaksınız ve ProcessInputRowen önemli bir dönüşüm bileşeni yöntemidir.

Eğer sen açık Project Explorer vsta penceresinde, Script bileşeni de salt üretti gördüğünüz BufferWrapperve ComponentWrapperproje öğeleri. ScriptMainSınıf devralır UserComponentiçinde sınıf ComponentWrapperProje öğesi.

Çalıştırma sırasında veri akışı altyapısı çağırır ProcessInputyöntemi UserComponenthangi geçersiz kılar sınıf ProcessInputyöntemi ScriptComponentüst sınıf ProcessInputYöntemi sırayla döngüler ile görüşmeleri ve giriş arabelleği satırları ProcessInputRowyöntemi her satır için bir kez.

Özel kod yazma

İle zaman uyumlu çıkışlarına dönüşümü bileşen yazmak için tüm veri akışı bileşenleri en basit olanıdır. Örneğin, bu konudaki gösterilen tek çıkış örnek aşağıdaki özel kodu oluşur:

    Row.City = UCase(Row.City)
    Row.City = UCase(Row.City)
    Row.City = (Row.City).ToUpper();
    Row.City = (Row.City).ToUpper();

Özel zaman uyumlu dönüşümü bileşeni oluşturmayı tamamlamak için geçersiz kılınmış kullanmanız ProcessInputRowgiriş her satır veri dönüştürme yöntemi. Veri akışı altyapısı bu arabellek, sonraki bileşen veri akışı için tam bir zaman geçer.

Gereksinimlerinize bağlı olarak, size de komut dosyası yazmak isteyebilirsiniz PreExecuteve PostExecuteyöntemleri, mevcut ScriptMainön veya son işlem gerçekleştirmek için sınıf,.

Çoklu çıkışlarına ile çalışma

İki veya daha fazla olası çıkış giriş satırları yönetmenlik daha yukarıda açıklanan tek çıkış senaryo çok daha özel kod gerektirmez. Örneğin, bu konudaki gösterilen iki çıkış örnek aşağıdaki özel kodu oluşur:

    Row.City = UCase(Row.City)
    If Row.City = "REDMOND" Then
        Row.DirectRowToMyRedmondAddresses()
    Else
        Row.DirectRowToMyOtherAddresses()
    End If
    Row.City = UCase(Row.City)
    If Row.City = "REDMOND" Then
        Row.DirectRowToMyRedmondAddresses()
    Else
        Row.DirectRowToMyOtherAddresses()
    End If
        Row.City = (Row.City).ToUpper();

        if (Row.City=="REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }
        Row.City = (Row.City).ToUpper();

        if (Row.City=="REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

Bu örnekte komut dosyası bileşeni oluşturur DirectRowTo<OutputBufferX>yöntemleri, yapılandırdığınız çıkışlarına adları temel. Benzetimli hatası çıktı hata satırları doğrudan benzer kodu kullanabilirsiniz.

Örnekler

Gerekli özel kod örnekleri burada göstermek ScriptMainbir zaman uyumlu dönüşümü bileşeni oluşturmak için sınıf.

[!NOT]

Bu örnekler kullanmak Person.Address içinde tablo AdventureWorks örnek veritabanı ve onun birinci ve dördüncü sütun geçmek int AddressID ve nvarchar(30) şehir sütunlar, veri akışı aracılığıyla. Aynı veri kaynağı, dönüştürme ve hedef örnekleri bu bölümde kullanılır. Her örneği için ek bir önkoşul ve varsayımlar belgelenmiştir.

Tek çıkış zaman uyumlu dönüşümü örneği

Bu örnek, tek bir çıkış ile zaman uyumlu dönüşümü bileşeni gösterir. Bu dönüşüm geçtiği AddressID sütun ve dönüştürür şehri sütun büyük harf.

Bu örnek kodu çalıştırmak istiyorsanız, paketi ve bileşen aşağıdaki gibi yapılandırmalısınız:

  1. Yeni Script bileşeni için veri akışı Tasarımcı yüzey ekleyin ve bir dönüşümü yapılandırın.

  2. Bir kaynak veya bir dönüşüm çıktı yeni dönüşümü bileşeni bağlanmak SSIStasarımcı. Bu çıkış verileri sağlamanız gerekir Person.Address tablo AdventureWorks içeren örnek veritabanı AddressID ve şehri sütunlar.

  3. Açık Komut dosyası dönüşümü Düzenleyicisi. Tarih Giriş sütunlar page, select AddressID ve şehir sütunlar. Mark şehri sütun olarak okuma/yazma.

  4. Tarih giriş ve çıkış sayfasında, giriş ve çıkış MyAddressInput ve MyAddressOutput gibi daha tanımlayıcı adlarıyla yeniden adlandırın. Fark SynchronousInputIDÇıkış karşılık IDgiriş. Bu nedenle, ekleme ve çıktı sütunları yapılandırma gerekmez.

  5. Tarih Script sayfa'yı Komut dosyası Düzenle ve aşağıdaki komut dosyası girin. Komut dosyası geliştirme ortamı kapatın ve Komut dosyası dönüşümü Düzenleyicisi.

  6. Oluşturmak ve beklediği hedef bileşeni yapılandırmak AddressID ve şehir sütun gibi bir SQL Serverhedef, ya da içinde gösterilen örnek hedef bileşeni bir hedef Script bileşeni ile oluşturma. Dönüşümün çıktısı için hedef bileşeni bağlanın. Aşağıdakini çalıştırarak hedef tablo oluşturabilirsiniz Transact-SQLkomutunu AdventureWorksveritabanı:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    )
    
    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    )
    
  7. Örnek çalıştırın.

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

    End Sub

End Class
Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

    End Sub

End Class
public class ScriptMain:
    UserComponent

{
    public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

    }

}
public class ScriptMain:
    UserComponent

{
    public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

    }

}

İki çıkış zaman uyumlu dönüşümü örneği

Bu örnek, bir zaman uyumlu dönüşümü bileşeni ile iki çıkış gösterir. Bu dönüşüm geçtiği AddressID sütun ve dönüştürür şehri sütun büyük harf. Şehir adını Redmond ise, bir çıkış satıra yönlendirir; diğer tüm satırları başka bir çıkış için yönlendirir.

Bu örnek kodu çalıştırmak istiyorsanız, paketi ve bileşen aşağıdaki gibi yapılandırmalısınız:

  1. Yeni Script bileşeni için veri akışı Tasarımcı yüzey ekleyin ve bir dönüşümü yapılandırın.

  2. Bir kaynak veya bir dönüşüm çıktı yeni dönüşümü bileşeni bağlanmak SSIStasarımcı. Bu çıkış verileri sağlamanız gerekir Person.Address tablo AdventureWorks içeren örnek veritabanı en az AddressID ve şehri sütunlar.

  3. Açık Komut dosyası dönüşümü Düzenleyicisi. Tarih Giriş sütunlar page, select AddressID ve şehir sütunlar. Mark şehri sütun olarak okuma/yazma.

  4. Tarih giriş ve çıkış sayfasında, ikinci bir çıktı yaratmak. Yeni çıkış ekledikten sonra sen emin olun onun SynchronousInputIDiçin IDgiriş. Bu özellik varsayılan olarak oluşturulan ilk çıktıyı zaten ayarlanmış. Her çıkış için set ExclusionGroupözelliğine giriş satırları arasında iki dışlayan çıkışlarına bölecek göstermek için aynı sıfır olmayan değer. Çıkışlarına herhangi bir çıktı sütunları eklemek gerekmez.

  5. Giriş ve çıkışlarına MyAddressInput, MyRedmondAddresses ve MyOtherAddresses gibi daha tanımlayıcı adlarıyla yeniden adlandırın.

  6. Tarih Script sayfa'yı Komut dosyası Düzenle ve aşağıdaki komut dosyası girin. Komut dosyası geliştirme ortamı kapatın ve Komut dosyası dönüşümü Düzenleyicisi.

  7. Oluşturun ve beklediğiniz iki hedef bileşeni yapılandırmak AddressID ve şehri sütun gibi bir SQL Serverhedef, düz dosya hedef ya da içinde gösterilen örnek hedef bileşeni bir hedef Script bileşeni ile oluşturma. Sonra her bir dönüşümü çıkışlarına hedef bileşenleri birine bağlanmak. Çalıştırarak hedef tabloları oluşturabilirsiniz bir Transact-SQLkomutu (ile benzersiz tablo adları) aşağıdaki benzer AdventureWorksveritabanı:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    
    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    
  8. Örnek çalıştırın.

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

        If Row.City = "REDMOND" Then
            Row.DirectRowToMyRedmondAddresses()
        Else
            Row.DirectRowToMyOtherAddresses()
        End If

    End Sub

End Class
Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

        If Row.City = "REDMOND" Then
            Row.DirectRowToMyRedmondAddresses()
        Else
            Row.DirectRowToMyOtherAddresses()
        End If

    End Sub

End Class
public class ScriptMain:
    UserComponent

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

        if (Row.City == "REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

    }
}
public class ScriptMain:
    UserComponent

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

        if (Row.City == "REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

    }
}
Integration Services simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


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

Ayrıca bkz.

Kavramlar

Zaman uyumlu ve zaman uyumsuz dönüşümleri anlama

Uyumsuz bir dönüşümü Script bileşeni ile oluşturma

Zaman uyumlu çıkışlarına ile özel dönüşümü bileşen geliştirme