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 Objekte selbst erstellen. Dazu gehören:
Benutzerdefinierte Tasks
Benutzerdefinierte Verbindungs-Manager: Stellen Sie eine Verbindung zu externen Datenquellen her, die derzeit nicht unterstützt werden.
Benutzerdefinierte Protokollanbieter: Protokollieren Sie 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.
Funktionstüchtige Beispiele für die einzelnen Objekttypen finden Sie in den Integration Services-Beispielen auf Codeplex.
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:
Erstellen Sie in Ihrer bevorzugten verwalteten Programmiersprache ein neues Projekt des Typs „Klassenbibliothek“.
Dieses sollte von der entsprechenden Basisklasse erben, wie in der folgenden Tabelle dargestellt.
Übernehmen Sie das entsprechende Attribut für die neue Klasse, wie in der folgenden Tabelle dargestellt.
Überschreiben Sie nach Bedarf die Methoden der Basisklasse, und schreiben Sie den Code für die benutzerdefinierte Funktionalität Ihres Objekts.
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.
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 in dem Integration Services-Objektmodell für die einzelnen Typen von benutzerdefinierten Objekten, die Sie entwickeln können.
Benutzerdefiniertes Objekt |
Basisklasse |
Attribut |
Wichtige Methoden |
---|---|---|---|
Task |
|||
Verbindungs-Manager |
|||
Protokollanbieter |
|||
Enumerator |
|||
Datenflusskomponente |
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.
Hinweis |
---|
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 |
Nur das Eigenschaftenfenster |
|
Verbindungs-Manager |
Nur das Eigenschaftenfenster |
|
Protokollanbieter |
(Nicht in Integration Services implementiert) |
Textfeld in der Spalte Konfiguration |
Enumerator |
Nur das Eigenschaftenfenster. Der Bereich für die Enumeratorkonfiguration des Editors ist leer. |
|
Datenflusskomponente |
Erweiterter Editor |
Externe Ressourcen
- Blogeintrag, Erstellungsprozess für Visual Studio 2010-Projektmappen gibt eine Warnung über die indirekte Abhängigkeit von der .NET Framework-Assembly aufgrund von SSIS-Verweisen zurück (unter blogs.msdn.com).
|
Siehe auch