Teilen über


Erstellen eines benutzerdefinierten Tasks

Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory

Die Schritte zum Erstellen eines benutzerdefinierten Tasks ähneln denen jedes anderen benutzerdefinierten Objekts für Integration Services:

  • Erstellen Sie eine neue Klasse, die von der Basisklasse erbt. Für Tasks ist Microsoft.SqlServer.Dts.Runtime.Task die Basisklasse.

  • Weisen Sie das Attribut zu, das den Typ des Objekts für die Klasse identifiziert. Für einen Task ist das Attribut DtsTaskAttribute.

  • Überschreiben Sie die Implementierung der Methoden und Eigenschaften der Basisklasse. Für einen Task sind dies die Methoden Validate und Execute.

  • Entwickeln Sie optional eine individuelle Benutzeroberfläche. Für einen Task ist dazu eine Klasse erforderlich, die die IDtsTaskUI-Schnittstelle implementiert.

Erste Schritte mit einem benutzerdefinierten Task

Erstellen von Projekten und Klassen

Da alle verwalteten Tasks von der Microsoft.SqlServer.Dts.Runtime.Task-Basisklasse abgeleitet werden, besteht der erste Schritt beim Erstellen eines benutzerdefinierten Tasks darin, in Ihrer bevorzugten verwalteten Programmiersprache ein Klassenbibliotheksprojekt anzulegen und eine Klasse zu generieren, die von der Basisklasse erbt. In dieser abgeleiteten Klasse überschreiben Sie die Methoden und Eigenschaften der Basisklasse, um die benutzerdefinierten Funktionen zu implementieren.

Erstellen Sie in der gleichen Lösung ein zweites Klassenbibliotheksprojekt für die individuelle Benutzeroberfläche. Für eine einfache Bereitstellung sollten Sie eine eigene Assembly für die Benutzeroberfläche verwenden, da Sie so den Verbindungs-Manager oder seine Benutzeroberfläche unabhängig aktualisieren und erneut bereitstellen können.

Konfigurieren Sie beide Projekte für das Signieren der Assemblys, die bei der Erstellung erzeugt werden, mit einer Schlüsseldatei mit starkem Namen.

Zuweisen des 'DtsTask'-Attributs

Weisen Sie das DtsTaskAttribute-Attribut der Klasse zu, die Sie erstellt haben, um sie als Task zu kennzeichnen. Dieses Attribut stellt Entwurfszeitinformationen, z. B. Name, Beschreibung und Tasktyp des Tasks, bereit.

Verwenden Sie die UITypeName-Eigenschaft, um den Task mit der individuellen Benutzeroberfläche zu verknüpfen. Um das für diese Eigenschaft erforderliche öffentliche Schlüsseltoken zu erhalten, können Sie sn.exe -t verwenden. Damit zeigen Sie das öffentliche Schlüsseltoken aus der Schlüsselpaardatei (.snk) an, die Sie für das Signieren der Benutzeroberflächenassembly verwenden möchten.

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  

Erstellen, Bereitstellen und Debuggen eines benutzerdefinierten Tasks

Die Schritte zum Erstellen, Bereitstellen und Debuggen eines benutzerdefinierten Tasks in Integration Services ähneln denen für andere Typen benutzerdefinierter Objekte. Weitere Informationen finden Sie unter Building, Deploying, and Debugging Custom Objects (Erstellen, Bereitstellen und Debuggen von benutzerdefinierten Objekten).

Weitere Informationen

Erstellen eines benutzerdefinierten Tasks
Codieren eines benutzerdefinierten Tasks
Entwickeln einer Benutzeroberfläche für einen benutzerdefinierten Task