Reputation: 845
I feel like I am missing some configuration or something, because I have followed tons of tutorials online, but cannot get any examples of a script task to work. I cannot debug the error either because I am not a C# developer.
Currently, I am simply checking if a file exists in a directory:
1) User::gvLastMonthImportFile
is string (read-only) & User::gvLastMonthImportFileExists
is Boolean (read-write)
2) Added using System.IO;
to my namespaces
3)
string fullPath = Dts.Variables["User::gvLastMonthImportFile"].Value.ToString();
Dts.Variables["User::gvLastMonthImportFileExists"].Value = File.Exists(fullPath);
Dts.TaskResult = (int)ScriptResults.Success;`
ERROR:
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
Upvotes: 3
Views: 24754
Reputation: 85
I had a similar problem, but I want to had a screenshot to help debug these cases :
After closing the cryptic error prompt, watch into your debug output, there will be a short yet more useful error message :
Upvotes: 1
Reputation: 1
I had that same problem and was stuck for a couple of hours. Then I found my problem. Variables are case-sensitive and I had misspelled one of them.
Upvotes: 0
Reputation: 56
I ran into this recently and it was because I had not added the variables to the script.
You have to explicitly add ReadOnlyVariables/ReadWriteVariables to the script task for it to have any access to them by double-clicking the script task in the designer, selecting 'Script' on the right-hand side of the dialog and then clicking the ReadOnlyVariables/ReadWriteVariables drop down.
I know this reply is late but this caused me a lot of grief and hopefully it helps someone.
Upvotes: 4
Reputation: 660
Steps to run
adding 2 lines code in the script.
Messagebox.Show(Dts.Variables["User::gvLastMonthImportFile"].Value.ToString());
Messagebox.Show(File.Exists(fullPath).Value.ToString());
save and close the script, OK script task.
right click script task, execute the task.
when task is executing, the message will pop up. Please verify the data.
Upvotes: 0