0

我正在开发一个 SSIS 2012 包。在 foreachfile 循环中,有一个变量“User::Filename”,这是该构造的一个相当标准的变量。在循环内部的后续步骤中,我将文件移动到存档目录。然后,我想重命名它。我将“Destination”属性映射到新名称,其格式为“”+“YYYYMMDDHHMMSS”+@[User::Filename]。

当我在设计时点击“评估表达式”时,它当然可以工作,除了文件名为空,所以不显示。 我还将“延迟验证”设置为 true。

当我运行包时,它失败了,因为它找不到源文件或目标文件(源设置相同的方式... + @[User::Filename]。)在错误消息中,它显示完全相同我在设计时点击“评估表达式”时得到的字符串。

为什么不显示文件名?

4

1 回答 1

0

使用此代码将脚本任务放入循环容器中。

public void Main()
{
        bool success = false;
        string fName = Dts.Variables["User::Filename"].Value.ToString();
        Dts.Events.FireInformation(1, "File Loop", fName, "", 0, ref success);

        Dts.TaskResult = (int)ScriptResults.Success;
}

然后在输出窗口中查看打印的列表。

于 2013-12-14T22:47:07.883 回答