ssis 平面文件创建日期
ssis flat file creation date
我有一个非常简单的 ssis 任务,目前它只是一个平面文件连接和一个用于更新 table 的批量插入任务。在继续批量插入之前,我不知道如何确保今天创建了平面文件。
在您的数据流块中,添加一个脚本组件,如下所示:
添加两个变量,一个是你的文件名,一个是脚本的结果:
接下来,按如下方式配置您的脚本:
现在,您可以将以下表达式添加到脚本组件和数据流块之间的箭头中:
您在脚本中的代码将是:
public void Main()
{
string fileName = Dts.Variables["FileName"].Value.ToString();
FileInfo fi = new FileInfo(fileName);
Dts.Variables["FileWasCreatedToday"].Value = fi.CreationTime >= DateTime.Now.Date;
// Another option would be to set this to fail if it's not created today. This will fail the whole package.
Dts.TaskResult = (int)ScriptResults.Success;
}
编辑: 如果您希望它在失败时向您发送电子邮件,只需从脚本任务创建第二个 link 到您的发送邮件具有以下表达式的任务:!@[User::FileWasCreatedToday]
。如下所示:
我有一个非常简单的 ssis 任务,目前它只是一个平面文件连接和一个用于更新 table 的批量插入任务。在继续批量插入之前,我不知道如何确保今天创建了平面文件。
在您的数据流块中,添加一个脚本组件,如下所示:
添加两个变量,一个是你的文件名,一个是脚本的结果:
接下来,按如下方式配置您的脚本:
现在,您可以将以下表达式添加到脚本组件和数据流块之间的箭头中:
您在脚本中的代码将是:
public void Main()
{
string fileName = Dts.Variables["FileName"].Value.ToString();
FileInfo fi = new FileInfo(fileName);
Dts.Variables["FileWasCreatedToday"].Value = fi.CreationTime >= DateTime.Now.Date;
// Another option would be to set this to fail if it's not created today. This will fail the whole package.
Dts.TaskResult = (int)ScriptResults.Success;
}
编辑: 如果您希望它在失败时向您发送电子邮件,只需从脚本任务创建第二个 link 到您的发送邮件具有以下表达式的任务:!@[User::FileWasCreatedToday]
。如下所示: