Base de conocimiento

Introduzca su búsqueda por palabra clave en el cuadro de texto

ecaldima.com | Soporte | Contacto

TEC-22 – Mostrar el comentario de la anterior validación o tarea en una notificación por correo

Here

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}) }]
¿Fue útil este artículo?
0 out Of 5 Stars
5 Estrellas 0%
4 Estrellas 0%
3 Estrellas 0%
2 Estrellas 0%
1 Estrellas 0%
5
¿Cómo podemos mejorar este artículo?
Please submit the reason for your vote so that we can improve the article.
KB Ecaldima