Comparaison de la tâche de script et du composant Script

La tâche de script, disponible dans la fenêtre Flux de contrôle du concepteur Integration Services, et le composant Script, disponible dans la fenêtre Flux de données, ont des fonctions radicalement différentes dans un package Integration Services. La tâche est un outil de flux de contrôle à usage général, alors que le composant sert de source, de transformation ou de destination dans le flux de données. En dépit de leurs rôles différents, la tâche de script et le composant Script présentent toutefois des similarités dans les outils de codage qu'ils utilisent et les objets du package qu'ils mettent à la disposition des développeurs. Comprendre ces ressemblances et ces différences peut vous aider à utiliser la tâche et le composant de manière plus efficace.

Similarités entre la tâche de script et le composant Script

La tâche de script et le composant Script ont en commun les fonctionnalités suivantes.

Fonctionnalité

Description

Deux modes au moment du design

Dans la tâche et le composant, vous commencez par spécifier des propriétés dans l'éditeur, puis vous basculez vers l'environnement de développement pour écrire du code.

MicrosoftVisual Studio Tools for Applications (VSTA)

La tâche et le composant utilisent le même environnement de développement intégré VSTA et prennent en charge du code écrit dans MicrosoftVisual Basic 2008 ou MicrosoftVisual C# 2008.

Scripts précompilés

Dans SQL Server 2008 Integration Services (SSIS), tous les scripts sont précompilés. Les versions antérieures permettaient de spécifier si les scripts étaient précompilés.

Le script est précompilé en code binaire, ce qui accélère l'exécution, au détriment d'une augmentation de la taille des packages.

Différences entre la tâche de script et le composant Script

La tâche de script et le composant Script présentent les différences importantes suivantes.

Fonctionnalité

Tâche de script

Composant Script

Flux de contrôle / Flux de données

La tâche de script est configurée sous l'onglet Flux de contrôle du concepteur et s'exécute à l'extérieur du flux de données du package.

Le composant Script est configuré dans la page Flux de données du concepteur et représente une source, une transformation ou une destination dans la tâche de flux de données.

Fonction

Une tâche de script peut exécuter quasiment toutes les tâches à caractère général.

Vous devez spécifier si vous souhaitez créer une source, une transformation ou une destination à l'aide du composant Script.

Exécution

Une tâche de script exécute du code personnalisé à un point donné du flux de travail du package. Elle ne s'exécute qu'une seule fois, à moins d'être placée dans un conteneur de boucles ou un gestionnaire d'événements.

Un composant Script s'exécute également une seule fois, mais il exécute généralement sa routine de traitement principale une fois pour chaque ligne de données dans le flux de données.

Éditeur

L'éditeur de tâche de script comporte trois pages : Général, Script et Expressions. Seules les propriétés ReadOnlyVariables, ReadWriteVariables et ScriptLanguage affectent directement le code que vous pouvez écrire.

L'Éditeur de transformation de script contient quatre pages : Colonnes d'entrée, Entrées et sorties, Script et Gestionnaires de connexions. Les métadonnées et les propriétés que vous configurez dans chacune de ces pages déterminent les membres des classes de base générées automatiquement et utilisés pour le codage.

Interaction avec le package

Dans le code écrit pour une tâche de script, la propriété Dts vous permet d'accéder à d'autres fonctionnalités du package. La propriété Dts est membre de la classe ScriptMain.

Dans le code du composant Script, des propriétés d'accesseur typées vous permettent d'accéder à certaines fonctionnalités de package, telles que les variables et les gestionnaires de connexions.

La méthode PreExecute ne peut accéder qu'à des variables en lecture seule. La méthode PostExecute peut accéder à des variables en lecture seule et en lecture/écriture.

Pour plus d'informations sur ces méthodes, consultez Codage et débogage du composant Script.

Utilisation de variables

La tâche de script utilise la propriété Variables de l'objet Dts pour accéder aux variables disponibles par le biais des propriétés ReadOnlyVariables et ReadWriteVariables de la tâche. Par exemple :

Le composant Script utilise des propriétés d'accesseur typées, de la classe de base générée automatiquement, créées à partir des propriétés ReadOnlyVariables et ReadWriteVariables du composant. Par exemple :

Utilisation de connexions

La tâche de script utilise la propriété Connections de l'objet Dts pour accéder aux gestionnaires de connexions définis dans le package. Par exemple :

Le composant Script utilise des propriétés d'accesseur typées, de la classe de base générée automatiquement, créées à partir de la liste de gestionnaires de connexions entrée par l'utilisateur dans la page Gestionnaires de connexions de l'éditeur. Par exemple :

Déclenchement d'événements

La tâche de script utilise la propriété Events de l'objet Dts pour déclencher des événements. Par exemple :

Le composant Script déclenche des erreurs, des avertissements et des messages d'information à l'aide des méthodes de l'interface IDTSComponentMetaData100 retournée par la propriété ComponentMetaData. Par exemple :

Journalisation

La tâche de script utilise la méthode Log de l'objet Dts pour enregistrer des informations dans des modules fournisseurs d'informations actifs. Par exemple :

Le composant Script utilise la méthode Log de la classe de base générée automatiquement pour enregistrer des informations dans des modules fournisseurs d'informations actifs. Par exemple :

[Visual Basic]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)

Retour de résultats

La tâche de script utilise la propriété TaskResult et la propriété ExecutionValue facultative de l'objet Dts pour communiquer ses résultats au runtime.

Le composant Script s'exécute dans le cadre de la tâche de flux de données et ne communique pas de résultats à l'aide de l'un ou l'autre de ces propriétés.

Débogage

La tâche de script prend en charge les points d'arrêt et l'exécution pas à pas du code pendant le débogage dans l'environnement de conception.

RemarqueRemarque
Lorsque vous déboguez un package qui contient plusieurs tâches de script, le débogueur accède aux points d'arrêt d'une seule tâche de script et ignore les points d'arrêt des autres tâches de script. Si une tâche de script fait partie d'un conteneur de boucles Foreach ou d'un conteneur de boucles For, le débogueur ignore les points d'arrêt de la tâche de script après la première itération de la boucle.

Le composant Script ne prend pas en charge la débogage. Pour plus d'informations, consultez « Débogage du composant Script » dans Codage et débogage du composant Script.

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 ou TechNet :

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