Terminare workflow Massivamente in Adiuto

From RVM Wiki
Jump to navigation Jump to search

Se si vogliono terminare molti workflow massivamente, non è possibile farlo da Adiuto ia Web, che consente solo di farlo uno alla volta. È necessario usare una query SQL. Leggere i commenti e modificare i tre parametri e la query di selezione dei FIDD, come indicato:

DECLARE @FIDDOC int
DECLARE @FIDCAI int
DECLARE @FIDI int

DECLARE @Utente int
DECLARE @Data varchar(255)
DECLARE @Ora varchar(255)

SET @Utente = 1041; 		--INSERIRE L'ID DELL'UTENTE TUTOR DEL WORKFLOW (si vede dall'admin come campo ID)
SET @Data = '20250117'; 	--INSERIRE UNA DATA SIMBOLICA DI TERMINAZIONE FLUSSO
SET @Ora = '16:00:00';		--INSERIRE UN'ORA SIMBOLICA DI TERMINAZIONE FLUSSO

DECLARE db_cursor CURSOR FOR
--QUERY CHE RESTITUISCE I RECORD DELLA TITS DA ANNULLARE    

SELECT T.FIDDOC, T.FIDCAI, T.FIDI FROM TITS T /* LEFT*/JOIN TITSR R ON T.FIDI=R.FIDI 
WHERE T.FIDDOC IN 
(/*INSERIRE QUI UNA SELECT CHE RITORNA L'ELENCO DEI FIDD SUI QUALI TERMINARE IL WF*/
SELECT FIDD FROM VA1023 WHERE /*F1172 = 'IN ENTRATA' AND */ FENA <> 0
)
ORDER BY T.FIDI ASC
--DI SEGUITO UN ESEMPIO 
--SELECT T.FIDDOC, T.FIDCAI, T.FIDI FROM TITS T /* LEFT*/JOIN TITSR R ON T.FIDI=R.FIDI WHERE T.FIDDOC IN (SELECT FIDD FROM VA1001 WHERE F1001 = 2018 AND F1002 = 'PROVA' AND FENA <> 0) ORDER BY T.FIDI ASC

OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @FIDDOC, @FIDCAI, @FIDI 

WHILE @@FETCH_STATUS = 0  
BEGIN  
    insert into TITSL (FUTECS,FEHR,FIDLOG,FENDDATE,FIDDOC,FHR,FDT,FAS,FIDCAI) values (
    @Utente,
    NULL,
    (select MAX(FIDLOG)+1 from TITSL),
    NULL,
    @FIDDOC,
    @ora,
    @Data,
    6,
    (select FIDACT from TAIN where fidpai=(select TOP 1 FIDCAI from TITSL where FIDDOC = @FIDDOC order by FIDLOG asc) and FISTP=-1)
    );

    delete from tits where fidi=@FIDI;

    FETCH NEXT FROM db_cursor INTO @FIDDOC, @FIDCAI, @FIDI  
END  

CLOSE db_cursor  
DEALLOCATE db_cursor