Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La tarea Script, disponible en la ventana Flujo de control del diseñador de Integration Services y el componente 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, mientras que el componente actúa como origen, transformación o destino en el flujo de datos. Sin embargo, a pesar de sus diferentes propósitos, la tarea Script y el componente Script tienen algunas similitudes en las herramientas de codificación que usan y los objetos del paquete que hacen disponibles para el desarrollador. Comprender sus similitudes y diferencias puede ayudarle a usar la tarea y el componente de forma más eficaz.
Similitudes entre la tarea Script y el componente de script
La tarea Script y el componente Script comparten las siguientes características comunes.
| Característica | Descripción |
|---|---|
| Dos modos en tiempo de diseño | En la tarea y el componente, empiece especificando propiedades en el editor y, a continuación, cambie al entorno de desarrollo para escribir código. |
| Microsoft Visual Studio Tools for Applications (VSTA) | Tanto la tarea como el componente usan el mismo IDE de VSTA y admiten código escrito en Microsoft Visual Basic o Microsoft Visual C#. |
| Scripts precompilados | A partir de SQL Server 2008 Integration Services (SSIS), todos los scripts están precompilados. En versiones anteriores, podría especificar si los scripts estaban precompilados. El script se precompila en código binario, lo que permite una ejecución más rápida, pero a costa del aumento del tamaño del paquete. |
| Depuración de errores | Tanto la tarea como el componente admiten puntos de interrupción y el código paso a paso mientras se depura en el entorno de diseño. Para obtener más información, vea Codificar y depurar la tarea Script y [Codificar y depurar el componente de script](.. /extend-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md. |
Diferencias entre la tarea Script y el componente de script
La tarea Script y el componente Script tienen las siguientes diferencias destacadas.
| Característica | Tarea Script | Componente de script |
|---|---|---|
| Flujo de control/Flujo de datos | La tarea Script se configura en la pestaña Flujo de control del diseñador y se ejecuta fuera del flujo de datos del paquete. | El componente 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. |
| Propósito | Una tarea Script puede realizar casi cualquier tarea de uso general. | Debe especificar si desea crear un origen, una transformación o un destino con el componente Script. |
| Ejecución | Una tarea Script ejecuta código personalizado en algún momento del flujo de trabajo del paquete. A menos que lo coloque en un contenedor de bucles o en un controlador de eventos, solo se ejecuta una vez. | Un componente 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 ReadOnlyVariables propiedades y ReadWriteVariablesy 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, scripts y administradores de conexiones. Los metadatos y propiedades que configure en cada una de estas páginas determinan los miembros de las clases base que se generan automáticamente para su uso en la codificación. |
| Interacción con el paquete | En el código escrito para una tarea Script, se usa la Dts propiedad para tener acceso a otras características del paquete. La Dts propiedad es un miembro de la ScriptMain clase . |
En el código de componente de script, se usan propiedades de descriptor de acceso con tipo para acceder a determinadas características del paquete, como variables y administradores de conexiones. El PreExecute método solo puede tener acceso a variables de solo lectura. El PostExecute método puede tener acceso tanto a variables de solo lectura como de lectura y escritura.Para obtener más información sobre estos métodos, vea [Codificación y depuración del componente de script](.. /extend-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md. |
| Uso de variables | La tarea Script usa la Variables propiedad del Dts objeto para tener acceso a variables que están disponibles a través de las propiedades y ReadWriteVariables de ReadOnlyVariables la tarea. Por ejemplo:[VB] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString[C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
El componente Script usa propiedades de descriptor de acceso con tipo de la clase basada en generación automática, creada a partir de las propiedades y ReadWriteVariables del ReadOnlyVariables componente. Por ejemplo: [VB] Dim myVar as String myVar = Me.Variables.MyStringVariable[C#] string myVar; myVar = this.Variables.MyStringVariable; |
| Uso de conexiones | La tarea Script usa la Connections propiedad del Dts objeto para acceder a los administradores de conexiones definidos en el paquete. Por ejemplo:[VB] Dim myFlatFileConnection As String myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String)[C#] string myFlatFileConnection; myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String); |
El componente Script usa propiedades de descriptor de acceso con tipo de la clase base generada automáticamente, creada a partir de la lista de administradores de conexiones especificados por el usuario en la página Administradores de conexiones del editor. Por ejemplo: [VB] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection[C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
| Generar eventos | La tarea Script usa la Events propiedad del Dts objeto para generar eventos. Por ejemplo:[VB] Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0)[C#] Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0); |
El componente Script genera errores, advertencias y mensajes informativos mediante los métodos de la IDTSComponentMetaData100 interfaz devueltas por la ComponentMetaData propiedad . Por ejemplo: [VB] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
| Registro | La tarea Script usa el Log método del Dts objeto para registrar información en proveedores de registro habilitados. Por ejemplo:[VB] Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt)[C#] byte[] bt = new byte[0]; Dts.Log("Test Log Event", 0, bt); |
El componente Script usa el Log método de la clase base generada automáticamente para registrar información en proveedores de registro habilitados. Por ejemplo: [VB] Dim bt(0) As ByteMe.Log("Test Log Event", _0, _bt)[C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
| Devolución de resultados | La tarea Script usa tanto la TaskResult propiedad como la propiedad opcional ExecutionValue del Dts objeto para notificar al tiempo de ejecución sus resultados. |
El componente Script se ejecuta como parte de la tarea Flujo de datos y no notifica resultados mediante ninguna de estas propiedades. |
Véase también
Extensión del paquete con la tarea Script
Ampliar el flujo de datos con el componente de script
Uso de una tarea script en SSIS de SQL Server Integration Services para conectarse a un servicio web