Integration Services için Özel Nesneler Geliştirme

Şunlar için geçerlidir:SQL Server Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı

SQL Server Integration Services ile birlikte gelen kontrol akışı ve veri akışı nesneleri gereksinimlerinizi tam olarak karşılamadığında, kendi başınıza birçok özel nesne türünü geliştirebilirsiniz:

  • Özel görevler.

  • Özel bağlantı yöneticileri. Şu anda desteklenmeyen harici veri kaynaklarına bağlanın.

  • Özel günlük sağlayıcıları. Paket olaylarını şu anda desteklenmeyen formatlarda loglayın.

  • Özel sayma cihazları. Şu anda desteklenmeyen bir dizi nesne veya değer formatı üzerinde yinelemeyi destekler.

  • Özel veri akışı bileşenleri. Kaynaklar, dönüşümler veya hedefler olarak yapılandırılabilir.

Entegrasyon Hizmetleri nesne modeli, bu özel geliştirmeyi temel sınıflarla kolaylaştırır; bu sınıflar sizin özel uygulamanız için tutarlı ve güvenilir bir çerçeve sağlar.

Birden fazla paket arasında özel işlevselliği yeniden kullanmak zorunda değilseniz, Script görevi ve Script bileşeni, yazmanız gereken altyapı kodu çok daha az olan yönetilen bir programlama dilinin tüm gücünü sunar. Daha fazla bilgi için Scripting Solutions ile Custom Objects'in Karşılaştırılması bölümüne bakınız.

Entegrasyon Hizmetleri İçin Özel Nesne Geliştirme Adımları

Entegrasyon Hizmetleri'nde kullanılmak üzere özel bir nesne geliştirdiğinizde, tasarım zamanı ve çalışma zamanı SSIS Tasarımcısı ve Entegrasyon Hizmetleri çalışma zamanı tarafından yüklenecek bir Sınıf Kütüphanesi (DLL) geliştirirsiniz. Uygulamanız gereken en önemli yöntemler, kendi kodunuzdan çağrılan yöntemler değil, çalışma zamanının uygun zamanlarda bileşeninizi başlatmak ve doğrulamak ve işlevselliğini çağırmak için çağırdığı yöntemlerdir.

Özel bir nesne geliştirirken izlediğiniz adımlar şunlardır:

  1. Tercih ettiğiniz yönetilen programlama dilinde Sınıf Kütüphanesi tipinde yeni bir proje oluşturun.

  2. Aşağıdaki tabloda gösterildiği gibi uygun temel sınıftan miras alın.

  3. Aşağıdaki tabloda gösterildiği gibi, uygun özniteliği yeni sınıfınıza uygulayın.

  4. Temel sınıfın metodlarını gerektiğinde geçersiz kılın ve nesnenizin özel işlevselliği için kod yazın.

  5. İsteğe bağlı olarak, bileşeniniz için özel bir kullanıcı arayüzü oluşturun. Dağıtım kolaylığı için, kullanıcı arayüzünü aynı çözüm içinde ayrı bir proje olarak geliştirmek ve ayrı bir montaj olarak oluşturmak isteyebilirsiniz.

  6. İsteğe bağlı olarak, SSIS Araç Kutusu'nda özel nesne için örneklere ve Yardım içeriğine bir bağlantı gösterin.

  7. Yeni özel nesnenizi Özel Nesneler Oluşturma, Dağıtma ve Hata Hata Bulma bölümünde tanımlandığı şekilde oluşturun, dağıtın ve hata ayıklayın.

Temel Sınıflar, Nitelikler ve Önemli Yöntemler

Bu tablo, geliştirebileceğiniz her özel nesne türü için Entegrasyon Hizmetleri nesne modelindeki en önemli öğelere kolay bir referans sağlar.

