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}) }]