Bagikan melalui


Mengembangkan Antarmuka Pengguna untuk Tugas Kustom

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Model objek Integration Services memberi pengembang tugas kustom kemampuan untuk dengan mudah membuat antarmuka pengguna kustom untuk tugas yang kemudian dapat diintegrasikan dan ditampilkan di SQL Server Data Tools (SSDT). Antarmuka pengguna dapat memberikan informasi bermanfaat kepada pengguna di SSIS Designer, dan memandu pengguna untuk mengonfigurasi properti dan pengaturan tugas kustom dengan benar.

Mengembangkan antarmuka pengguna kustom untuk tugas melibatkan penggunaan dua kelas penting. Tabel berikut ini menjelaskan kelas-kelas tersebut.

Kelas Deskripsi
DtsTaskAttribute Atribut yang mengidentifikasi tugas terkelola, dan menyediakan informasi waktu desain melalui propertinya untuk mengontrol cara Perancang SSIS menampilkan dan berinteraksi dengan objek.
IDtsTaskUI Antarmuka yang digunakan oleh tugas untuk mengaitkan tugas dengan antarmuka pengguna kustomnya.

Bagian ini menjelaskan peran DtsTaskAttribute atribut dan IDtsTaskUI antarmuka saat Anda mengembangkan antarmuka pengguna untuk tugas kustom, dan memberikan detail tentang cara membuat, mengintegrasikan, menyebarkan, dan men-debug tugas dalam SSIS Designer.

Perancang SSIS menyediakan beberapa titik entri ke antarmuka pengguna untuk tugas: pengguna dapat memilih Edit pada menu pintasan, klik dua kali tugas, atau klik tautan Perlihatkan Editor di bagian bawah lembar properti. Saat pengguna mengakses salah satu titik entri ini, SSIS Designer menemukan dan memuat rakitan yang berisi antarmuka pengguna untuk tugas tersebut. Antarmuka pengguna untuk tugas bertanggung jawab untuk membuat kotak dialog properti yang ditampilkan kepada pengguna di SQL Server Data Tools (SSDT).

Tugas dan antarmuka penggunanya adalah entitas terpisah. Mereka harus diimplementasikan dalam rakitan terpisah untuk mengurangi pekerjaan pelokalan, penyebaran, dan pemeliharaan. DLL tugas tidak memuat, memanggil, atau umumnya berisi pengetahuan apa pun tentang antarmuka penggunanya, kecuali untuk informasi yang terkandung dalam DtsTaskAttribute nilai atribut yang dikodekan dalam tugas. Ini adalah satu-satunya cara agar tugas dan antarmuka penggunanya dikaitkan.

Atribut DtsTask

Atribut DtsTaskAttribute disertakan dalam kode kelas tugas untuk mengaitkan tugas dengan antarmuka penggunanya. Perancang SSIS menggunakan properti atribut untuk menentukan cara menampilkan tugas di perancang. Properti ini mencakup nama yang akan ditampilkan dan ikon, jika ada.

Tabel berikut ini menjelaskan properti DtsTaskAttribute atribut .

Properti Deskripsi
DisplayName Menampilkan nama tugas di kotak alat Alur Kontrol.
Description Deskripsi tugas (diwariskan dari DtsLocalizableAttribute). Properti ini ditampilkan di TipsAlat.
IconResource Ikon ditampilkan di SSIS Designer.
RequiredProductLevel Jika digunakan, atur ke salah satu nilai dalam DTSProductLevel enumerasi. Contohnya,RequiredProductLevel = DTSProductLevel.None.
TaskContact Menyimpan informasi kontak untuk kesempatan ketika tugas memerlukan dukungan teknis.
TaskType Menetapkan tipe ke tugas.
Attribute.TypeId Mendapatkan pengidentifikasi unik untuk Atribut ini saat diimplementasikan di kelas turunan. Untuk informasi selengkapnya, lihat properti Attribute.TypeID di Pustaka Kelas .NET Framework.
UITypeName Nama jenis rakitan yang digunakan oleh SSIS Designer untuk memuat assembly. Properti ini digunakan untuk menemukan rakitan antarmuka pengguna untuk tugas tersebut.

Contoh kode berikut menunjukkan seperti yang DtsTaskAttribute akan terlihat, dikodekan di atas definisi kelas.

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  

Perancang SSIS menggunakan UITypeName properti atribut yang mencakup nama rakitan, nama jenis, versi, budaya, dan token kunci publik, untuk menemukan perakitan di Global Assembly Cache (GAC) dan memuatnya untuk digunakan oleh perancang.

Setelah rakitan ditemukan, SSIS Designer menggunakan properti lain dalam atribut untuk menampilkan informasi tambahan tentang tugas di SSIS Designer, seperti nama, ikon, dan deskripsi tugas.

Properti DisplayName, Description, dan IconResource menentukan bagaimana tugas disajikan kepada pengguna. Properti IconResource berisi ID sumber daya ikon yang disematkan dalam rakitan antarmuka pengguna. Perancang memuat sumber daya ikon menurut ID dari rakitan, dan menampilkannya di samping nama tugas di kotak alat dan pada permukaan perancang saat tugas ditambahkan ke paket. Jika tugas tidak menyediakan sumber daya ikon, perancang menggunakan ikon default untuk tugas tersebut.

Antarmuka IDTSTaskUI

Antarmuka IDtsTaskUI menentukan kumpulan metode dan properti yang dipanggil oleh SSIS Designer untuk menginisialisasi dan menampilkan antarmuka pengguna yang terkait dengan tugas. Ketika antarmuka pengguna untuk tugas dipanggil, perancang memanggil Initialize metode , diimplementasikan oleh antarmuka pengguna tugas saat Anda menulisnya, dan kemudian menyediakan TaskHost Connections dan koleksi tugas dan paket, masing-masing, sebagai parameter. Koleksi ini disimpan secara lokal, dan digunakan kemudian dalam metode .GetView

Perancang memanggil GetView metode untuk meminta jendela yang ditampilkan di SSIS Designer. Tugas membuat instans jendela yang berisi antarmuka pengguna untuk tugas, dan mengembalikan antarmuka pengguna ke perancang untuk ditampilkan. Biasanya, TaskHost objek dan Connections disediakan ke jendela melalui konstruktor yang kelebihan beban sehingga dapat digunakan untuk mengonfigurasi tugas.

Perancang SSIS memanggil GetView metode UI tugas untuk menampilkan antarmuka pengguna untuk tugas tersebut. Antarmuka pengguna tugas mengembalikan formulir Windows dari metode ini, dan SSIS Designer memperlihatkan formulir ini sebagai kotak dialog modal. Ketika formulir ditutup, SSIS Designer memeriksa nilai properti DialogResult formulir untuk menentukan apakah tugas telah dimodifikasi dan apakah modifikasi ini harus disimpan. Jika nilai properti DialogResult OK, Perancang SSIS memanggil metode persistensi tugas untuk menyimpan perubahan; jika tidak, perubahan akan dibuang.

Sampel kode berikut mengimplementasikan IDtsTaskUI antarmuka, dan mengasumsikan keberadaan kelas formulir Windows bernama SampleTaskForm.

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  

Lihat Juga

Membuat Tugas Kustom
Mengkoding Tugas Kustom
Mengembangkan Antarmuka Pengguna untuk Tugas Kustom