使用SSIS发送邮件任务中的Excel文件名问题

时间:2015-06-01 13:27:36

标签: ssis ssis-2012

我有一个包正在创建一个excel文件'ExcelName.xls'并存储在'E:\ Reporting \ Delivered_Reports'中。现在我必须使用发送邮件任务附加此报告并将其发送到给定的邮件ID。为实现这一点,我配置了发送邮件任务,在Expression Builder中,我选择了以下表达式:

"E:\\Reporting\\Delivered_Reports\\ExcelName_"+
((DT_WSTR,4)Year(@[System::StartTime]))+
RIGHT("0"+((DT_WSTR,2)Month(@[System::StartTime])),2)+
RIGHT("0"+((DT_WSTR,2)Day(@[System::StartTime])),2)+".xls"

我需要的文件名应该是'ExcelName_20150601',其中后缀是当前日期。但我收到文件名为'ExcelName',这是原始文件名。你能告诉我我哪里错了吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

听起来您正在编辑电子邮件中excel文件的名称,而不是使用文件系统任务在发送文件之前实际重命名该文件。据我所知,您无法使用发送邮件任务重命名该文件。

此外,我会在单独的变量中对日期进行字符串转换,以便更容易调试,或者甚至将两个值都放在变量中以便于维护。

创建变量“var_today”或其他内容并将此代码放入其中:

((DT_WSTR,4)Year(@[System::StartTime]))+
RIGHT("0"+((DT_WSTR,2)Month(@[System::StartTime])),2)+
RIGHT("0"+((DT_WSTR,2)Day(@[System::StartTime])),2)

然后你的表达成为:

"E:\\Reporting\\Delivered_Reports\\ExcelName_"+
@[User::var_date]+".xls"

对根目录执行相同的操作。

答案 1 :(得分:0)

最好在从包中生成时创建所需的文件名。 您无法在发送时更改名称,并将文件名放在字符串变量中,而不是直接写入。 @ [用户:: FILE_NAME] + @ [用户::日期] + “XLSX” 像这样的东西