193 lines
4.9 KiB
Transact-SQL
193 lines
4.9 KiB
Transact-SQL
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_ComAs_lastComandoByStored
|
|
*
|
|
* Ottiene il record dell'ultimo comando inviato ad AS400 dato il nome della stored con Test = 0
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2011.03.30
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_ComAs_lastComandoByStored
|
|
(
|
|
@Stored NVARCHAR(100)
|
|
)
|
|
AS
|
|
-- restituisce le righe richieste
|
|
SELECT TOP 1 *
|
|
FROM RawData.AS400_Comandi
|
|
WHERE (Stored = @Stored) AND Test = 0
|
|
ORDER BY DataEsecuzione DESC
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
drop procedure stp_BORI_caricaDatiNew
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/*****************************************
|
|
* STORED stp_BORI_caricaDatiBolla
|
|
*
|
|
* richiama la stored di caricamento da AS400 x la bolla indicata
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2011.04.28
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_BORI_caricaDatiBolla
|
|
(
|
|
@RaggrMagazz NVARCHAR(2) ,
|
|
@GruppoBolle NVARCHAR(1) ,
|
|
@NumeroBolla NVARCHAR(6) ,
|
|
@DataBolla NVARCHAR(8) ,
|
|
@Particolare NVARCHAR(15)
|
|
)
|
|
AS
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
--DECLARE @RaggrMagazz AS NVARCHAR(2) = N'SP'
|
|
--DECLARE @GruppoBolle AS NVARCHAR(1) = N'0'
|
|
--DECLARE @NumeroBolla AS NVARCHAR(6) = N'678'
|
|
--DECLARE @DataBolla AS NVARCHAR(8) = N'20110421'
|
|
--DECLARE @Particolare AS NVARCHAR(15) = N'P00528536146'
|
|
|
|
-- Prima cancello i dati della se già presenti bolla poi li carico
|
|
DELETE SP_GMW.RawData.BORI202J
|
|
WHERE CDMFS = @RaggrMagazz
|
|
AND GRBOS = @GruppoBolle
|
|
AND NRBOS = @NumeroBolla
|
|
AND DTBOS = @DataBolla
|
|
AND CDARS = @Particolare
|
|
|
|
DECLARE @SQL AS NVARCHAR(4000)
|
|
DECLARE @SqlOK AS INT;
|
|
|
|
SET @SqlOK = 0;
|
|
|
|
-- ATTENZIONE!!! i parametri non devono essere nulli altrimenti la stringa ritornata è nulla
|
|
|
|
/*
|
|
Prima estraggo i dati della bolla dal file in AS400 in una tabella temporanea
|
|
Poi va letta la tabella temporanea per creare i dati per la stampa Odette
|
|
NON VA BENE, SE ESEGUONO IN DUE LA STAMPA PUO ANDARE IN CONFLITTO
|
|
*/
|
|
|
|
--IF OBJECT_ID(N'tempdb..##TabTemp') IS NOT NULL -- ##TabTemp Tabella temporanea globale altrimenti non riesco ad usarla
|
|
-- DROP TABLE ##TabTemp;
|
|
-- SET @SQL = 'SELECT * INTO ##TabTemp FROM OPENQUERY(P65220DC,
|
|
|
|
BEGIN TRY
|
|
SET @SQL = 'INSERT INTO SP_GMW.RawData.BORI202J SELECT * FROM OPENQUERY(P65220DC,
|
|
''SELECT
|
|
CDMFS
|
|
,GRBOS
|
|
,DTBOS
|
|
,NRBOS
|
|
,CDARS
|
|
,NRRGS
|
|
,CDINB
|
|
,RA1ND
|
|
,RA2ND
|
|
,CAPND
|
|
,CITND
|
|
,RASCL
|
|
,INDCL
|
|
,CAPCL
|
|
,LOCCL
|
|
,PROCL
|
|
,INEND
|
|
,CRAGCL
|
|
,TELND
|
|
,CCDMOL
|
|
,CCDPTR
|
|
,EPLAVO
|
|
,NRC1B
|
|
,ECMM01
|
|
,DEPAR
|
|
,RCARTC
|
|
,PERND
|
|
,CCDET1
|
|
,ECDNAE
|
|
,ECDNA1
|
|
,EESPMD
|
|
,PELDB
|
|
,QTCNS
|
|
FROM POSN_AZI.BORI202J
|
|
WHERE ATV08 <> ''''A''''
|
|
'
|
|
|
|
-- commemntare le righe successive per estrarre tutto
|
|
-- Parametri di selezione della bolla
|
|
SET @SQL = @SQL + ' AND CDMFS = ''''' + @RaggrMagazz + ''''' '
|
|
SET @SQL = @SQL + ' AND GRBOS = ''''' + @GruppoBolle + ''''' '
|
|
SET @SQL = @SQL + ' AND NRBOS = ' + @NumeroBolla + ' '
|
|
SET @SQL = @SQL + ' AND DTBOS = ' + @DataBolla + ' '
|
|
SET @SQL = @SQL + ' AND CDARS = ''''' + @Particolare + ''''' '
|
|
|
|
SET @SQL = @SQL + ''' )';
|
|
|
|
EXEC dbo.sp_executesql @SQL
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
-- PRINT ERROR_NUMBER()
|
|
SET @SqlOK = ERROR_NUMBER();
|
|
|
|
-- Uso RAISERROR mandare in errore la procedura e x per tornare le info
|
|
-- sull'errore originale che ha portato l'esecuzione nel blocco CATCH
|
|
--DECLARE @ErrorMessage NVARCHAR(4000);
|
|
--DECLARE @ErrorSeverity INT;
|
|
--DECLARE @ErrorState INT;
|
|
--SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
|
|
--RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState); -- Se non uso RAISERROR la procedura non mi da errore es. se schedulata
|
|
END CATCH
|
|
|
|
-- MANCA IL TEST SE VA IN ERRORE E IL SALVATAGGIO NEL LOG AS400
|
|
|
|
-- Memorizzo il comando per verifica T-SQL e l'esito del comando se 0 è OK
|
|
|
|
--INSERT INTO RawData.AS400_Comandi
|
|
--SELECT GETDATE(), 'stp_CaricaDatiBolladaAs400', @SQL, @SqlOK;
|
|
|
|
-- Carico i dati della Temp table nel file di appoggio
|
|
-- INSERT INTO SP_GMW.RawData.BORI202J
|
|
-- SELECT * FROM ##TabTemp
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(361, GETDATE())
|
|
GO
|