我有一个SSIS包,其中包含5个序列任务容器,并且在该其他控制流任务内部。全部都在并行运行。
我正在尝试获取所有审核和元数据信息,例如程序包名称,任务名称和任务的当前状态(运行,已完成或失败)。
我觉得这里更大的问题是一旦任务状态更改后如何处理。
我要保存在sql表中的信息
我可以从系统变量中获取程序包名称,以及如何获取Task的当前状态。
我正在尝试存储状态值,例如“开始”,“进行中”,“结束”。
可能有人请分享您的想法。
谢谢
答案 0 :(得分:2)
您可以使用SSIS的事件处理程序捕获任务状态的变化。为此,请单击任务本身,然后单击设计时窗口顶部的Event Handlers
选项卡。这将在页面中间弹出一个带有蓝色链接的空白窗口,如下所示:
在点击蓝色链接之前,选择要处理的特定事件处理程序:
您可以从此处执行特定任务。例如,您可以在OnError事件处理程序中运行SMTP邮件任务,以发送有关任务错误的电子邮件警报。或者,您可以在OnPostExecute事件处理程序中运行执行SQL任务,以在任务完成后将数据发送到数据库。
我认为,对于您的特定问题(如何获取任务的运行时间),您将需要两个事件处理程序:
“ Ts”代表时间戳记。
然后可以使用DATEDIFF()函数计算运行时间并指定时间间隔(例如,秒,分钟,小时等)。此值可以存储在表的单独字段中(即SequenceContainerRunTime),也可以在SQL SELECT中即时生成。
有关SSIS事件处理程序的更多信息,请阅读: