Anuncio

Colapsar
No hay anuncio todavía.

Sintaxis Trigger

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Sintaxis Trigger


    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.



  • #2
    Hola!

    el código a simple vista parece que va encaminado, lo que me genera duda es que estás intentando hacer un update a una tabla estándar, algo que generalmente no es recomendado por SAP, no existe forma de cambiar ese código por algo de customizing?

    Comentario


    • #3
      Originalmente publicado por juanma Ver Mensaje
      Hola!

      el código a simple vista parece que va encaminado, lo que me genera duda es que estás intentando hacer un update a una tabla estándar, algo que generalmente no es recomendado por SAP, no existe forma de cambiar ese código por algo de customizing?
      Tengo claro que estoy tocando una tabla de sistema, sin embargo el campo en cuestión SAP solo lo usa para mantener el folio legal de los docs, en este caso el de las guias (traslado y despacho), el correlativo del documento SAP no es tocado.

      Yo también creía que iba bien encaminado hasta la lo compilé dándome varios errores.

      Por eso necesito "experiencia" en triggers de HANA puesto que creo que es solo un mini error de sintaxis.

      Gracias por la ayuda que me puedan dar.

      Comentario


      • #4
        Hola de nuevo, buscaste el manual de HANA Script que había en este foro? seguramente eso te puedo ayudar, sino lo encuentra avisa que lo busco y te lo paso.

        Comentario

        Trabajando...
        X