我创建了一个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
答案 0 :(得分:0)
使用系统变量System::TaskName