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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk