Search the knowledge base by keyword
Search in knowledge base
TEC-22 – Mostrar el comentario de la anterior validación o tarea en una notificación por correo
Versión(s)
ECALDIMA 2.0 y superior
Descripción
Poder mostrar el comentario ingresado durante la validación o la tarea que precede el envío de una notificación en el correo electrónico enviado.
La solución propuesta se basa en dos funciones SQL y la llamada a la macro SCPQUERY para llamar a estas funciones
Instalación
Ejecute el script para crear ambas funciones en la base de datos de ECALDIMA
CREATE FUNCTION dbo.fn_GetLastTaskCommentForMail(@RequestId int,@InstanceId int)
RETURNS nvarchar(MAX)
AS
BEGIN
Declare @ValRet nvarchar(MAX) = ' '
Declare @MaxId int = 0
If @InstanceId = 0
SELECT @MaxId = MAX(Id) FROM RequestTreeStatus WHERE RequestId = @RequestId AND InstanceId <> 0
ELSE
SELECT @MaxId = Id FROM RequestTreeStatus WHERE RequestId = @RequestId AND InstanceId = @InstanceId
SELECT @ValRet = ISNULL(Comment,' ')
FROM TaskInstance
WHERE Id = (SELECT TOP 1 InstanceId FROM RequestTreeStatus WHERE RequestId = @RequestId AND id < @MaxId AND InstanceType = 'TASK' AND CurrentStatus = 'TERMINATED' ORDER BY id DESC)
AND Process_Status = 'disable'
AND Execution_Status = 'Completed'
RETURN @ValRet
END
GO
CREATE FUNCTION dbo.fn_GetLastValidationCommentForMail(@RequestId int,@InstanceId int)
RETURNS nvarchar(MAX)
AS
BEGIN
Declare @ValRet nvarchar(MAX) = ' '
Declare @MaxId int = 0
If @InstanceId = 0
SELECT @MaxId = MAX(Id) FROM RequestTreeStatus WHERE RequestId = @RequestId AND InstanceId <> 0
ELSE
SELECT @MaxId = Id FROM RequestTreeStatus WHERE RequestId = @RequestId AND InstanceId = @InstanceId
SELECT @ValRet = ISNULL(Justification,' ')
FROM ValidationInstance
WHERE Id = (SELECT TOP 1 InstanceId FROM RequestTreeStatus WHERE RequestId = @RequestId AND id < @MaxId AND InstanceType = 'VALIDATION' AND CurrentStatus IN ('TERMINATED','REFUSED') ORDER BY id DESC)
AND Process_Status = 'disable'
AND UPPER(Execution_Status) in ('ACCEPT','REFUSE')
RETURN @ValRet
END
GO
Uso
En una plantilla de correo, para mostrar el comentario de la validación anterior, inserte el siguiente código :
[SCPQUERY{ SELECT dbo.fn_GetLastValidationCommentForMail ({REQUEST_ID},{InstanceId}) }]
Para mostrar el comentario de la tarea anterior, inserte el siguiente código:
[SCPQUERY{ SELECT dbo.fn_GetLastTaskCommentForMail ({REQUEST_ID},{InstanceId}) }]