Kullanıcı arabirimi için özel görev geliştirme

Integration ServicesNesne modeli, kolayca özel bir kullanıcı arabirimi, sonra olabilir tümleşik ve görüntülenen görev oluşturma yeteneği özel görev geliştiriciler sağlar. SQL Server Veri Akışı Araçları (SSDT). Kullanıcı arabirimi kullanıcıya yararlı bilgiler sağlayabilir SSISTasarımcısı ve kılavuz kullanıcıların doğru özellikleri ve özel görevin ayarlarını yapılandırmak için.

Bir görev için özel kullanıcı arabirimi geliştirme iki önemli sınıfları kullanarak içerir. Aşağıdaki tabloda, bu sınıfları açıklar.

Sınıf

Açıklama

DtsTaskAttribute

Yönetilen bir görevi tanımlar ve Tasarım Zamanı bilgileri aracılığıyla özelliklerini denetlemek için nasıl sağlayan bir öznitelik SSISTasarımcısı görüntüler ve nesnesiyle etkileşim.

IDtsTaskUI

Görev özel kullanıcı arabirimi ile ilişkilendirmek için görev tarafından kullanılan arabirim.

Bu bölümde açıklar DtsTaskAttributeözniteliği ve IDtsTaskUIözel bir görev için kullanıcı arabirimi geliştirme ve nasıl oluşturulacağı, entegre, dağıtmak ve içinde görev hata ayıklama ile ilgili ayrıntıları sağlar arayüzü SSIStasarımcı.

SSISTasarımcı, görev için birden çok giriş noktası kullanıcı arabirimi sağlar: kullanıcı-ebilmek seçme düzenleme kısayol menüsünden görevi çift tıklatın veya tıklatın Show editörü özellik sayfasının altındaki bağlantı. Kullanıcı, bu giriş noktaları birini eriştiğinde SSISbulur ve görev kullanıcı arabirimi içeren derleme yükler. Özellikler iletişim kutusu oluşturma kullanıcıya görüntülenen görev kullanıcı arabirimi sorumludur SQL Server Veri Akışı Araçları (SSDT).

Görev ve kullanıcı arabirimi ayrı varlıklardır. Yerelleştirme, dağıtım ve bakım çalışmaları azaltmak için ayrı derlemelerde uygulanmalıdır. Görev dll yüklenemedi, çağrı veya genel kullanıcı arabirimi, içerdiği bilgiler haricinde herhangi bir bilgi içeren DtsTaskAttributeöznitelik değerleri görevi kodlu. Görev ve kullanıcı arabirimi ilişkili tek yolu budur.

DtsTask özniteliği

DtsTaskAttributeÖzniteliği bir görev kullanıcı arabirimi ile ilişkilendirmek için görev sınıf kodu dahil. SSISTasarımcısı kullanır öznitelik özelliklerini görev Tasarımcısı nasıl belirleneceği. Bu özellikleri, varsa görüntüleme ve simge adını içerir.

Aşağıdaki tablo özelliklerini açıklar DtsTaskAttributeözniteliği.

Özellik

Açıklama

DisplayName

Görev akış denetimi araç kutusunda görüntüler.

Description

Görev Açıklaması (devralınan DtsLocalizableAttribute). Bu özellik araç ipuçlarında gösterilir.

IconResource

Görüntülenen simgeyi SSIStasarımcı.

RequiredProductLevel

Kullandıysanız, bu değerleri ayarlayın DTSProductLevelnumaralandırma. Örneğin, RequiredProductLevel = DTSProductLevel.None.

TaskContact

Tutar, ne zaman görevi teknik destek gerektiren durumlar için bilgi başvurun.

TaskType

Bir görev atar.

Attribute.TypeID

Türetilmiş bir sınıf içinde uygulanan zaman, bu öznitelik için bir benzersiz tanımlayıcı alır. Daha fazla bilgi için bkz: Attribute.TypeIDözelliğinde .NET Framework sınıf kitaplığı.

UITypeName

Tarafından kullanılan derleme türü adı SSISDerleme yükleme için tasarımcı. Bu özellik, görev için kullanıcı arabirimi derleme bulmak için kullanılır.

Aşağıdaki kod örneği gösterildiği DtsTaskAttributeo-cekti bakmak gibi sınıf tanımının üzerinde kodlu.

