Vous pouvez utiliser un composant Data Flow Script pour transférer une valeur de colonne de flux de données vers une variable SSIS. Cependant, vous devez suivre certaines règles lorsque vous travaillez avec le composant Data Flow Script et les variables SSIS.
SSIS ne vous permet pas d'attribuer des valeurs aux variables SSIS dans la procédure de script qui traite les lignes. Mais il existe des procédures de pré-exécution et de post-exécution où vous pouvez gérer la mission.
Dans votre composant Script, ajoutez la variable SSIS à la propriété ReadWriteVariables. Modifiez le script et déclarez une variable dans la classe ScriptMain. Utilisez la procédure PreExecute pour initialiser la variable. Utilisez la procédure ProcessInputRow pour affecter la valeur de la colonne input -buffer à la variable de script. Et utilisez la tâche PostExecute pour attribuer la valeur de la variable de script à la variable SSIS.
Voici un exemple de composant de script VB. Il a une variable SSIS (MyOutVariable) qui obtiendra la sortie de la variable de script (MyVar). La variable MyVar obtient sa valeur à partir de la colonne MyNumber dans le flux de données.
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