Partager via


Développement d'objets personnalisés pour Integration Services

Lorsque les objets de flux de contrôle et de flux de données inclus dans SQL Server Integration Services ne répondent pas complètement à vos besoins, vous pouvez développer vos propres types d'objets personnalisés, notamment les suivants :

  • Tâches personnalisées.

  • Gestionnaires de connexion personnalisés.   Se connecter aux sources de données externes qui ne sont pas prises en charge actuellement.

  • Fournisseurs d'informations personnalisés.   Enregistrer des événements de package dans des formats qui ne sont pas pris en charge actuellement.

  • Énumérateurs personnalisés.   Prendre en charge l'itération sur un jeu d'objets ou de formats de valeurs qui ne sont pas pris en charge actuellement.

  • Composants de flux de données personnalisés.   Peuvent être configurés comme des sources, des transformations ou des destinations.

Le modèle objet Integration Services facilite ce développement personnalisé à l'aide de classes de base qui fournissent un cadre cohérent et fiable pour votre implémentation personnalisée.

Si vous n'avez pas à réutiliser les fonctionnalités personnalisées dans plusieurs packages, la tâche de script et le composant Script vous donnent toute la puissance d'un langage de programmation managé avec beaucoup moins de code d'infrastructure à écrire. Pour plus d'informations, consultez Comparaison des solutions de script et des objets personnalisés.

Étapes de développement d'un objet personnalisé pour Integration Services

Lorsque vous développez un objet personnalisé à utiliser dans Integration Services, vous développez une bibliothèque de classes (DLL) qui sera chargée au moment de la conception et au moment de l'exécution par le Concepteur SSIS et par le runtime Integration Services. Les méthodes les plus importantes que vous devez implémenter ne sont pas celles que vous appelez à partir de votre propre code, mais celles que le runtime appelle à des moments appropriés pour initialiser et valider votre composant et appeler ses fonctionnalités.

Voici les étapes à suivre pour développer un objet personnalisé :

  1. Créez un projet de type Bibliothèque de classes dans votre langage de programmation managé préféré.

  2. Héritez de la classe de base appropriée, comme indiqué dans le tableau suivant.

  3. Appliquez l'attribut approprié à votre nouvelle classe, comme indiqué dans le tableau suivant.

  4. Remplacez les méthodes de la classe de base comme requis et écrivez le code des fonctionnalités personnalisées de votre objet.

  5. Générez éventuellement une interface utilisateur personnalisée pour votre composant. Afin de faciliter le déploiement, vous pouvez développer l'interface utilisateur sous la forme d'un projet distinct au sein de la même solution, puis la générer en tant qu'assembly séparé.

  6. Éventuellement, affichez un lien vers des exemples et contenus d'Aide pour l'objet personnalisé, dans la Boîte à outils SSIS.

  7. Générez, déployez et déboguez votre nouvel objet personnalisé comme indiqué dans Génération, déploiement et débogage d'objets personnalisés.

Classes de base, attributs et méthodes importantes

Ce tableau constitue une référence simple aux éléments les plus importants du modèle objet Integration Services pour chaque type d'objet personnalisé que vous pouvez développer.

Objet personnalisé

Classe de base

Attribut

Méthodes importantes

Tâche

Task

DtsTaskAttribute

Execute

Gestionnaire de connexions

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection, ReleaseConnection

Module fournisseur d'informations

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

Énumérateur

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

Composant de flux de données

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

Liens vers des exemples et des contenus d'aide

Pour afficher un lien dans la Boîte à outils SSIS vers des exemples et des contenus d'Aide pour un objet personnalisé écrit en code managé, utilisez les propriétés suivantes.

Pour afficher un lien vers des exemples et des contenus d'Aide pour un objet personnalisé écrit en code natif, ajoutez des entrées dans le fichier de Registre Script (.rgs) pour SamplesTag, HelpKeyword et HelpCollection. Voici un exemple.

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

val SamplesTag = s 'ExecutePackageTask'

Interface utilisateur personnalisée

Pour permettre aux utilisateurs de votre objet personnalisé de configurer ses propriétés, vous devrez peut-être également développer une interface utilisateur personnalisée. Dans les cas où une interface utilisateur personnalisée n'est pas strictement requise, vous pouvez choisir d'en créer une afin de fournir une interface plus conviviale que l'éditeur par défaut.

Dans un projet d'interface utilisateur personnalisée ou assembly, vous avez généralement deux classes : une classe qui implémente une interface Integration Services pour les interfaces utilisateur du type spécifique de l'objet personnalisé et le formulaire Windows qu'elle affiche pour collecter des informations auprès de l'utilisateur. Les interfaces que vous implémentez comportent uniquement quelques méthodes et une interface utilisateur personnalisée n'est pas difficile à développer.

[!REMARQUE]

De nombreux modules fournisseurs d'informations Integration Services ont une interface utilisateur personnalisée qui implémente l'objet IDtsLogProviderUI et remplace la zone de texte Configuration par la liste déroulante filtrée des gestionnaires de connexions disponibles. Toutefois, les interfaces utilisateur personnalisées des modules fournisseurs d'informations personnalisés ne sont pas implémentées dans cette version de Integration Services. La spécification d'une valeur pour la propriété UITypeName de l'objet DtsLogProviderAttribute est sans effet.

Le tableau suivant constitue une référence simple aux interfaces que vous devez implémenter lorsque vous développez une interface utilisateur personnalisée pour chaque type d'objet personnalisé. Il explique également ce que l'utilisateur voit si vous choisissez de ne pas développer d'interface utilisateur personnalisée pour votre objet, ou si vous ne pouvez pas lier votre objet à son interface utilisateur en utilisant la propriété UITypeName dans l'attribut de l'objet. Bien que le puissant éditeur avancé puisse s'avérer satisfaisant pour un composant de flux de données, la fenêtre Propriétés est une solution moins conviviale pour les tâches et les gestionnaires de connexions, et un énumérateur ForEach personnalisé ne peut pas du tout être configuré sans formulaire personnalisé.

Objet personnalisé

Classe de base pour interface utilisateur

Comportement d'édition par défaut si aucune interface utilisateur personnalisée n'est fournie

Tâche

IDtsTaskUI

Fenêtre Propriétés uniquement

Gestionnaire de connexions

IDtsConnectionManagerUI

Fenêtre Propriétés uniquement

Module fournisseur d'informations

IDtsLogProviderUI

(Non implémenté dans Integration Services.)

Zone de texte dans la colonne Configuration

Énumérateur

ForEachEnumeratorUI

Fenêtre Propriétés uniquement. La zone Configuration de l'énumérateur de l'éditeur est vide.

Composant de flux de données

IDtsComponentUI

Éditeur avancé

Ressources externes

Icône Integration Services (petite) Rester à jour avec Integration Services

Pour obtenir les derniers téléchargements, articles, exemples et vidéos de Microsoft, ainsi que des solutions sélectionnées par la communauté, visitez la page Integration Services sur MSDN :


Pour recevoir une notification automatique de ces mises à jour, abonnez-vous aux flux RSS disponibles sur la page.

Voir aussi

Tâches

Génération, déploiement et débogage d'objets personnalisés

Concepts

Persistance des objets personnalisés