PDC_REPORT_CreazioneDB/sql/Produzione/procedure/dbo_VerificaAllMassGior.sql
2025-06-10 15:29:00 +02:00

45 lines
1.9 KiB
Transact-SQL

-- =============================================
-- Author: Luca di Chiara
-- Create date: 29/07/2024
-- Description: Procedura per il controllo del buon esito dell'allineamento maiisvo propedeutico alle lettere di benvenuto
-- =============================================
CREATE PROCEDURE [dbo].[VerificaAllMassGior]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
Declare @ELABORAZIONE_CONCLUSA bit =0
declare @InizioVerifica datetime = getdate()
declare @dtinizio datetime
declare @stato varchar(20) =''
--Prima di eseguire il primo check attendo 2 minuti
--per dare tempo al precedente dtsx di inserire un nuovo record nella logbatch generale
--se non attendo il rischio è che nel successivo controllo sulla logbatchgenerale,
--venga preso in considerazione il record relativo ad un'esecuzione precedente
WAITFOR DELAY '00:02:00'
print '... sleep 2 ...'
WHILE @ELABORAZIONE_CONCLUSA = 0
BEGIN
RAISError(N'', 0, 1) WITH NOWAIT
-- si aspetta al massimo 15 minuti per il termine dell'allineamento massivo dopodiche si manda in errore
if datediff( minute, @InizioVerifica , getdate()) > 15
Begin
select * from MandaInErrore
print 'Superato tempo limite per attendere la conclusione dell''elaborazione dell allineamentomassivo, interrompiamo'
End
Else
Begin
select top 1 @dtinizio = dtesecuzione, @stato = stato from consuni.consulenzaunicafl.dbo.logbatchgenerale where nomebatch like 'AllineamentoMassivoGiornaliero' order by dtesecuzione desc
if datediff( minute, @dtinizio , getdate()) <= 15 AND @STATO = 'OK'
BEGIN
SET @ELABORAZIONE_CONCLUSA = 1
END
END
-- attesa di 20 secondi
WAITFOR DELAY '00:00:10'
print '... aspetto 10 secondi prima di ricontrollare ...'
END
END