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. |
Microsoft Visual Studio Tools para aplicaciones (VSTA) |
La tarea y el componente utilizan el mismo IDE de VSTA y admiten código escrito en Microsoft Visual Basic 2008 o Microsoft Visual 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. Solo 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. Solo 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 solo lectura. El método PostExecute puede tener acceso a variables de solo 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.
Nota
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 de tareas Script. 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. |
|
Vea también