使用SSIS处理任务名称的记录

时间:2017-07-25 08:05:30

标签: ssis

我创建了一个SSIS包,并有一个在序列容器中运行的任务列表。我需要记录包的执行的开始和结束。例如,xyz包已经启动。 xyz包已经完成。

我要登录的日志表包含以下列,即Message和methodname。我需要在此参数中传递消息,方法名称将包含任务的名称。但是在消息中,我想要任务名称。如上所述,XYz任务已经开始。

我的包中有大约20个任务。我知道需要在每个任务的postexecute和preexecute事件中创建一个执行sql任务。我需要知道的是在消息列中提供任务名称的最佳方法。我是否需要为所有20个任务创建变量并对值进行硬编码。如果我采用这种方法,我需要创建40个变量,因为20个用于消息任务已经开始,20个用于任务已经结束。

存储过程

Create PROCEDURE [dbo].[InsertLog] 
    @message varchar(max),
    @methodName varchar(50),
    @errorCode varchar(25) 
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    insert into CoreAnalytics.dbo.logs ([TimeStamp],LogLevelId,[Message],UserName,MethodName,LineNumber,ModelId)
      values( GetDate(),3,@errorCode + ' ' + @message,'xxxxxx',@methodName,0,'xxxxxxxx')
END

变量参数映射 enter image description here

错误 enter image description here

根据建议进行映射 enter image description here

1 个答案:

答案 0 :(得分:0)

使用系统变量System::TaskName