SSIS bevat een aantal debugging tools. Degene die ik zelf niet konden vinden was een hulpmiddel om variable-values te kunnen traceren tijdens runtime. Even op internet zoeken deed wonderen.
Het is vaak handig om te weten met welke waarde een variable wordt gevuld tijdens het runnen. Met dit simpele scriptje dat je in een scripttask stopt kun je dit realiseren. Je hoeft dus totaal geen verstand te hebben van programmeren. Maak eerst een scriptask aan. Plaats deze ergens aan het einde van je Control-Flow.
Klopt vervolgens onderstaand script in:
{geshi xml:lang=”vbnet” lines=”false”}
Public Sub Main()
Dim variableName As String = “User::VandaagDatumID”
Dim vars As Variables = Nothing
Dts.VariableDispenser.LockForRead(variableName)
Dts.VariableDispenser.GetVariables(vars)
Dim variableValue As String = CType(vars(variableName).Value, String)
vars.Unlock()
Dts.Events.FireInformation(-1, “Test Script”, String.Format( _
“The value for VandaagDatumID variable {0} is ‘{1}'”, variableName, variableValue), _
String.Empty, -1, False)
Dts.TaskResult = Dts.Results.Success
End Sub{/geshi}
{highslide type=”img” url=”artikelen/ssis/script_variable_find/script_createscript.jpg” width=600 captionText=’Visual Basic Script’}{/highslide}
Pas wel even de naam van de variable aan (VandaagDatumID). Als je nu het ETL-package runt zul je in het output-window de waarde van de variable zien.
{highslide type=”img” url=”artikelen/ssis/script_variable_find/script_outputwindow.jpg” width=600 captionText=’Output Windows SSIS’}{/highslide}