Я пытаюсь создать сценарий, который на лету будет генерировать нужные мне папки.
Сценарий принимает переменные FolderName
и OrderID
для генерации имен создаваемых папок. Я добавил их в переменные только для чтения для скрипта.
С FolderName
все работает нормально, только когда я пытаюсь получить доступ к переменной OrderID
, все взрывается. Я получаю неприятную ошибку исключения ниже.
public void Main()
{
// Output File Expression
// "" + @[User::FolderName]+"\\Folder_"+ (DT_WSTR,20) @[User::T1_ID] +"\\SalesOrderHeader_T1_"+ (DT_WSTR,20) @[User::T1_ID]+ ".txt"
String folderName = (string)Dts.Variables["User::FolderName"].Value;
String OrderIDStr = (string)Dts.Variables["User::OrderID"].Value;
System.Windows.Forms.MessageBox.Show(OrderIDStr, "OrderID Var");
folderName = string.Concat(folderName, "\\Folder_");
System.Windows.Forms.MessageBox.Show(folderName, "Folder Name");
try
{
// Determine whether the directory exists.
if (Directory.Exists(folderName))
{
Console.WriteLine("That path exists already.");
System.Windows.Forms.MessageBox.Show("That path exists already.", "WARNING");
return;
}
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(folderName);
Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(folderName));
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally { }
}
Я устанавливаю значение 1
на уровне пакета и преобразую его в String, поэтому я не уверен, в чем проблема.
В поле текст обрезается, вот все:
в System.RuntimeMethodHandle.InvokeMethod (цель объекта, аргументы Object [], сигнатура сигнатуры, логический конструктор) в system.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (параметры объекта, Object [], аргументы Object []) в System.Reflection.RunfoMethod. Invoke (Object obj, BindingFlags invokeAttr, Binder binder, Object [] parameters, CultureInfo culture) в System.RuntimeType.InvokeMember (String name, BindingFlags bindingFlags, Binder binder, Object target, Object [] providedArgs, ParameterModifier [] модификаторы, культура CultureInfo , String [] namedParams) в Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript ()