डेटा प्रवाह कॉलम मान को SSIS वैरिएबल में स्थानांतरित करने के लिए आप डेटा फ़्लो स्क्रिप्ट घटक का उपयोग कर सकते हैं। हालाँकि, डेटा फ़्लो स्क्रिप्ट घटक और SSIS चर के साथ काम करते समय आपको कुछ नियमों का पालन करना चाहिए।
एसएसआईएस आपको पंक्तियों को संसाधित करने वाली स्क्रिप्ट प्रक्रिया में एसएसआईएस चर के लिए मान निर्दिष्ट करने की अनुमति नहीं देता है। लेकिन पूर्व और बाद की प्रक्रियाएं हैं जहां आप असाइनमेंट को संभाल सकते हैं।
अपने स्क्रिप्ट घटक में, SSIS वैरिएबल को ReadWriteVariables प्रॉपर्टी में जोड़ें। स्क्रिप्ट संपादित करें और ScriptMain वर्ग में एक चर घोषित करें। वैरिएबल को इनिशियलाइज़ करने के लिए PreExecute प्रक्रिया का उपयोग करें। स्क्रिप्ट वेरिएबल में इनपुट -बफर कॉलम मान असाइन करने के लिए ProcessInputRow प्रक्रिया का उपयोग करें। और, स्क्रिप्ट वैरिएबल से SSIS वैरिएबल में मान असाइन करने के लिए PostExecute कार्य का उपयोग करें।
यहां एक उदाहरण वीबी स्क्रिप्ट घटक है। इसमें एक SSIS वेरिएबल (MyOutVariable) है जो स्क्रिप्ट वेरिएबल (MyVar) का आउटपुट प्राप्त करेगा। MyVar वैरिएबल को डेटा प्रवाह में MyNumber कॉलम से इसका मान मिलता है।
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