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

 

S’applique à : SQL Server 2016 Preview

Lorsque le flux de contrôle et flux de données qui sont incluses avec les objets SQL Server Integration Services ne répondent pas complètement à vos besoins, vous pouvez développer plusieurs types d’objets personnalisés dans votre propre, notamment :

  • Tâches personnalisées.

  • Gestionnaires de connexions personnalisés. Connectez-vous aux sources de données externes qui ne sont pas prises en charge actuellement.

  • Modules fournisseurs d’informations personnalisé. Enregistrez des événements de package dans des formats qui ne sont pas pris en charge actuellement.

  • Énumérateurs personnalisés. Prenez 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ées. Peuvent être configurés en tant que sources, transformations ou 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.

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, afficher un lien vers des exemples et le contenu de l’aide de l’objet personnalisé, dans le boîte à outils SSIS.

  7. Générer, déployer et déboguer votre nouvel objet personnalisé comme décrit dans génération, déploiement et débogage des objets personnalisés.

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 baseAttributMéthodes importantes
TâcheTâcheDtsTaskAttributeExécuter
Gestionnaire de connexionsConnectionManagerBaseDtsConnectionAttributeAcquireConnection, ReleaseConnection
Module fournisseur d'informationsLogProviderBaseDtsLogProviderAttributeSous-routines OpenLog, journal, CloseLog
ÉnumérateurForEachEnumeratorDtsForEachEnumeratorAttributeGetEnumerator
Composant de flux de donnéesPipelineComponentDtsPipelineComponentAttributeProvideComponentProperties, PrimeOutput, ProcessInput

Pour afficher un lien dans la boîte à outils SSIS vers des exemples et le contenu de l’aide d’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'

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.

System_CAPS_ICON_note.jpg Remarque


Nombreuses Integration Services modules fournisseurs d’informations ont une interface utilisateur personnalisée qui implémente IDtsLogProviderUI et remplace le Configuration zone de texte avec une 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. En spécifiant une valeur pour le UITypeName propriétés de la DtsLogProviderAttribute n’a aucun 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 voit l’utilisateur si vous choisissez de ne pas développer une interface utilisateur personnalisée pour votre objet, ou si vous ne pouvez pas lier votre objet à son interface utilisateur à l’aide de la UITypeName propriété 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 utilisateurComportement d'édition par défaut si aucune interface utilisateur personnalisée n'est fournie
TâcheIDtsTaskUIFenêtre Propriétés uniquement
Gestionnaire de connexionsIDtsConnectionManagerUIFenêtre Propriétés uniquement
Module fournisseur d'informationsIDtsLogProviderUI

(Non implémenté dans Integration Services.)
Zone de texte Configuration colonne
ÉnumérateurForEachEnumeratorUIFenêtre Propriétés uniquement. La zone Configuration de l'énumérateur de l'éditeur est vide.
Composant de flux de donnéesIDtsComponentUIÉditeur avancé
Integration Services icon (small)  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 :



 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.

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

Ajouts de la communauté

AJOUTER
Afficher: