Aracılığıyla paylaş


Özel Görev için Kullanıcı Arabirimi Geliştirme

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

Integration Services nesne modeli, özel görev geliştiricilerine daha sonra SQL Server Veri Araçları'nda (SSDT) tümleştirilebilen ve görüntülenebilen bir görev için kolayca özel bir kullanıcı arabirimi oluşturma olanağı sağlar. Kullanıcı arabirimi, kullanıcıya SSIS Designer'da yararlı bilgiler sağlayabilir ve kullanıcılara özel görevin özelliklerini ve ayarlarını doğru yapılandırmaları için yol gösterebilir.

Bir görev için özel kullanıcı arabirimi geliştirmek için iki önemli sınıf kullanılır. Aşağıdaki tabloda bu sınıflar açıklanmaktadır.

Sınıf Açıklama
DtsTaskAttribute Yönetilen bir görevi tanımlayan ve SSIS Designer'ın nesneyle nasıl görüntülendiğini ve nesneyle nasıl etkileşim kurduğunu denetlemek için özellikleri aracılığıyla tasarım zamanı bilgileri sağlayan bir öznitelik.
IDtsTaskUI Görevi özel kullanıcı arabirimiyle ilişkilendirmek için görev tarafından kullanılan arabirim.

Bu bölümde, özel bir görev için kullanıcı arabirimi geliştirirken özniteliğin DtsTaskAttribute ve arabirimin IDtsTaskUI rolü açıklanır ve SSIS Designer'da görev oluşturma, tümleştirme, dağıtma ve hata ayıklama hakkında ayrıntılar sağlanır.

SSIS Tasarımcısı, görev için kullanıcı arabirimine birden çok giriş noktası sağlar: kullanıcı kısayol menüsünde Düzenle'yi seçebilir, göreve çift tıklayabilir veya özellik sayfasının alt kısmındaki Düzenleyiciyi Göster bağlantısına tıklayabilir. Kullanıcı bu giriş noktalarından birine eriştiğinde, SSIS Designer görevin kullanıcı arabirimini içeren derlemeyi bulur ve yükler. Görevin kullanıcı arabirimi, SQL Server Veri Araçları'nda (SSDT) kullanıcıya görüntülenen özellikler iletişim kutusunu oluşturmakla sorumludur.

Görev ve kullanıcı arabirimi ayrı varlıklardır. Yerelleştirme, dağıtım ve bakım çalışmalarını azaltmak için ayrı derlemelerde uygulanmalıdır. Görev DLL'i, görevdeki kodlanmış öznitelik değerlerinde DtsTaskAttribute yer alan bilgiler dışında, kullanıcı arabirimi hakkında herhangi bir bilgi yüklemez, çağırmaz veya genellikle herhangi bir bilgi içermez. Bir görevle kullanıcı arabiriminin ilişkilendirildiğinin tek yolu budur.

DtsTask Özniteliği

DtsTaskAttribute Özniteliği, bir görevi kullanıcı arabirimiyle ilişkilendirmek için görev sınıfı koduna eklenir. SSIS Tasarımcısı, görevin tasarımcıda nasıl görüntüleneceğini belirlemek için özniteliğinin özelliklerini kullanır. Bu özellikler görüntülenecek adı ve varsa simgeyi içerir.

Aşağıdaki tabloda özniteliğin DtsTaskAttribute özellikleri açıklanmaktadır.

Mülkiyet Açıklama
DisplayName Denetim Akışı araç kutusunda görev adını görüntüler.
Description Görev açıklaması (öğesinden DtsLocalizableAttributedevralınır). Bu özellik Araç İpuçları'nda gösterilir.
IconResource SSIS Tasarımcısı'nda görüntülenen simge.
RequiredProductLevel Kullanılırsa, sabit listesindeki DTSProductLevel değerlerden birine ayarlayın. Örneğin, RequiredProductLevel = DTSProductLevel.None.
TaskContact Görevin teknik destek gerektirdiği durumlar için iletişim bilgilerini tutar.
TaskType Göreve bir tür atar.
Attribute.TypeId Türetilmiş bir sınıfta uygulandığında, bu Öznitelik için benzersiz bir tanımlayıcı alır. Daha fazla bilgi için bkz. .NET Framework Sınıf Kitaplığı'nda Attribute.TypeID özelliği.
UITypeName Derlemeyi yüklemek için SSIS Designer tarafından kullanılan derlemenin tür adı. Bu özellik, görevin kullanıcı arabirimi derlemesini bulmak için kullanılır.

Aşağıdaki kod örneği, sınıf tanımının DtsTaskAttribute üzerinde kodlanmış olarak göründüğü gibi öğesini gösterir.

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  

SSIS Tasarımcısı, derleme adını, tür adını, sürümünü, kültürünü ve ortak anahtar belirtecini içeren özniteliğinin özelliğini kullanarak UITypeName derlemeyi Genel Bütünleştirilmiş Kod Önbelleği'nde (GAC) bulur ve tasarımcı tarafından kullanılmak üzere yükler.

Derleme bulunduktan sonra SSIS Designer, SSIS Designer'da görev hakkında görevin adı, simgesi ve açıklaması gibi ek bilgileri görüntülemek için özniteliğindeki diğer özellikleri kullanır.

DisplayName, Descriptionve IconResource özellikleri görevin kullanıcıya nasıl sunulacağını belirtir. özelliği, IconResource kullanıcı arabirimi derlemesine eklenmiş simgenin kaynak kimliğini içerir. Tasarımcı, simge kaynağını derlemeden kimliğe göre yükler ve görev pakete eklendiğinde araç kutusunda görev adının yanında ve tasarımcı yüzeyinde görüntüler. Görev simge kaynağı sağlamazsa, tasarımcı görev için varsayılan bir simge kullanır.

IDTSTaskUI Arabirimi

Arabirim, IDtsTaskUI görevle ilişkili kullanıcı arabirimini başlatmak ve görüntülemek için SSIS Designer tarafından çağrılan yöntem ve özellik koleksiyonunu tanımlar. Bir görevin kullanıcı arabirimi çağrıldığında tasarımcı, siz yazarken görev kullanıcı arabirimi tarafından uygulanan yöntemini çağırır Initialize ve ardından sırasıyla görev ve paketin ve TaskHost koleksiyonlarını parametre olarak sağlarConnections. Bu koleksiyonlar yerel olarak depolanır ve daha sonra yönteminde GetView kullanılır.

Tasarımcı, SSIS Designer'da görüntülenen pencereyi istemek için yöntemini çağırır GetView . Görev, görevin kullanıcı arabirimini içeren pencerenin bir örneğini oluşturur ve görüntü için kullanıcı arabirimini tasarımcıya döndürür. Ve nesneleri genellikle TaskHostConnections , görevi yapılandırmak için kullanılabilmesi için aşırı yüklenmiş bir oluşturucu aracılığıyla pencereye sağlanır.

SSIS Tasarımcısı, görevin kullanıcı arabirimini görüntülemek için görev kullanıcı arabiriminin yöntemini çağırır GetView . Görev kullanıcı arabirimi bu yöntemden Windows formunu döndürür ve SSIS Tasarımcısı bu formu kalıcı bir iletişim kutusu olarak gösterir. Form kapatıldığında, SSIS Tasarımcısı görevin değiştirilip değiştirilmediğini ve bu değişikliklerin kaydedilip kaydedilmeyeceğini belirlemek için formun DialogResult özelliğinin değerini inceler. DialogResult özelliğinin değeri Tamam ise, SSIS Tasarımcısı değişiklikleri kaydetmek için görevin kalıcılık yöntemlerini çağırır; aksi takdirde, değişiklikler atılır.

Aşağıdaki kod örneği arabirimini IDtsTaskUI uygular 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)  
     {  
     }  
   }  
}  
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  

Ayrıca Bkz.

Özel Görev Oluşturma
Özel Görev Kodlama
Özel Görev için Kullanıcı Arabirimi Geliştirme