Entwickeln benutzerdefinierter Objekte für Integration Services

Wenn die in SQL Server Integration Services enthaltene Ablaufsteuerung und die Datenflussobjekte nicht vollständig Ihren Anforderungen entsprechen, können Sie eine Vielzahl benutzerdefinierter Objekten selbst erstellen, darunter:

  • Benutzerdefinierte Tasks

  • Benutzerdefinierte Verbindungs-Manager   Stellen eine Verbindung mit externen Datenquellen her, die derzeit nicht unterstützt werden.

  • Benutzerdefinierte Protokollanbieter    Protokollieren Paketereignisse in Formaten, die derzeit nicht unterstützt werden.

  • Benutzerdefinierte Enumeratoren   Unterstützen die Iteration durch eine Reihe von Objekt- oder Wertformaten, die derzeit nicht unterstützt werden.

  • Benutzerdefinierte Datenflusskomponenten   Können als Quellen, Transformationen oder Ziele konfiguriert werden.

Diese benutzerdefinierte Entwicklung wird durch das Integration Services-Objektmodell mit Basisklassen vereinfacht, die ein konsistentes und zuverlässiges Framework für Ihre benutzerdefinierte Implementierung bieten.

Wenn Sie die benutzerdefinierte Funktionalität nicht in mehreren Paketen wiederverwenden müssen, bieten Ihnen der Skripttask und die Skriptkomponente die komplette Leistung einer verwalteten Programmiersprache, bei der erheblich weniger Infrastrukturcode geschrieben werden muss. Weitere Informationen finden Sie unter Vergleichen von Skriptlösungen und benutzerdefinierten Objekten.

Schritte zur Entwicklung eines benutzerdefinierten Objekts für Integration Services

Wenn Sie ein benutzerdefiniertes Objekt zur Verwendung in Integration Services entwickeln, erstellen Sie eine Klassenbibliothek (eine DLL), die zur Entwurfszeit und zur Laufzeit vom SSIS-Designer und von der Integration Services-Laufzeit geladen wird. Die wichtigsten Methoden, die Sie implementieren müssen, sind nicht die Methoden, die aus Ihrem eigenen Code aufgerufen werden, sondern die Methoden, die von der Laufzeit zu entsprechenden Zeiten aufgerufen werden, um die Komponenten zu initialisieren und zu überprüfen und ihre Funktionalität aufzurufen.

Nachfolgend sind die Schritte aufgeführt, die Sie bei der Entwicklung eines benutzerdefinierten Objekts befolgen müssen:

  1. Erstellen Sie in Ihrer bevorzugten verwalteten Programmiersprache ein neues Projekt des Typs „Klassenbibliothek“.

  2. Dieses sollte von der entsprechenden Basisklasse erben, wie in der folgenden Tabelle dargestellt.

  3. Übernehmen Sie das entsprechende Attribut für die neue Klasse, wie in der folgenden Tabelle dargestellt.

  4. Überschreiben Sie nach Bedarf die Methoden der Basisklasse, und schreiben Sie den Code für die benutzerdefinierte Funktionalität Ihres Objekts.

  5. Erstellen Sie optional eine benutzerdefinierte Benutzeroberfläche für die Komponente. Um die Bereitstellung zu erleichtern, können Sie die Benutzeroberfläche als separates Projekt innerhalb der gleichen Lösung entwickeln und sie als separate Assembly erstellen.

  6. Sie können optional einen Link zu Beispielen und Hilfeinhalt für das benutzerdefinierte Objekt in der SSIS-Toolbox anzeigen.

  7. Das Erstellen, Bereitstellen und Debuggen von neuen benutzerdefinierten Objekten wird unter Erstellen, Bereitstellen und Debuggen von benutzerdefinierten Objekten beschrieben.

Basisklassen, Attribute und wichtige Methoden

Die nachfolgende Tabelle bietet eine einfache Übersicht über die meisten wichtigen Elemente im Integration Services-Objektmodell für die einzelnen Typen von benutzerdefinierten Objekten, die Sie entwickeln können.

Benutzerdefiniertes Objekt

Basisklasse

Attribut

Wichtige Methoden

Aufgaben

Task

DtsTaskAttribute

Execute

Verbindungs-Manager

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection, ReleaseConnection

Protokollanbieter

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

Enumerator

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

Datenflusskomponente

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

Verwenden Sie die folgenden Eigenschaften, um einen Link zu Beispielen und Hilfeinhalt für ein benutzerdefiniertes Objekt, das in verwaltetem Code geschrieben wurde, in der SSIS-Toolbox anzuzeigen.

Um einen Link zu Beispielen und Hilfeinhalt für ein benutzerdefiniertes Objekt anzuzeigen, das im systemeigenen Code geschrieben wurde, fügen Sie Einträge in der Registrierungsskriptdatei (.rgs) für SamplesTag, HelpKeyword und HelpCollection hinzu. Im Folgenden finden Sie ein Beispiel.

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

Bereitstellen einer benutzerdefinierten Benutzeroberfläche

Damit Benutzer Ihres benutzerdefinierten Objekts dessen Eigenschaften konfigurieren können, müssen Sie möglicherweise auch eine benutzerdefinierte Benutzeroberfläche entwickeln. In Fällen, in denen eine benutzerdefinierte Benutzeroberfläche nicht ausdrücklich erforderlich ist, können Sie eine solche Oberfläche erstellen, um eine benutzerfreundlichere Oberfläche als den standardmäßigen Editor bereitzustellen.

In einem benutzerdefinierten Benutzeroberflächenprojekt oder einer entsprechenden Assembly gibt es im Allgemeinen zwei Klassen: eine Klasse, die eine Integration Services-Schnittstelle für Benutzeroberflächen für den speziellen Typ des benutzerdefinierten Objekts implementiert, und das Windows Form, in dem diese angezeigt wird, um Informationen vom Benutzer zu erfassen. Die von Ihnen implementierten Oberflächen weisen nur wenige Methoden auf, und die Entwicklung einer benutzerdefinierten Benutzeroberfläche ist ganz einfach.

HinweisHinweis

Viele Integration Services-Protokollanbieter verfügen über eine benutzerdefinierte Benutzeroberfläche, die IDtsLogProviderUI implementiert und das Textfeld Konfiguration durch eine gefilterte Dropdownliste der verfügbaren Verbindungs-Manager ersetzt. Individuelle Benutzeroberflächen für benutzerdefinierte Protokollanbieter werden in dieser Version von Integration Services jedoch nicht implementiert. Das Angeben eines Werts für die UITypeName-Eigenschaft von DtsLogProviderAttribute hat keine Auswirkungen.

Die nachfolgende Tabelle bietet eine einfache Übersicht über die Oberflächen, die Sie implementieren müssen, wenn Sie eine benutzerdefinierte Benutzeroberfläche für die einzelnen Typen eines benutzerdefinierten Objekts entwickeln. Es wird auch erläutert, was dem Benutzer angezeigt wird, wenn Sie keine benutzerdefinierte Oberfläche für Ihr Objekt entwickeln möchten oder wenn Sie Ihr Objekt nicht mithilfe der UITypeName-Eigenschaft in dem Attribut des Objekts mit seiner Benutzeroberfläche verknüpfen. Der leistungsstarke Erweiterte Editor mag für eine Datenflusskomponente zwar zufriedenstellend sein, das Eigenschaftenfenster stellt jedoch eine weniger benutzerfreundliche Lösung für Tasks und Verbindungs-Manager dar. Ohne ein benutzerdefiniertes Formular kann ein benutzerdefinierter ForEach-Enumerator überhaupt nicht konfiguriert werden.

Benutzerdefiniertes Objekt

Basisklasse für Benutzeroberfläche

Standardmäßiges Bearbeitungsverhalten, wenn keine benutzerdefinierte Benutzeroberfläche bereitgestellt wird

Task

IDtsTaskUI

Nur das Eigenschaftenfenster

Verbindungs-Manager

IDtsConnectionManagerUI

Nur das Eigenschaftenfenster

Protokollanbieter

IDtsLogProviderUI

(Nicht in Integration Services implementiert)

Textfeld in der Spalte Konfiguration

Enumerator

ForEachEnumeratorUI

Nur das Eigenschaftenfenster. Der Bereich für die Enumeratorkonfiguration des Editors ist leer.

Datenflusskomponente

IDtsComponentUI

Erweiterter Editor

Externe Ressourcen

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf MSDN auf der Integration Services-Seite:


Abonnieren Sie die auf der Seite verfügbaren RSS-Feeds, um automatische Benachrichtigungen zu diesen Updates zu erhalten.

Siehe auch

Aufgaben

Erstellen, Bereitstellen und Debuggen von benutzerdefinierten Objekten

Konzepte

Beibehalten von benutzerdefinierten Objekten