using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SSIS.Samples
{
  [DtsTask
  (
   DisplayName = "MyTask",
   IconResource = "MyTask.MyTaskIcon.ico",
   UITypeName = "My Custom Task," +
   "Version=1.0.0.0," +
   "Culture = Neutral," +
   "PublicKeyToken = 12345abc6789de01",
   TaskType = "PackageMaintenance",
   TaskContact = "MyTask; company name; any other information",
   RequiredProductLevel = DTSProductLevel.None
   )]
  public class MyTask : Task
  {
    // Your code here.
  }
}
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SSIS.Samples
{
  [DtsTask
  (
   DisplayName = "MyTask",
   IconResource = "MyTask.MyTaskIcon.ico",
   UITypeName = "My Custom Task," +
   "Version=1.0.0.0," +
   "Culture = Neutral," +
   "PublicKeyToken = 12345abc6789de01",
   TaskType = "PackageMaintenance",
   TaskContact = "MyTask; company name; any other information",
   RequiredProductLevel = DTSProductLevel.None
   )]
  public class MyTask : Task
  {
    // Your code here.
  }
}
Imports System
Imports Microsoft.SqlServer.Dts.Runtime

<DtsTask(DisplayName:="MyTask", _
 IconResource:="MyTask.MyTaskIcon.ico", _
 UITypeName:="My Custom Task," & _
 "Version=1.0.0.0,Culture=Neutral," & _
 "PublicKeyToken=12345abc6789de01", _
 TaskType:="PackageMaintenance", _
 TaskContact:="MyTask; company name; any other information", _
 RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
  Inherits Task

  ' Your code here.

End Class 'MyTask
Imports System
Imports Microsoft.SqlServer.Dts.Runtime

<DtsTask(DisplayName:="MyTask", _
 IconResource:="MyTask.MyTaskIcon.ico", _
 UITypeName:="My Custom Task," & _
 "Version=1.0.0.0,Culture=Neutral," & _
 "PublicKeyToken=12345abc6789de01", _
 TaskType:="PackageMaintenance", _
 TaskContact:="MyTask; company name; any other information", _
 RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
  Inherits Task

  ' Your code here.

End Class 'MyTask

SSISTasarımcısı kullanır UITypeNameDerleme adı, tür adı, sürüm, Kültür ve derleme genel derleme önbelleği (gac) bulun ve tasarımcı tarafından kullanılacak yük için ortak anahtar belirteci içeren öznitelik özelliği.

Derleme bulunduğu kaldıktan sonra SSISTasarımcısı özniteliğinde görev hakkındaki ek bilgileri görüntülemek için diğer özellikleri kullanır SSIStasarımcı, ad, simge ve görevin açıklamasını gibi.

DisplayName, Description, Ve IconResourceözelliklerini belirtmek nasıl görev kullanıcıya sunulur. IconResourceÖzelliği, kullanıcı arabirimi derleme katıştırılmış simge kaynak kimliğini içerir. Tasarımcı kimliği simge kaynak montaj yükler ve görev için bir paket eklendiğinde araç ve tasarımcı yüzey üzerinde görev adının yanındaki görüntüler. Bir görevi bir simge kaynağının sağlamıyorsa, tasarımcı görev için varsayılan simge kullanır.

IDtsTaskUI arabirimi

IDtsTaskUIArabirim yöntemleri ve özellikleri adlandırılan koleksiyon tanımlar SSISbaşlatmak ve görevle ilişkili kullanıcı arabirimi görüntülemek için tasarımcı. Ne zaman kullanıcı arabirimi için göreve çağrılan, tasarımcı aramaları Initializeyöntemi, o yazdı görev kullanıcı arabirimi tarafından uygulanan ve daha sonra sağlar TaskHostve Connectionsgörev ve paket, sırasıyla, parametre olarak. Bu koleksiyonlar yerel olarak saklanır ve daha sonra da kullanılan GetViewyöntemi.

Tasarımcı aramaları GetViewyöntemi, görüntülenen pencere istemek için SSIStasarımcı. Görevin görev kullanıcı arabirimi içerir ve kullanıcı arabirimi görüntülemek için tasarımcı döner pencerede bir örneğini oluşturur. Genellikle, TaskHostve Connectionsnesneleri sağlanan için bir aşırı yüklenmiş kurucu penceresinde görev yapılandırmak için kullanılabilir.

SSISTasarımcısı arama GetViewgörevin görev kullanıcı arabirimi görüntülemek için kullanıcı Arabirimi yöntemi. Görev kullanıcı arabirimi Windows form Bu yöntemden verir ve SSISTasarımcısı bu form kalıcı iletişim kutusu olarak gösterilir. Form kapatıldığında, SSISTasarımcısı inceliyor değeri DialogResultözelliği olup görevi değiştirildi ve bu değişikliklerin kaydedilmesi gereken eğer belirlemek için formun. Eğer değeri DialogResultözelliği OK, SSISTasarımcısı aramalar; değişiklikleri kaydetmek için görevi sürdürme yöntemleri Aksi takdirde, değişiklikler atılır.

Aşağıdaki kod örneği Implements IDtsTaskUIarayüz ve SampleTaskForm adlı bir Windows form sınıfının varlığını varsayar.

using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;

namespace Sample
{
   public class HelloWorldTaskUI : IDtsTaskUI
   {
      TaskHost   taskHost;
      Connections connections;
      public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
      {
         this.taskHost = taskHost;
         IDtsConnectionService cs = serviceProvider.GetService
         ( typeof( IDtsConnectionService ) ) as   IDtsConnectionService; 
         this.connections = cs.GetConnections();
      }
      public ContainerControl GetView()
      {
        return new HelloWorldTaskForm(this.taskHost, this.connections);
      }
     public void Delete(IWin32Window parentWindow)
     {
     }
     public void New(IWin32Window parentWindow)
     {
     }
   }
}
using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;

namespace Sample
{
   public class HelloWorldTaskUI : IDtsTaskUI
   {
      TaskHost   taskHost;
      Connections connections;
      public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
      {
         this.taskHost = taskHost;
         IDtsConnectionService cs = serviceProvider.GetService
         ( typeof( IDtsConnectionService ) ) as   IDtsConnectionService; 
         this.connections = cs.GetConnections();
      }
      public ContainerControl GetView()
      {
        return new HelloWorldTaskForm(this.taskHost, this.connections);
      }
     public void Delete(IWin32Window parentWindow)
     {
     }
     public void New(IWin32Window parentWindow)
     {
     }
   }
}
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Design
Imports System.Windows.Forms

Public Class HelloWorldTaskUI
  Implements IDtsTaskUI

  Dim taskHost As TaskHost
  Dim connections As Connections

  Public Sub Initialize(ByVal taskHost As TaskHost, ByVal serviceProvider As IServiceProvider) _
    Implements IDtsTaskUI.Initialize

    Dim cs As IDtsConnectionService

    Me.taskHost = taskHost
    cs = DirectCast(serviceProvider.GetService(GetType(IDtsConnectionService)), IDtsConnectionService)
    Me.connections = cs.GetConnections()

  End Sub

  Public Function GetView() As ContainerControl _
    Implements IDtsTaskUI.GetView

    Return New HelloWorldTaskForm(Me.taskHost, Me.connections)

  End Function

  Public Sub Delete(ByVal parentWindow As IWin32Window) _
    Implements IDtsTaskUI.Delete

  End Sub

  Public Sub [New](ByVal parentWindow As IWin32Window) _
    Implements IDtsTaskUI.[New]

  End Sub

End Class
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Design
Imports System.Windows.Forms

Public Class HelloWorldTaskUI
  Implements IDtsTaskUI

  Dim taskHost As TaskHost
  Dim connections As Connections

  Public Sub Initialize(ByVal taskHost As TaskHost, ByVal serviceProvider As IServiceProvider) _
    Implements IDtsTaskUI.Initialize

    Dim cs As IDtsConnectionService

    Me.taskHost = taskHost
    cs = DirectCast(serviceProvider.GetService(GetType(IDtsConnectionService)), IDtsConnectionService)
    Me.connections = cs.GetConnections()

  End Sub

  Public Function GetView() As ContainerControl _
    Implements IDtsTaskUI.GetView

    Return New HelloWorldTaskForm(Me.taskHost, Me.connections)

  End Function

  Public Sub Delete(ByVal parentWindow As IWin32Window) _
    Implements IDtsTaskUI.Delete

  End Sub

  Public Sub [New](ByVal parentWindow As IWin32Window) _
    Implements IDtsTaskUI.[New]

  End Sub

End Class
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

Özel görev oluşturma

Özel görev kodlama

Kullanıcı arabirimi için özel görev geliştirme