Özel nesne Temel sınıf Attribute Önemli yöntemler
Görev Task DtsTaskAttribute Execute
Bağlantı yöneticisi ConnectionManagerBase DtsConnectionAttribute AcquireConnection, ReleaseConnection
Günlük sağlayıcısı LogProviderBase DtsLogProviderAttribute OpenLog, Log, CloseLog
Numaralayıcı ForEachEnumerator DtsForEachEnumeratorAttribute GetEnumerator
Veri akışı bileşeni PipelineComponent DtsPipelineComponentAttribute ProvideComponentProperties, PrimeOutput, ProcessInput

SSIS Araç Kutusu'nda yönetilen kodla yazılmış özel bir nesne için örneklere ve Yardım içeriğine bağlantı göstermek için aşağıdaki özellikleri kullanın.

Yerel kodla yazılmış özel bir nesne için örneklere ve Yardım içeriğine bağlantı göstermek için, SamplesTag, HelpKeyword ve HelpCollection için Registry Script (.rgs) dosyasına girişler ekleyin. Aşağıda bir örnek verilmiştir.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Özel Kullanıcı Arayüzü Sağlamak

Özel nesnenizin kullanıcılarının özelliklerini yapılandırmasına izin vermek için, ayrıca özel bir kullanıcı arayüzü geliştirmeniz gerekebilir. Özel bir kullanıcı arayüzü kesin olarak zorunlu olmadığı durumlarda, varsayılan editörün yerine daha kullanıcı dostu bir arayüz sağlayacak bir arayüz oluşturmayı seçebilirsiniz.

Özel bir kullanıcı arayüzü projesinde veya montajda genellikle iki sınıf olur; -a belirli özel nesne türü için kullanıcı arayüzleri için Entegrasyon Hizmetleri arayüzünü uygulayan sınıf ve kullanıcıdan bilgi toplamak için gösterdiği Windows form. Uyguladığınız arayüzlerin sadece birkaç yöntemi var ve özel bir kullanıcı arayüzü geliştirmek zor değil.

Note

Birçok Entegrasyon Hizmetleri günlük sağlayıcısı, Yapılandırma metin kutusunu filtrelenmiş bir bağlantı yöneticileri listesiyle değiştiren özel bir kullanıcı arayüzüne IDtsLogProviderUI sahiptir. Ancak, bu Entegrasyon Hizmetleri sürümünde özel log sağlayıcıları için özel kullanıcı arayüzleri uygulanmamıştır. Özelliğin UITypeNameDtsLogProviderAttribute değerini belirtmek hiçbir etkisi olmaz.

Aşağıdaki tablo, her tür özel nesne için özel bir kullanıcı arayüzü geliştirirken uygulamanız gereken arayüzlere kolay bir referans sağlar. Ayrıca, nesneniz için özel bir kullanıcı arayüzü geliştirmemeyi seçerseniz veya nesnenin özniteliğindeki UITypeName özelliğini kullanarak nesnenizi kullanıcı arayüzüne bağlayamazsanız kullanıcının ne gördüğünü açıklar. Güçlü Gelişmiş Düzenleyici veri akışı bileşeni için tatmin edici olsa da, Özellikler penceresi görevler ve bağlantı yöneticileri için daha az kullanıcı dostu bir çözümdür ve özel bir ForEach elistör özel form olmadan hiç yapılandırılamaz.

Özel nesne Kullanıcı arayüzü için temel sınıf Özel kullanıcı arayüzü sağlanmıyorsa varsayılan düzenleme davranışı
Görev IDtsTaskUI Özellikler penceresi only
Bağlantı yöneticisi IDtsConnectionManagerUI Özellikler penceresi only
Günlük sağlayıcısı IDtsLogProviderUI

(Entegrasyon Hizmetleri'nde uygulanmadı)
Yapılandırma sütunundaki metin kutusu
Numaralayıcı ForEachEnumeratorUI Özellikler penceresi only. Editörün Enumerator yapılandırma alanı boş.
Veri akışı bileşeni IDtsComponentUI Gelişmiş Düzenleyici