Comparar la tarea Script y el componente de script

La tarea Script, disponible en la ventana Flujo de control del Diseñador de Integration Services, y el componente de script, disponible en la ventana Flujo de datos, tienen fines muy diferentes en un paquete de Integration Services. La tarea es una herramienta de flujo de control de uso general, en tanto que el componente actúa como un origen, transformación o destino en el flujo de datos. A pesar de sus fines diferentes, sin embargo, la tarea Script y el componente de script tienen algunas similitudes en las herramientas de codificación que utilizan y los objetos del paquete que ponen a disposición del desarrollador de software. Comprender sus similitudes y diferencias puede ayudarle a utilizar la tarea y el componente de manera más eficaz.

Similitudes entre la tarea Script y el componente de script

La tarea Script y el componente de script comparten las siguientes características comunes.

Característica

Descripción

Dos modos en tiempo de diseño

Tanto en la tarea como en el componente, se comienza especificando las propiedades en el editor y, a continuación, se cambia al entorno de desarrollo para escribir código.

MicrosoftVisual Studio Tools para aplicaciones (VSTA)

La tarea y el componente utilizan el mismo IDE de VSTA y admiten código escrito en MicrosoftVisual Basic 2008 o MicrosoftVisual C# 2008.

Scripts precompilados

En SQL Server 2008 Integration Services (SSIS), todos los scripts están precompilados. En versiones anteriores, podía especificar si se precompilaban los scripts.

El script se precompila en código binario, lo que permite una ejecución más rápida, pero aumenta el tamaño del paquete.

Diferencias entre la tarea Script y el componente de script

La tarea Script y el componente de script tienen las siguientes diferencias notables.

Característica

Tarea Script

Componente de script

Flujo de control/flujo de datos

La tarea Script se configura en la ficha Flujo de control del diseñador y se ejecuta fuera del flujo de datos del paquete.

El componente de script se configura en la página Flujo de datos del diseñador y representa un origen, transformación o destino en la tarea Flujo de datos.

Finalidad

Una tarea Script puede realizar prácticamente cualquier tarea de uso general.

Con el componente de script, debe especificar si desea crear un origen, transformación o destino.

Ejecución

Una tarea Script ejecuta código personalizado en algún punto del flujo de trabajo del paquete. Sólo se ejecuta una vez, a menos que se incluya en un contenedor de bucles o en un controlador de eventos.

Un componente de Script también se ejecuta una vez, pero normalmente ejecuta su rutina de procesamiento principal una vez para cada fila de datos del flujo de datos.

Editor

El Editor de la tarea Script tiene tres páginas: General, Script y Expresiones. Sólo las propiedades ReadOnlyVariables y ReadWriteVariables y ScriptLanguage afectan directamente al código que se puede escribir.

El Editor de transformación Script tiene hasta cuatro páginas: Columnas de entrada, Entradas y salidas, Script y Administradores de conexión. Los metadatos y propiedades que configura en cada una de estas páginas determinan los miembros de las clases base que se generan automáticamente para su uso en el código.

Interacción con el paquete

En el código escrito para una tarea Script, utiliza la propiedad Dts para tener acceso a otras características del paquete. La propiedad Dts es miembro de la clase ScriptMain.

En el código del componente de script, utiliza propiedades de descriptor de acceso con tipo para tener acceso a ciertas características del paquete como variables y administradores de conexión.

El método PreExecute únicamente puede tener acceso a variables de sólo lectura. El método PostExecute puede tener acceso a variables de sólo lectura y de lectura y escritura.

Para obtener más información acerca de estos métodos, vea Codificar y depurar el componente de script.

Utilizar variables

La tarea Script utiliza la propiedad Variables del objeto Dts para tener acceso a variables disponibles a través de las propiedades ReadOnlyVariables y ReadWriteVariables de la tarea. Por ejemplo:

El componente de script utiliza propiedades de descriptor de acceso con tipo de la clase base generada automáticamente, creadas a partir de las propiedades ReadOnlyVariables y ReadWriteVariables del componente. Por ejemplo:

Utilizar conexiones

La tarea Script utiliza la propiedad Connections del objeto Dts para tener acceso a los administradores de conexión definidos en el paquete. Por ejemplo:

El componente de script utiliza propiedades de descriptor de acceso con tipo de la clase base generada automáticamente, creadas a partir de la lista de administradores de conexión escrita por el usuario en la página Administradores de conexión del editor. Por ejemplo:

Provocar eventos

La tarea Script utiliza la propiedad Events del objeto Dts para provocar eventos. Por ejemplo:

El componente de script provoca errores, advertencias y mensajes informativos utilizando los métodos de la interfaz IDTSComponentMetaData100 que devuelve la propiedad ComponentMetaData. Por ejemplo:

Registrar

La tarea Script utiliza el método Log del objeto Dts para registrar información en los proveedores de registro habilitados. Por ejemplo:

El componente de script utiliza el método Log de la clase base generada automáticamente para registrar información en los proveedores de registro habilitados. Por ejemplo:

[Visual Basic]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)

Devolver resultados

La tarea Script utiliza la propiedad TaskResult y la propiedad opcional ExecutionValue del objeto Dts para notificar sus resultados al motor en tiempo de ejecución.

El componente de script se ejecuta como parte de la tarea Flujo de datos y no notifica resultados mediante estas propiedades.

Depurar

La tarea Script admite puntos de interrupción y recorridos paso a paso por el código mientras se depura en el entorno de diseño.

NotaNota
Al depurar un paquete que contiene varias tareas Script, el depurador alcanzará los puntos de interrupción solo en una tarea Script y omitirá los puntos de interrupción del resto. Si una tarea Script forma parte de un contenedor de bucles Foreach o For, el depurador omite los puntos de interrupción en la tarea Script después de la primera iteración del bucle.

El componente de script no admite la depuración. Para obtener más información, vea "Depurar el componente de script" en Codificar y depurar el componente de script.

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las más recientes descargas, artículos, ejemplos y vídeos de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.