Puede usar un componente de secuencia de comandos de flujo de datos para transferir un valor de columna de flujo de datos a una variable de SSIS. Sin embargo, debe seguir ciertas reglas al trabajar con el componente Script de flujo de datos y las variables SSIS.
SSIS no le permite asignar valores a las variables de SSIS en el procedimiento de secuencia de comandos que procesa las filas. Pero existen procedimientos previos y posteriores a la ejecución en los que puede manejar la asignación.
En su componente Script, agregue la variable SSIS a la propiedad ReadWriteVariables. Edite el script y declare una variable en la clase ScriptMain. Utilice el procedimiento PreExecute para inicializar la variable. Utilice el procedimiento ProcessInputRow para asignar el valor de la columna del búfer de entrada a la variable de script. Y use la tarea PostExecute para asignar el valor de la variable de secuencia de comandos a la variable SSIS.
Aquí hay un componente de secuencia de comandos VB de ejemplo. Tiene una variable SSIS (MyOutVariable) que obtendrá la salida de la variable de script (MyVar). La variable MyVar obtiene su valor de la columna MyNumber en el flujo de datos.
Public Class ScriptMain
Inherits UserComponent
Dim MyVar As Integer
Public Overrides Sub PreExecute()
MyBase.PreExecute()
'initialize variable local to data flow
MyVar = 0
End Sub
Public Overrides Sub PostExecute()
MyBase.PostExecute()
' output variable value to SSIS variable
Me.Variables.MyOutVariable = MyVar
End Sub
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
' logic to get value
MyVar = Row.MyNumber
End Sub
End Class