IF EXISTS(SELECT TOP 1 1 FROM sys.triggers WHERE name = 'ILC_BGTaskHistory_mstAfterUpdate')
DROP TRIGGER [dbo].[ILC_BGTaskHistory_mstAfterUpdate]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[ILC_BGTaskHistory_mstAfterUpdate]
ON [dbo].[BGTaskHistory_mst]
AFTER Update
AS
DECLARE @SiteRef dbo.SiteType = dbo.GetSiteContext()
DECLARE @CompletionStatusBefore as varchar(100)
DECLARE @CompletionStatusAfter as varchar(100)
DECLARE @AlertSubjectParm1 as varchar(max)
DECLARE @AlertMsgParm1 as varchar(max)
DECLARE @ConfigName varchar(8)
SELECT TOP 1 @ConfigName = [dbo].[ILC_GetConfigurationName]()
SELECT @CompletionStatusAfter = ISNULL(CAST(CompletionStatus as VARCHAR(100)),'EMPTY')
FROM inserted
IF (@CompletionStatusAfter <> '0')
BEGIN
SELECT @CompletionStatusBefore = ISNULL(CAST(CompletionStatus as VARCHAR(100)),'EMPTY')
FROM deleted
IF (@CompletionStatusBefore <> @CompletionStatusAfter)
BEGIN
SELECT
@AlertSubjectParm1 = AlertSubjectParm1
,@AlertMsgParm1 = AlertMsgParm1
FROM
(SELECT
@ConfigName + ' Background Task ' + TaskName + ' has failed' as AlertSubjectParm1
,'Background Task ' + ISNULL(CAST(TaskNumber as VARCHAR(100)),'') + ' ' + ISNULL(TaskName,'') + ', initiated by user ' + ISNULL(RequestingUser,'') + ' failed at '
+ ISNULL(CAST(MONTH(CompletionDate) as VARCHAR(2)) + '-' + CAST(DAY(CompletionDate) as VARCHAR(2)) + '-' + CAST(YEAR(CompletionDate) as VARCHAR(4)) + ' ' + CAST(DATEPART(hh,CompletionDate) as VARCHAR(2)) + ':' + CAST(DATEPART(MINUTE,CompletionDate) as VARCHAR(2)),'')
+ ', with a Completion Status of ' + ISNULL(CAST(CompletionStatus as VARCHAR(100)),'') + ' and the error message: ' + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) + ISNULL(TaskErrorMsg,'') as AlertMsgParm1
FROM inserted) NotifyPublicationSubscriber
EXEC dbo.NotifyPublicationSubscribersSp
@PublicationName = 'ILC_BackgroundTaskFailure'
,@AlertSubject = 'D=Text0'
,@AlertMsg = 'E=Msg'
,@AlertHTMLMsg = NULL -- For GenericSendEmail: @AlertHTMLMsg overrides @AlertMsg; For GenericNotify: Both can be used.
,@AlertSubjectParm1 = @AlertSubjectParm1
,@AlertMsgParm1 = @AlertMsgParm1
,@Category = 'IT Admin'
END
END
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ILC_GetConfigurationName]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[ILC_GetConfigurationName]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[ILC_GetConfigurationName]
(
)
RETURNS SiteType
AS
BEGIN
DECLARE @ReturnValue SiteType
DECLARE @DBName nvarchar(16) = DB_NAME()
DECLARE @SiteRef dbo.SiteType = (select [site] from parms where parm_key = 0)
SELECT @ReturnValue = SUBSTRING(@DBName,1,3) + SUBSTRING(@SiteRef,4,LEN(@SiteRef) - 3)
RETURN @ReturnValue
END
Comments
0 B
|👍
/👎
0 B
|👍
/👎