Sres,
Tengo el siguiente caso,
En vista de que en Chile se usa la misma secuencia para las Guias de Despacho y Traslado, necesito mantenerlas sincronizadas en la tabla NNM1.
Esto lo estoy haciendo actualmente con un trigger en MSSQL, sin embargo tengo muchas dudas de como hacer lo mismo en HANA.
El trigger en TSQL es el siguiente:
CREATE TRIGGER [dbo].[nnm1_sincroniza_guias]
ON [dbo].[NNM1]
FOR UPDATE /* Fire this trigger when a row is INSERTed or UPDATEd */
AS BEGIN
DECLARE @NextFolio AS INT
DECLARE @SeriesName as nvarchar(max)
DECLARE @FolioPref as nvarchar(max)
DECLARE @ObjectCode AS INT
DECLARE @Series AS INT
IF TRIGGER_NESTLEVEL() <= 1/*this update is not coming from some other trigger*/
BEGIN
SET @NextFolio = (SELECT INSERTED.NextFolio FROM INSERTED)
SET @SeriesName = (SELECT INSERTED.SeriesName FROM INSERTED)
SET @FolioPref = (SELECT INSERTED.FolioPref FROM INSERTED)
SET @ObjectCode = (SELECT INSERTED.ObjectCode FROM INSERTED)
SET @Series = (SELECT INSERTED.Series FROM INSERTED)
if ( @SeriesName = 'GSuite' and @FolioPref = '52' )
BEGIN
UPDATE NNM1 SET NNM1.NextFolio = @NextFolio
WHERE NNM1.seriesname = 'GSuite'
and NNM1.foliopref = '52'
and NNM1.NextFolio < @NextFolio
END
ELSE
BEGIN
UPDATE NNM1 SET NNM1.NextFolio = @NextFolio
WHERE NNM1.series = @Series
and NNM1.ObjectCode = @ObjectCode
END
END
END
Mi problema es que estamos migrando a HANA y tengo muchas dudas en la sintaxis requerida en la nueva BD.
Hasta ahora mi script es el que sigue pero tengo errores de sintaxis
CREATE TRIGGER GST_NNM1_Sincroniza_Guias
ON "NNM1"
FOR UPDATE
AS BEGIN
DECLARE pNextFolio INT ;
DECLARE pSeriesName nvarchar(max) ;
DECLARE pFolioPref nvarchar(max) ;
DECLARE pObjectCode INT ;
DECLARE pSeries INT ;
IF TRIGGER_NESTLEVEL() <= 1
BEGIN
SET pNextFolio = (SELECT INSERTED."NextFolio" FROM INSERTED)
SET pSeriesName = (SELECT INSERTED."SeriesName" FROM INSERTED)
SET pFolioPref = (SELECT INSERTED."FolioPref" FROM INSERTED)
SET pObjectCode = (SELECT INSERTED."ObjectCode" FROM INSERTED)
SET pSeries = (SELECT INSERTED."Series" FROM INSERTED)
if ( pSeriesName = 'GSuite' and pFolioPref = '52' )
BEGIN
UPDATE "NNM1" SET NNM1."NextFolio" = pNextFolio
WHERE "NNM1"."SeriesName" = 'GSuite'
and "NNM1"."Foliopref" = '52'
and "NNM1"."NextFolio" < pNextFolio
END
ELSE
BEGIN
UPDATE NNM1 SET NNM1."NextFolio" = pNextFolio
WHERE NNM1."Series" = pSeries
and NNM1."ObjectCode" = pObjectCode
END
END
END
Claramente necesito ayuda en este punto.
Se agradece lo que puedan sugerir o corregir.
Comentario