Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı
Bileşen geliştiricileri, bir bileşen için özel bir kullanıcı arayüzü sağlayabilir; bu arayüz, bileşen düzenlendiğinde SQL Server Veri Araçları (SSDT)'de görüntülenir. Özel bir kullanıcı arayüzü uygulamak, bileşenin veri akışı görevine eklendiğinde veya silindiğinde ve bileşen için yardım istendiğinde bildirim sağlar.
Bileşeniniz için özel bir kullanıcı arayüzü sağlamazsanız, kullanıcılar bileşeni ve özel özelliklerini yine de Gelişmiş Düzenleyici kullanarak yapılandırabilirler. Gelişmiş Düzenleyici'ın, uygun olduğunda ve UITypeEditor özelliklerini IDTSCustomProperty100 kullanarak TypeConverter kullanıcıların özel özellik değerlerini uygun şekilde düzenlemelerini sağladığından emin olabilirsiniz. Daha fazla bilgi için, Design-time Methods of a Veri Akışı Component bölümünde "Özel Özellikler Oluşturma" bölümüne bakınız.
UITypeName Özelliğinin Ayarlanması
Özel bir kullanıcı arayüzü sağlamak için, geliştirici arayüzü DtsPipelineComponentAttribute uygulayan bir sınıfın IDtsComponentUI adına özelliği ayarlamalıdırUITypeName. Bu özellik bileşen tarafından ayarlandığında, SQL Server Integration Services, bileşen SSIS Designer'da düzenlendiğinde özel kullanıcı arayüzünü yükler ve çağırır.
Bu UITypeName özellik, türün tam nitelikli adını tanımlayan virgülle ayrılmış bir dizedir. Aşağıdaki liste, tipi tanımlayan öğeleri sırayla göstermektedir:
Tür adı
Montaj adı
Dosya versiyonu
Kültür
Açık anahtar tokeni
Aşağıdaki kod örneği, temel sınıftan PipelineComponent türeden ve özelliği UITypeName belirten bir sınıfı gösterir.
[DtsPipelineComponent(
DisplayName="SampleComponent",
UITypeName="MyNamespace.MyComponentUIClassName,MyAssemblyName,Version=1.0.0.0,Culture=neutral,PublicKeyToken=abcd...",
ComponentType = ComponentType.Transform)]
public class SampleComponent : PipelineComponent
{
//TODO: Implement the component here.
}
<DtsPipelineComponent(DisplayName="SampleComponent", _
UITypeName="MyNamespace.MyComponentUIClassName,MyAssemblyName,Version=1.0.0.0,Culture=neutral,PublicKeyToken=abcd...", ComponentType=ComponentType.Transform)> _
Public Class SampleComponent
Inherits PipelineComponent
End Class
IDtsComponentUI Arayüzü'nün Uygulanması
Arayüz, IDtsComponentUI bir bileşen eklendiğinde, silindiğinde ve düzenlendiğinde SSIS Designer'ın çağırdığı yöntemleri içerir. Bileşen geliştiricileri, bu yöntemlerin uygulanmasında bileşen kullanıcılarıyla etkileşim kurmak için kod sağlayabilir.
Bu sınıf genellikle bileşenin kendisinden ayrı bir montajda uygulanır. Ayrı bir montaj kullanımı zorunlu olmasa da, bu geliştiricinin bileşeni ve kullanıcı arayüzünü birbirinden bağımsız olarak inşa edip dağıtmasına olanak tanır ve bileşenin ikili ayak izini küçük tutar.
Özel bir kullanıcı arayüzü uygulamak, bileşen geliştiricisine SSIS Designer'da düzenlenirken bileşen üzerinde daha fazla kontrol sağlar. Örneğin, bir bileşen yönteme New kod ekleyebilir; bu, bir bileşen veri akışı görevine ilk eklendiğinde çağrılır ve kullanıcıyı bileşenin ilk yapılandırmasında yönlendiren bir sihirbaz gösterebilir.
Arayüzü uygulayan IDtsComponentUI bir sınıf oluşturduktan sonra, bileşenle kullanıcı etkileşimine yanıt vermek için kod eklemeniz gerekir. Yöntem, Initialize bileşenin arayüzünü sağlar IDTSComponentMetaData100 ve ve Edit metodlarından önce New çağrılır. Bu referans, özel bir üye değişkeninde saklanmalı ve bileşenin meta verisini değiştirmek için kullanılmalıdır.
Bir Bileşeni Değiştirmek ve Değişiklikleri Sürdürmek
Arayüz, IDTSComponentMetaData100 yönteme Initialize bir parametre olarak sağlanır. Bu referans, kullanıcı arayüzü kodu tarafından bir üye değişkeninde önbelleğe alınmalı ve kullanıcı arayüzüyle kullanıcı etkileşimine yanıt olarak bileşeni değiştirmek için kullanılmalıdır.
Bileşeni doğrudan arayüz IDTSComponentMetaData100 üzerinden değiştirebilseniz de, yöntemi Instantiate kullanarak bir örnek CManagedComponentWrapper oluşturmak daha iyidir. Arayüzü kullanarak bileşeni doğrudan düzenlediğinizde, bileşenin doğrulama önlemlerini atlarsınız. Bileşenin CManagedComponentWrapper tasarım süresi örneğini kullanmanın avantajı, bileşenin üzerinde yapılan değişiklikler üzerinde kontrol sahibi olmanızı sağlamaktır.
Yöntemin iade değeri, bir bileşende yapılan değişikliklerin Edit devam edip edilmediğini veya atılıp kaldırılmadığını belirler. Bu yöntem false dönerse, tüm değişiklikler atılır; True , bileşendeki değişiklikleri sürdürür ve paketi kaydedilmesi gereken olarak işaretler.
SSIS Tasarımcısının Hizmetlerinin Kullanımı
Yöntemin InitializeIServiceProvider parametresi, SSIS Designer'ın aşağıdaki hizmetlerine erişim sağlar:
| Service | Description |
|---|---|
| IDtsClipboardService | Bileşenin kopyala/yapıştır veya kes/yapıştır işlemi kapsamında oluşturulup oluşturulmadığını belirlemek için kullanılır. |
| IDtsConnectionService | Mevcut bağlantılara erişmek veya pakette yeni bağlantılar oluşturmak için kullanılır. |
| IErrorCollectionService | Bileşenin çıkardığı tüm hataları ve uyarıları yakalamanız gerektiğinde veri akışı bileşenlerinden olayları yakalamak için kullanılır, sadece son hata veya uyarıyı almak yerine. |
| IDtsVariableService | Mevcut değişkenlere erişmek veya pakette yeni değişkenler oluşturmak için kullanılır. |
| IDtsPipelineEnvironmentService | data flow bileşenleri tarafından ana Veri Akışı görevine ve data flow'taki diğer bileşenlere erişmek için kullanılır. Bu özellik, ihtiyaç duyulduğunda ek veri akışı bileşenleri oluşturup bağlayan Yavaş Değişen Boyut Sihirbazı gibi bir bileşen geliştirmek için kullanılabilir. |
Bu hizmetler, bileşen geliştiricilerine bileşenin yüklendiği pakette nesnelere erişme ve oluşturma imkanı sağlar.
Sample
Aşağıdaki kod örneği, arayüzü IDtsComponentUI uygulayan özel bir kullanıcı arayüzü sınıfı ile bir bileşen için düzenleyici olarak hizmet veren bir Windows formunun entegrasyonunu göstermektedir.
Özel Kullanıcı Arayüzü Sınıfı
Aşağıdaki kod, arayüzü IDtsComponentUI uygulayan sınıfı gösterir. Yöntem, Edit bileşen düzenleyicisini oluşturur ve ardından formu gösterir. Formun dönüş değeri, bileşendeki değişikliklerin devam edip etmediğini belirler.
using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Pipeline.Design;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
namespace Microsoft.Samples.SqlServer.Dts
{
public class SampleComponentUI : IDtsComponentUI
{
IDTSComponentMetaData100 md;
IServiceProvider sp;
public void Help(System.Windows.Forms.IWin32Window parentWindow)
{
}
public void New(System.Windows.Forms.IWin32Window parentWindow)
{
}
public void Delete(System.Windows.Forms.IWin32Window parentWindow)
{
}
public bool Edit(System.Windows.Forms.IWin32Window parentWindow, Variables vars, Connections cons)
{
// Create and display the form for the user interface.
SampleComponentUIForm componentEditor = new SampleComponentUIForm(cons, vars, md);
DialogResult result = componentEditor.ShowDialog(parentWindow);
if (result == DialogResult.OK)
return true;
return false;
}
public void Initialize(IDTSComponentMetaData100 dtsComponentMetadata, IServiceProvider serviceProvider)
{
// Store the component metadata.
this.md = dtsComponentMetadata;
}
}
}
Imports System
Imports System.Windows.Forms
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Pipeline.Design
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Namespace Microsoft.Samples.SqlServer.Dts
Public Class SampleComponentUI
Implements IDtsComponentUI
Private md As IDTSComponentMetaData100
Private sp As IServiceProvider
Public Sub Help(ByVal parentWindow As System.Windows.Forms.IWin32Window)
End Sub
Public Sub New(ByVal parentWindow As System.Windows.Forms.IWin32Window)
End Sub
Public Sub Delete(ByVal parentWindow As System.Windows.Forms.IWin32Window)
End Sub
Public Function Edit(ByVal parentWindow As System.Windows.Forms.IWin32Window, ByVal vars As Variables, ByVal cons As Connections) As Boolean
' Create and display the form for the user interface.
Dim componentEditor As SampleComponentUIForm = New SampleComponentUIForm(cons, vars, md)
Dim result As DialogResult = componentEditor.ShowDialog(parentWindow)
If result = DialogResult.OK Then
Return True
End If
Return False
End Function
Public Sub Initialize(ByVal dtsComponentMetadata As IDTSComponentMetaData100, ByVal serviceProvider As IServiceProvider)
Me.md = dtsComponentMetadata
End Sub
End Class
End Namespace
Özel Editör
Aşağıdaki kod, metod çağrısı Edit sırasında gösterilen Windows formunun uygulanmasını gösterir.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.Samples.SqlServer.Dts
{
public partial class SampleComponentUIForm : System.Windows.Forms.Form
{
private Connections connections;
private Variables variables;
private IDTSComponentMetaData100 metaData;
private CManagedComponentWrapper designTimeInstance;
private System.ComponentModel.IContainer components = null;
public SampleComponentUIForm( Connections cons, Variables vars, IDTSComponentMetaData100 md)
{
variables = vars;
connections = cons;
metaData = md;
}
private void btnOk_Click(object sender, System.EventArgs e)
{
if (designTimeInstance == null)
designTimeInstance = metaData.Instantiate();
designTimeInstance.SetComponentProperty( "CustomProperty", txtCustomPropertyValue.Text);
this.Close();
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
this.Close();
}
}
}
Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.Samples.SqlServer.Dts
Public Partial Class SampleComponentUIForm
Inherits System.Windows.Forms.Form
Private connections As Connections
Private variables As Variables
Private metaData As IDTSComponentMetaData100
Private designTimeInstance As CManagedComponentWrapper
Private components As System.ComponentModel.IContainer = Nothing
Public Sub New(ByVal cons As Connections, ByVal vars As Variables, ByVal md As IDTSComponentMetaData100)
variables = vars
connections = cons
metaData = md
End Sub
Private Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs)
If designTimeInstance Is Nothing Then
designTimeInstance = metaData.Instantiate
End If
designTimeInstance.SetComponentProperty("CustomProperty", txtCustomPropertyValue.Text)
Me.Close
End Sub
Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Me.Close
End Sub
End Class
End Namespace