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

使用SSIS发送邮件任务中的Excel文件名问题,ssis,ssis-2012,Ssis,Ssis 2012,我有一个软件包正在创建excel文件“ExcelName.xls”,并存储在“E:\Reporting\Delivered\u Reports”中。现在,我必须使用“发送邮件”任务附加此报告,并将其发送到给定的邮件id。为此,我配置了“发送邮件”任务,并在Expression Builder中选择了以下表达式: "E:\\Reporting\\Delivered_Reports\\ExcelName_"+ ((DT_WSTR,4)Year(@[System::StartTime]))+ RIGH

我有一个软件包正在创建excel文件“ExcelName.xls”,并存储在“E:\Reporting\Delivered\u 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”,这是原始文件名。你能告诉我哪里错了吗


提前感谢

听起来您是在编辑电子邮件中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"

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

在从包生成文件时,最好生成所需的文件名。 您不能在发送文件时更改名称,并将文件名放入字符串变量中,而不是直接写入。 @[User::File_Name]+@[User::date]+“.xlsx”
类似这样的内容

你好,rahul,我对SSIS非常陌生,你能告诉我这些步骤吗?感谢您,我已经编写了一个脚本,因此它生成了文件名“Daily_Report_20150602”,最后带有日期。将其保存到“E:\ReportFolder”。现在如何附加此文件并通过发送邮件任务发送,因为明天此文件名将为“Daily_Report_20150603”。那么如何实现这一点呢?“E:\\Reporting\\Delivered\\U Reports\\ExcelName\+@[User::var_date]+.”.xls“仅使用此表达式日期作为变量您应该使用它将正常工作,但我在脚本中计算的日期本身,因此每次它都会生成日期为“Daily_report\u 20150602”的报告。这是我从脚本任务中获得的输出。现在我必须发送这个,那么如何配置发送邮件任务和表达式。抱歉,我问的问题太多了,但我不知道如何实现。将文件名存储为变量将选择包含cuurent日期的文件。确保已将延迟验证设置为true。这是为我工作,埃里克,你能告诉我的步骤,因为我是非常新的SSIS?感谢您,我已经编写了一个脚本,因此它生成了文件名“Daily_Report_20150602”,最后带有日期。将其保存到“E:\ReportFolder”。现在如何附加此文件并通过发送邮件任务发送,因为明天此文件名将为“Daily_Report_20150603”。那么如何实现呢?如果文件名存储在一个变量中,那么它每天都会自动更改其值。