Manual Retorno de Pasos CF Workflow

Creada por Juan Villalobos, Modificado el Vie., 20 Dic., 2024 a las 9:20 A. M. por Juan Villalobos

Manual para correr script “SCRIPT Retorno de Pasos CF Workflow”

 

  1. Cargamos el script que se encuentra dentro de Monihelp en la carpeta llamada Scripts,” Script Retorno de Pasos” 

 

  1. Se copia todo el contenido del Script y se pega en SQL MANAGER STUDIO, conectado a la BD de CR o ES, con las credenciales de cada uno (Se muestra en segunda imagen).

 

Ubicamos la BD
CR: sqlmi-monifai-prod-01.99e9c9b5b5ae.database.windows.net
 ES: sqlmi-monifai-prod-02.99e9c9b5b5ae.database.windows.net

 

  1. Una vez copiado el script se debe hacer en pasos.

3.1 PASO 1: BUSCAR EL IDSOLICITUD DE CREDITO:

               --PASO#1 BUSCAR EL IDSOLICITUD DE CREDITO

 

SELECT ES.Descripcion ESTADOSOLICITUD, SES.Descripcion SUBESTADOSOLICITUD, SC.* FROM CF_ORIGINATION.dbo.t_oritSolicitudLineaCredito SC

INNER JOIN CF_ORIGINATION.dbo.t_oricEstadoSolicitud ES ON ES.IdT_oricEstadoSolicitud = SC.IdF_oricEstadoSolicitud

INNER JOIN CF_ORIGINATION.dbo.t_oricSubEstadoSolicitud SES ON SES.IdT_oricSubEstadoSolicitud = SC.IdF_oricSubEstadoSolicitud

WHERE SC.NumeroIdentificacion = '155813674222[JV1] ' –ACTUALIZAR

Nota: Una vez que los datos sean devueltos en el SQL vamos a buscar el ID de la solicitud de crédito en este caso el dato estará ubicado en la tercera columna llamada: IdT_oritSolicitudLineaCredito = 25733[JV2] 

 

                   Se mostrará en la BD de esta manera:

 

                    

 

 

 

 

 

 

3.2 PASO 2: Filtrar en el campo de VariableState el IDSOLICITUD DE CREDITO, para obtener el FlowInstanceId, que se utilizara para la validación de etapas.

               

--PASO#2 Filtrar en el campo de VariableState el IDSOLICITUD DE CREDITO, para obtener el FlowInstanceId,   que se utilizara para la validacion de etapas.

 

               SELECT FlowInstanceId,*

FROM CCMV_Flows..FlowInstance WITH (NOLOCK)

WHERE VariableState LIKE '%25733%[JV3] ' –ACTUALIZAR

ORDER BY Started DESC;

 

Nota: Una vez que los datos sean devueltos en el SQL vamos tomaremos en dato de la primera columna FlowInstanceId cuyo caso será el 32123[JV4] 

 

Se mostrará en la BD de esta manera:

 

 

 

 

3.3 PASO#3 Colocar el FlowInstanceId en la variable @FlowInstanceId

               

--Variables

DECLARE @FlowInstanceId BIGINT = 32123[JV5] ; --ACTUALIZAR

DECLARE @FlowStepInstanceId BIGINT = 0;

DECLARE @BeforeFlowStepInstanceId BIGINT = 0;

DECLARE @procesar BIT =0;

DECLARE @procesarUpdate BIT = 1;[JV6] 

/*1. Obtener el último paso del flujo. Step actual*/

/*Tomar en cuenta el primero registro el valor FlowStepInstanceId, para se agregado a los delete */

/*Tomar en cuenta el segundo registro el valor FlowStepInstanceId, para ejecutar el delete y que el paso se retorne correctamente */

IF (@procesar = 0)

BEGIN

 SELECT Step.Name,

StepIntance.FlowInstanceId,

StepIntance.Registered,

FlowStepInstanceId,

StepIntance.Status

                                         FROM CCMV_Flows..FlowStepInstance AS StepIntance

         INNER JOIN CCMV_Flows..FlowStep AS Step

           ON Step.FlowStepId = StepIntance.FlowStepId

WHERE FlowInstanceId = @FlowInstanceId

ORDER BY StepIntance.FlowStepInstanceId DESC;

END;

ELSE

BEGIN

SELECT TOP 1

                                        @FlowStepInstanceId = FlowStepInstanceId

FROM CCMV_Flows..FlowStepInstance AS StepIntance

WHERE FlowInstanceId = @FlowInstanceId

ORDER BY StepIntance.FlowStepInstanceId DESC;

--en ocaciones se queda sin poder bajar el paso del flujo se tuvo que aplicar solo el delete y luego la corrida completa del query

DELETE CCMV_Flows..FlowStepInstanceUser_History

WHERE FlowStepInstanceId = @FlowStepInstanceId;

DELETE CCMV_Flows..FlowStepInstanceUser

WHERE FlowStepInstanceId = @FlowStepInstanceId;

DELETE CCMV_Flows..FlowInstanceControl

WHERE FlowStepInstanceId = @FlowStepInstanceId;

DELETE CCMV_Flows..FlowStepInstance

WHERE FlowStepInstanceId = @FlowStepInstanceId;

SELECT TOP 1

@BeforeFlowStepInstanceId = FlowStepInstanceId

FROM CCMV_Flows..FlowStepInstance AS StepIntance

WHERE FlowInstanceId = @FlowInstanceId

ORDER BY StepIntance.FlowStepInstanceId DESC;

IF (@procesarUpdate = 1)

BEGIN

                                        UPDATE CCMV_Flows.dbo.FlowStepInstance

SET [Status] = 0

WHERE FlowStepInstanceId = @BeforeFlowStepInstanceId

AND FlowInstanceId = @FlowInstanceId;

 

                                        UPDATE CCMV_Flows.dbo.FlowInstance

                                        SET [Status] = 1

                                        WHERE FlowInstanceId = @FlowInstanceId;

    END;

    --COMMIT

    --ROLLBACK

 

                    SELECT TOP 1

                                        BeforeFlowStepInstanceId = FlowStepInstanceId

                    FROM CCMV_Flows..FlowStepInstance AS StepIntance

WHERE FlowInstanceId = @FlowInstanceId

ORDER BY StepIntance.FlowStepInstanceId DESC;

 

                    SELECT *

                     FROM CCMV_Flows.dbo.FlowStepInstance

                     WHERE FlowStepInstanceId = @BeforeFlowStepInstanceId

                                        AND FlowInstanceId = @FlowInstanceId;

 

Al terminar el último paso ya se debería consultar en el WORKFLOW INBOX que el paso se haya devuelto, esto lo confirma el usuario.

¿Le fue útil este artículo?

¡Qué bueno!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Díganos cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
La verificación de CAPTCHA es obligatoria.

Comentarios enviados

Agradecemos su iniciativa, e intentaremos corregir el artículo