Q? Determining event in DDL Triggers

Hi All,
I've noticed references in the 8i documentation to DDL triggers. In the SQL reference there is mention that you can:
CREATE TRIGGER xyz AFTER DDL
pl/sql block
(or something similar, I typed this my memory)
Which is all great except that it doesn't explain how you find out what caused you to fire.
In a DML trigger, which I am familiar with,
you can do useful things because you have :new and :old values. Is there a :ddl that lists the statement that fired?
Does anyone have sample code of a ddl trigger?
Thanks in advance,
Steven Ensslen

AFTER DDL is just one of the possible clause that can be used. There are may ddl where you can specify the excat ddl action. When you have specified the ddl, ofcorse you know how did the tirgger fired! I am including the documentation section on ddl clause.
Let me know if this solved your problem.
---Doc section---
Specify one or more types of DDL statements that can cause the trigger to fire. You
can create triggers for these events on DATABASE or SCHEMA unless otherwise
noted. You can create BEFORE and AFTER triggers for these events. Oracle fires the
trigger in the existing user transaction. The following values are valid:
ALTER Specify ALTER to fire the trigger whenever an ALTER statement
modifies a database object in the data dictionary.
Restriction: The trigger will not be fired by an ALTER DATABASE
statement.
ANALYZE Specify ANALYZE to fire the trigger whenever Oracle collects or
deletes statistics or validates the structure of a database object.
ASSOCIATE
STATISTICS
Specify ASSOCIATE STATISTICS to fire the trigger whenever
Oracle associates a statistics type with a database object.
AUDIT Specify AUDIT to fire the trigger whenever Oracle tracks the
occurrence of a SQL statement or tracks operations on a schema
object.
COMMENT Specify COMMENT to fire the trigger whenever a comment on a
database object is added to the data dictionary.
CREATE TRIGGER
CREATE Specify CREATE to fire the trigger whenever a CREATE statement
adds a new database object to the data dictionary.
Restriction: The trigger will not be fired by a CREATE DATABASE
or CREATE CONTROLFILE statement.
DISASSOCIATE
STATISTICS
Specify DISASSOCIATE STATISTICS to fire the trigger whenever
Oracle disassociates a statistics type from a database object.
DROP Specify DROP to fire the trigger whenever a DROP statement
removes a database object from the data dictionary.
GRANT Specify GRANT to fire the trigger whenever a user grants system
privileges or roles or object privileges to another user or to a role.
NOAUDIT Specify NOAUDIT to fire the trigger whenever a NOAUDIT
statement instructs Oracle to stop tracking a SQL statement or
operations on a schema object.
RENAME Specify RENAME to fire the trigger whenever a RENAME statement
change the name of a database object.
REVOKE Specify REVOKE to fire the trigger whenever a REVOKE statement
removes system privileges or roles or object privileges from a user
or role.
TRUNCATE Specify TRUNCATE to fire the trigger whenever a TRUNCATE
statement removes the rows from a table or cluster and resets its
storage characteristics.
DDL Specify DDL to fire the trigger whenever any of the preceding DDL
statements is issued.
Restriction: You cannot specify as a triggering event any DDL operation performed
through a PL/SQL procedure.

Similar Messages

  • Top-of-page event is not triggered

    Hi,
    I have a problem with top-of-page event. I have a report that shows the results in ALV grid display. But I use "REUSE_ALV_GRID_DISPLAY" not OO alv and there is only one screen with number 1000. On the menu toolbar there is a button that prints the data of ALV in a list using "write" statement. While writing , "top of page" event is not triggered. I expect that it is triggered at the first "write" statement but isn't. Is there anyone who knows the cause of this problem?
    The code is below.
    Thanks.
    Tables ...
    TABLES : mara , makt , ekko , ekpo , zzith_yukh , lfa1 , t001w  , lips ,
             eket .
    global variables
    DATA : BEGIN OF list OCCURS 1,
           zztahsk LIKE ekko-zztahsk ,
           zterm LIKE ekko-zterm ,
           txz01 LIKE ekpo-txz01 ,
           name1 LIKE lfa1-name1 ,
           menge LIKE ekpo-menge ,
           meins LIKE ekpo-meins ,
           fyukl LIKE zzith_yukh-zzdel_flag ,
                             " Yüklenmiş miktar var göstergesi ...
           inco1 LIKE ekko-inco1 ,
           netwr LIKE ekpo-netwr ,
           waers LIKE ekko-waers ,
           bedat LIKE ekko-bedat ,
           zzontar LIKE ekko-zzontar ,
           slfdt LIKE eket-slfdt ,
           tname1 LIKE t001w-name1 ,
           banfn LIKE ekpo-banfn ,
           ebeln LIKE ekko-ebeln ,
           ebelp LIKE ekpo-ebelp ,
           lifnr LIKE ekko-lifnr ,
           mtart LIKE mara-mtart ,
           matkl LIKE mara-matkl ,
           ekgrp LIKE ekko-ekgrp ,
           matnr LIKE mara-matnr ,
           eknam  LIKE t024-eknam,
           bukrs  LIKE ekko-bukrs,
           zzbltur LIKE ekko-zzbltur,
           END   OF list         .
    DATA temp  LIKE list OCCURS 1 WITH HEADER LINE .
    DATA total LIKE list OCCURS 1 WITH HEADER LINE .
    ALV fields
    TYPE-POOLS : slis.
    DATA : gt_fields TYPE  slis_fieldcat_alv OCCURS 1 WITH HEADER LINE .
    DATA : gt_events TYPE  slis_t_event.
    DATA : gs_layout TYPE  slis_layout_alv.
    DATA : gv_title  TYPE lvc_title VALUE 'Günlük Depo Sayım Miktarları'.
    DATA : gt_top_of_page TYPE slis_t_listheader.
    selection screen
    SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001 .
    *Satınalma organizasyonu
    *Satınalma grubu
    *Satıcı
    *Tarih
    *SAS no
    *Dosya no
    SELECT-OPTIONS:
    s_bukrs FOR ekko-bukrs .
    SELECTION-SCREEN SKIP .
    SELECT-OPTIONS:
    s_ekorg FOR  ekko-ekorg OBLIGATORY MEMORY ID eko ,
    s_ekgrp FOR  ekko-ekgrp ,
    s_lifnr FOR  ekko-lifnr ,
    s_ebeln FOR  ekko-ebeln .
    SELECTION-SCREEN END  OF BLOCK a        .
    Define Katalog
    DEFINE fill_catalog .
      gt_fields-fieldname  = &1.
      gt_fields-tabname    = &2.
      gt_fields-seltext_l  = &3.
      gt_fields-seltext_m  = &3.
      gt_fields-seltext_s  = &3.
      gt_fields-checkbox   = &4.
      gt_fields-cfieldname = &5.
      gt_fields-ref_tabname  = &6.
      gt_fields-ref_fieldname  = &7.
      gt_fields-edit       = &8.
      append gt_fields .
      clear gt_fields .
    END-OF-DEFINITION.
    Modify Catalog
    DEFINE modify_catalog .
      gt_fields-seltext_m = &1 .
      modify gt_fields  transporting seltext_m where fieldname = &2 .
    END-OF-DEFINITION     .
    TOP-OF-PAGE.
      write 'top of page'.
      PERFORM top-of-page.
    start-of-selection
    START-OF-SELECTION .
      PERFORM get_data.
      PERFORM listele .
    *&      Form  listele .
    FORM listele .
      PERFORM get_events .
      PERFORM alv_list_header.
      PERFORM get_field_catalog USING 'LIST' .
      PERFORM display_alv    .
    ENDFORM.                    " listele.
    *&      Form  getfield_Catalog
    FORM get_field_catalog  USING p_tabname .
      fill_catalog :
    'EBELN'   'LIST' '' '' '' 'EKPO' 'EBELN'   '' ,
    'ZZTAHSK' 'LIST' '' '' '' 'EKKO' 'ZZTAHSK' '' ,
    'ZZBLTUR' 'LIST' '' '' '' 'EKKO' 'ZZBLTUR' '' ,
    'MATNR'   'LIST' '' '' '' 'MARA' 'MATNR'   '' ,
    'MATKL'   'LIST' '' '' '' 'MARA' 'MATKL'   '' ,
    'TXZ01'   'LIST' '' '' '' 'EKPO' 'TXZ01'   '' ,
    'NAME1'   'LIST' '' '' '' 'LFA1' 'NAME1'   '' ,
    'MENGE'   'LIST' '' '' '' 'EKPO' 'MENGE'   '' ,
    'MEINS'   'LIST' '' '' '' 'EKPO' 'MENGE'   '' ,
    'FYUKL'   'LIST' '' '' '' 'ZZITH_YUKH' 'ZZDEL_FLAG'   '' ,
    'INCO1'   'LIST' '' '' '' 'EKKO' 'INCO1'   '' ,
    'NETWR'   'LIST' '' '' '' 'EKPO' 'NETWR'   '' ,
    'WAERS'   'LIST' '' '' '' 'EKKO' 'WAERS'   '' ,
    'BEDAT'   'LIST' '' '' '' 'EKKO' 'BEDAT'   '' ,
    'ZZONTAR' 'LIST' '' '' '' 'EKKO' 'ZZONTAR' '' ,
    'SLFDT'   'LIST' '' '' '' 'EKET' 'SLFDT'   '' ,
    'TNAME1'  'LIST' '' '' '' 'T001W' 'NAME1'  '' ,
    'BANFN'   'LIST' '' '' '' 'EKPO' 'BANFN'   '' ,
    'EKNAM'   'LIST' '' '' '' 'T024' 'EKNAM'   '' .
      gt_fields-ddictxt = 'M' .
      MODIFY gt_fields  TRANSPORTING ddictxt WHERE fieldname NE space.
      modify_catalog 'Yükleme No'            'VBELN'   .
      modify_catalog 'Malzeme Türü'          'ZZBLTUR' .
      modify_catalog 'Malzeme Tanımı'        'TXZ01'   .
      modify_catalog 'Satıcı'                'NAME1'   .
      modify_catalog 'Teslim Şekli'          'INCO1'   .
      modify_catalog 'Döviz Tutarı'          'ZZTOPLAM'.
      modify_catalog 'Döviz Kodu'            'WAERS'   .
      modify_catalog 'Siparişi Veren'        'TNAME1'  .
      modify_catalog 'Tahmini İthalat Trh.'  'SLFDT'   .
      modify_catalog 'İthalata İntikal Trh.' 'BEDAT'   .
      modify_catalog 'Dosya Onay Tarihi'     'ZZONTAR' .
      modify_catalog 'Talep No'              'BANFN'   .
      modify_catalog 'Dosya Sorumlusu'       'EKNAM'   .
      modify_catalog 'Yük.Göstergesi'        'FYUKL'   .
    ENDFORM.                    " getfield_Catalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
      DATA lv_repid LIKE sy-repid .
      lv_repid = sy-repid .
      CLEAR gs_layout.
      gs_layout-zebra                 = 'X'.
      gs_layout-colwidth_optimize     = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = lv_repid
          i_callback_pf_status_set = 'SET_PF_STATUS'
          i_callback_user_command  = 'USER_COMMAND'
          is_layout                = gs_layout
          it_fieldcat              = gt_fields[]
          it_events                = gt_events[]
        TABLES
          t_outtab                 = list[].
    ENDFORM.                    " display_alv
    FORM set_pf_status USING  iv_nodisplay TYPE slis_t_extab.
      SET PF-STATUS 'STANDARD' ."excluding iv_nodisplay.
    ENDFORM.                    " SET_PF_STATUS
    FORM user_command  USING iv_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
      CASE iv_ucomm .
        WHEN 'PRINT'  . PERFORM print_data .
      ENDCASE       .
    ENDFORM.                    "USER_COMMAND
    FORM get_events .
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = gt_events.
      READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE 'ALV_TOP_OF_PAGE' TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
    ENDFORM.                    " getevents
    FORM alv_list_header .
      DATA: ls_line TYPE slis_listheader.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'Sat&#305;nalma Org.:'.
      CONCATENATE s_ekorg-low s_ekorg-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
      ls_line-key  = 'Sat&#305;nalma Grubu.:'.
      CONCATENATE s_ekgrp-low s_ekgrp-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
      ls_line-key  = 'Sat&#305;c&#305;.:'.
      CONCATENATE s_lifnr-low s_lifnr-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
      ls_line-key  = 'SAS No.:'.
      CONCATENATE s_ebeln-low s_ebeln-high
      INTO ls_line-info SEPARATED BY '/'.
      APPEND ls_line TO gt_top_of_page.
    ENDFORM.                    " alv_list_header
    FORM alv_top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE
    FORM get_data .
      DATA : BEGIN OF tr ,
              menge LIKE eket-menge ,
              dabmg LIKE eket-dabmg ,
             END OF tr ,
             zzfiilytar LIKE zzith_yukh-zzfiilytar  .
    *- Get data ...
      SELECT *
        INTO CORRESPONDING FIELDS OF TABLE list
        FROM ekpo AS a
       INNER JOIN ekko AS b ON bebeln = aebeln
      WHERE b~ebeln IN s_ebeln AND
            b~bukrs IN s_bukrs AND
            b~loekz EQ space   AND
            b~lifnr IN s_lifnr AND
            b~ekorg IN s_ekorg AND
            b~ekgrp IN s_ekgrp AND
            a~loekz EQ space   AND
            a~elikz EQ space .
      LOOP AT list .
        CLEAR tr .
        SELECT menge dabmg
          INTO tr
          FROM eket
         WHERE ebeln = list-ebeln AND
               ebelp = list-ebelp.
          tr-menge = tr-menge - tr-dabmg .
        ENDSELECT.
        IF tr-menge LE 0 .
          DELETE list .
        ELSE .
          list-menge = tr-menge .
          IF tr-dabmg GT 0 .
            list-fyukl = '*' .
          ENDIF .
          SELECT SINGLE butxt INTO list-tname1 FROM t001
            WHERE bukrs = list-bukrs .
          SELECT SINGLE slfdt INTO list-slfdt FROM eket
          WHERE ebeln = list-ebeln AND
                ebelp = list-ebelp .
          SELECT SINGLE name1 INTO list-name1 FROM lfa1 WHERE lifnr = list-lifnr.
          SELECT SINGLE mtart matkl INTO (list-mtart,list-matkl)
          FROM mara WHERE matnr = list-matnr .
          SELECT SINGLE eknam INTO list-eknam FROM t024 WHERE ekgrp = list-ekgrp .
          MODIFY list .
        ENDIF .
      ENDLOOP      .
    ENDFORM.                    " get_data
    FORM print_data .
      LEAVE TO LIST-PROCESSING .
      NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE 229 .
      SET PF-STATUS SPACE .
    PERFORM top-of-page .
    malzeme türü 1005 ler yazd&#305;r&#305;l&#305;r
      PERFORM yazdir_1005 .
    malzeme türü 1005 olmayanlar yazd&#305;r&#305;l&#305;r
      PERFORM yazdir_ne_1005 .
    Sat&#305;nalama gruplar&#305; bilgisi yazd&#305;r&#305;l&#305;r
      PERFORM yazdir_ekgrp .
    ENDFORM.                    " print_data
    FORM top-of-page .
      WRITE : 'ÜLKER GRUBU KONSOL&#304;DE' .
      WRITE AT 40 'Sevkiyat Bekleyen Malzemeler' COLOR COL_HEADING .
      WRITE :  180 sy-uname , sy-datum , sy-uzeit.
      NEW-LINE .
      ULINE 0(229) .
      WRITE :/2 'Rapor Kodu..............:' , (10) sy-tcode .
      WRITE :/2 'Sat&#305;nalma Organizasyonu.:' , (10) s_ekorg-low, '/', (10) s_ekorg-high .
      WRITE :/2 'Sat&#305;nalma Grubu.........:' , (10) s_ekgrp-low, '/', (10) s_ekgrp-high .
      WRITE :/2 'Sat&#305;c&#305;..................:' , (10) s_lifnr-low, '/', (10) s_lifnr-high .
      WRITE :/2 'Sat&#305;nalma Sipari&#351; No....:' , (10) s_ebeln-low, '/', (10) s_ebeln-high .
      NEW-LINE .
      ULINE 0(229) .
    Ba&#351;l&#305;klar yaz&#305;l&#305;r
      FORMAT COLOR COL_HEADING .
      WRITE :
      /(10) 'SAS NO.' CENTERED,
      (6)  'TAHS&#304;S'  CENTERED,
      (5)  'ÖDEME'   CENTERED,
      (5)  'Bel.T'   CENTERED,
      (25) 'MALZEME' CENTERED,
      (25) 'SATICI' CENTERED,
      (12) 'M&#304;KTAR' CENTERED,
      (3)  'BRM' CENTERED,
      (3)  'G' ,
      (7) 'TES.&#350;K.' CENTERED,
      (16) 'DÖV&#304;Z TUTARI' CENTERED,
      (3)  'DB.' CENTERED,
      (13) '&#304;TH.&#304;NTK.TRH.' CENTERED,
      (13) 'DOSYA ON.TRH.' CENTERED,
      (10) 'TAHM&#304;N.&#304;TH.TRH.' CENTERED,
      (20) 'S&#304;PAR&#304;&#350; VEREN' CENTERED,
      (10) 'TALEP NO.' CENTERED,
      (18) 'DOSYA SORUMLUSU' CENTERED.
      ULINE 0(229) .
      FORMAT RESET .
    ENDFORM.                    " top-of-page
    FORM yazdir_1005 .
      DATA ebeln LIKE list-ebeln  .
      SORT list BY zzbltur matnr .
      temp[] = list[] .
      DELETE temp WHERE mtart <> '1005' .
      LOOP AT list WHERE mtart = '1005' .
        CLEAR list-netwr .
        IF ebeln NE list-ebeln OR ebeln EQ space .
          REFRESH total . CLEAR total .
          ebeln = list-ebeln .
          LOOP AT temp WHERE ebeln = list-ebeln .
            list-netwr = list-netwr + temp-netwr  .
            CLEAR total .
            total-txz01 = '*** TKNK.MLZ. TOPLAMI ****' .
            total-meins = temp-meins .
            total-menge = temp-menge .
            COLLECT total .
          ENDLOOP                               .
          PERFORM write_list USING '1'  .
          LOOP AT total .
            PERFORM write_list USING '2'  .
          ENDLOOP .
          AT END OF zzbltur .
            ULINE 0(229) .
          ENDAT .
        ENDIF .
      ENDLOOP .
    ENDFORM.                    " yazdir_1005
    FORM write_list  USING    flag .
    flag 1 1005 için yazd&#305;rma
    flag 2 ise ara toplam
      IF flag = '1' .
       FORMAT COLOR COL_NORMAL .
        WRITE :
        /(10) list-ebeln ,
         (6)  list-zztahsk,
         (5)  list-zterm,
         (5)  list-zzbltur ,
         (25) list-txz01,
         (25) list-name1,
         (12) list-menge,
         (3)  list-meins,
         (3)  list-fyukl,
         (7)  list-inco1,
         (16) list-netwr,
         (3)  list-waers,
         (13) list-bedat,
         (13) list-zzontar,
         (10) list-slfdt ,
         (20) list-tname1,
         (10) list-banfn ,
         (18) list-eknam .
        FORMAT RESET .
      ELSEIF flag = '2'  .
       FORMAT COLOR COL_TOTAL .
        WRITE :
        /(10) '' ,
         (6)  '' ,
         (5)  '' ,
         (5)  '' ,
         (25) total-txz01,
         (25) '' ,
         (12) total-menge,
         (3)  total-meins,
         (3)  '' ,
         (7)  '' ,
         (16) '' ,
         (3)  '' ,
         (13) '' ,
         (13) '' ,
         (10) '' ,
         (20) '' ,
         (10) '' ,
         (18) '' .
        FORMAT RESET .
      ELSEIF flag = '3'  .
       FORMAT COLOR COL_TOTAL .
        WRITE :
       /(10) '' ,
        (6)  '' ,
        (5)  '' ,
        (5)  '' ,
        (25) total-txz01,
        (25) '' ,
        (12) total-menge,
        (3)  '' ,
        (3)  '' ,
        (7)  '' ,
        (16) total-netwr ,
        (3)  '' ,
        (13) '' ,
        (13) '' ,
        (10) '' ,
        (20) '' ,
        (10) '' ,
        (18) '' .
        FORMAT RESET .
      ENDIF .
    ENDFORM.                    " write_list
    FORM yazdir_ne_1005 .
      DATA matnr LIKE list-matnr .
      SORT list BY zzbltur matkl matnr .
      temp[] = list[] .
      DELETE temp WHERE mtart = '1005' .
      LOOP AT list WHERE mtart <> '1005' .
    Her yeni Malzeme için ara toplam yaz&#305;l&#305;r
        IF matnr NE list-matnr AND matnr NE space .
           REFRESH total . CLEAR total .
    Toplamlar al&#305;n&#305;r
          LOOP AT temp WHERE matnr = matnr .
            CLEAR total .
            total-netwr = temp-netwr  .
            total-menge = temp-menge  .
            total-txz01 =  '***     TOPLAM        ****' .
            COLLECT total .
          ENDLOOP                          .
          LOOP AT total .               .
            PERFORM write_list USING '3'  .
          ENDLOOP                       .
          ULINE 0(229) .
        ENDIF                      .
        PERFORM write_list USING '1'  .
        matnr = list-matnr            .
      ENDLOOP                           .
    Toplamlar al&#305;n&#305;r
      LOOP AT temp WHERE matnr = matnr .
        REFRESH total . CLEAR total .
        total-netwr = temp-netwr  .
        total-menge = temp-menge  .
        total-txz01 =  '***     TOPLAM        ****' .
        COLLECT total .
      ENDLOOP .
      LOOP AT total .
        PERFORM write_list USING '3'  .
      ENDLOOP       .
      ULINE 0(229)  .
    ENDFORM.                    " yazdir_ne_1005
    FORM yazdir_ekgrp .
      DATA: BEGIN OF total OCCURS 1 ,
            eknam LIKE list-eknam   ,
            zzbltur LIKE list-zzbltur ,
            sayi TYPE i ,
            END  OF  total          .
      DATA: BEGIN OF gtotal OCCURS 1 ,
            eknam LIKE list-eknam   ,
            zzbltur LIKE list-zzbltur ,
            sayi TYPE i ,
            END  OF  gtotal          .
      DATA: bltur LIKE zzith_bltur OCCURS 1 WITH HEADER LINE .
      DATA: len TYPE i  .
      DATA: wa LIKE total.
      REFRESH temp .
      SELECT * INTO TABLE bltur FROM zzith_bltur .
      CLEAR bltur .
      MOVE : 'ZZZZ'   TO bltur-zzbltur ,  " Sat&#305;r toplam&#305; için ...
             text-002 TO bltur-zztanim .
      APPEND bltur .
      CLEAR list   .
      SORT list BY eknam ebeln .
      DELETE ADJACENT DUPLICATES FROM list COMPARING eknam ebeln .
      LOOP AT list .
        CLEAR : total, gtotal .
        total-eknam = list-eknam .
        total-zzbltur = list-zzbltur .
        total-sayi  = 1 .
        COLLECT total   .
        total-eknam   = list-eknam .
        total-zzbltur = 'ZZZZ' .
        total-sayi  = 1 .
        COLLECT total   .
        gtotal-eknam = text-001 .
        gtotal-zzbltur = list-zzbltur .
        gtotal-sayi  = 1 .
        COLLECT gtotal   .
        gtotal-eknam = text-001 .
        gtotal-zzbltur = 'ZZZZ' .
        gtotal-sayi  = 1 .
        COLLECT gtotal   .
      ENDLOOP      .
      FORMAT COLOR COL_HEADING.
      ULINE AT /1(145).
      WRITE :/
      sy-vline , (15) 'Dosya Sorumlusu' , sy-vline .
      LOOP AT bltur .
        WRITE :(15) bltur-zztanim  , sy-vline .
      ENDLOOP  .
      ULINE AT /1(145).
      FORMAT RESET   .
      total-zzbltur = '0001' .
      MODIFY total TRANSPORTING zzbltur WHERE zzbltur = space .
      gtotal-zzbltur = '0001' .
      MODIFY gtotal TRANSPORTING zzbltur WHERE zzbltur = space .
      SORT total BY eknam .
      LOOP AT total  .
        AT NEW eknam .
          WRITE :/
          sy-vline , (15) total-eknam COLOR COL_HEADING ,
          sy-vline .
          LOOP AT bltur   .
            len = sy-tabix * 18 .
            len = len + 3 .
            CLEAR wa .
            READ TABLE total INTO wa WITH KEY zzbltur = bltur-zzbltur
                                              eknam   = total-eknam .
            WRITE AT len(15) wa-sayi NO-ZERO.
            WRITE sy-vline .
          ENDLOOP    .
        ENDAT      .
      ENDLOOP .
      LOOP AT gtotal  .
        AT NEW eknam .
          FORMAT COLOR COL_TOTAL .
          WRITE :/
          sy-vline , (15) gtotal-eknam ,
          sy-vline .
          LOOP AT bltur   .
            len = sy-tabix * 18 .
            len = len + 3 .
            CLEAR wa .
            READ TABLE gtotal INTO wa WITH KEY zzbltur = bltur-zzbltur
                                               eknam   = text-001    .
            WRITE AT len(15) wa-sayi NO-ZERO.
            WRITE sy-vline .
          ENDLOOP    .
        ENDAT      .
      ENDLOOP .
      ULINE AT /1(145).
      FORMAT RESET .
    ENDFORM.                    " yazdir_ekgrp

    Hi,
    In the function  use the top-of-page event as follows:
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                    I_BYPASSING_BUFFER          =
                    I_BUFFER_ACTIVE             =
                    I_INTERFACE_CHECK           = ' '
                 I_CALLBACK_PROGRAM          = 'ZRPMSLM'
                    I_CALLBACK_PF_STATUS_SET    = ' '
                    I_CALLBACK_USER_COMMAND     = ' '
               <b>  I_CALLBACK_TOP_OF_PAGE      = 'TOP'</b>
    Define whatever to appear in top-of page in a subroutine named TOP.
    Hope this helps.
    Reward if helpful.
    Regards,
    Sipra

  • Event not getting triggered for a few users in production

    Hi Experts!!
    We have a workflow that gets triggered on the event REQUESTCREATED of BUS2089. In production, we see that for a few users the event is getting triggered and even the workflow is. But for a few users, the workflow is not getting triggered. However, we didn't check SWEQADM yet and are waiting to get auth to check the same. But before that, I need your valuable suggestions on this.
    When I check SWEL, I cannot see any entries at all. Not even for the successfully processed ones.
    Auth objects cannot be a reason, as all the users have same auth. Please suggest me on what else can be the reasons.
    Your help is highly appreciable.

    Hello Srinivas !
                  Check in SWEQADM to know whether the event is on queue.If so, redeliver it.
                  If there is no event on queue, check the RFC queue( transaction SWU2 ) and ST22 for possible ABAP dumps.
                  Call work item list report (transaction SWI1) and check event linkages (transaction SWETYPV )of the users for whom the event is not triggered.Are you using BAdI or user- exit to trigger the workflow ? If so, check whether those are in active state.
                 Refresh the workflow buffers(transaction SWU_OBUF).Check either of the workflow versions are in active state.
    Regards,
    S.Suresh

  • How do I find an event which is triggered on line selection for ALV grid?

    Hi,
    I'm trying to find an event which is triggered when a user selects a row in the ALV grid. I want to add my own code in to add up the total values of selected lines, but can't find any event which will trigger my method.
    I found CLICK_ROW_COL but it's protected so when I try and add a method for it:
      PROTECTED SECTION.
        METHODS:
        select_row
            FOR EVENT click_row_col OF cl_gui_alv_grid.
    I get the syntax error:
    Access to protected event "CLICK_ROW_COL" is not allowed.
    Am I using the right event? Am I implementing it correctly?
    Any help appreciated. Thanks in advance.
    Gill

    I chose to solve this by removing the line select buttons from the ALV and replacing them with a checkbox defined as a hotspot.  I then used EVENT hotspot_click FROM cl_gui_alv_grid to highlight the line and change my totals on a single click.

  • What event will be triggered by check button on ALV?

    Hi,
    What event will be triggered by the standard check button on ALV? ON_DATA_CHECK is only triggered by a change in an editable field on ALV, so if no change were made, ON_DATA_CHECK wouldn't be triggered. I also tried events for before and after standard function but neither were triggered. How can I use the standard check function?
    Regards,
    ts

    Hi ts,
    The event ON_DATA_CHECK would trigger only if the content on alv is dirtly i.e. user modified something.
    If there are no changes done for the contents, whats your requirement to use check button?
    You can create a custom alv toolbar button and use event ON_FUNCTION on click of tool bar button.
    Regards,
    Rama

  • Workflow WS00000038 Purch.Req - Event REJECTED not triggered

    Hi Friends!
    (SAP ECC 6.0)
    (Tcode SWE3 - BUS2009-REJECTED is active)
    When using WS00000038 Purchase requisition we have problem when an item is REJECTED.
    the Event that is triggered is BUS2009-SIGNIFICANTLYCHANGED. This leads to that the Workflow end up with status  COMPLETED and NO further handling of the actual Rejection that were made.
    IF BUS2009-REJECTED were triggered instead, then WS00000038 would have followed another path in the workflow which is to handle the REJECTION via another TASK.
    Why is BUS2009-REJECTED not triggered when button "REJECT" Requisition is pressed (ME54N).
    Best regards
    Henrik

    In this aproval step within WS00000038 it is actually ME54N that is called.
    The result in the task of the workflow is an EXTERNAL EVENT that is triggered.
    In my case it is BUS2009-SIGNIFICANTLYCHANGED that is triggered instead of BUS2009-REJECTED.
    this is what causes my Workflow WS00000038 to choose the wrong path.
    Does anyone have a solution of how to get BUS2009-REJECTED triggered via ME54N when I actually press button to REJECT and then SAVE.
    Best reg
    Henrik

  • Interactive Form - button SubmitToSap - OnSubmit event is not triggered

    Please help to resolve triggering OnSubmit event problem.
    I created a test Webdynpro with UI element InteractiveForm.
    The InteractiveForm properties are:
    - displayType = native
    - enabled is checked.
    OnSubmit event  a method is called. The method contains very simple code so I could debug and see if the event is triggered.
    The form was created in SFP with  Layout type = Native.
    The form properies are:
    Default Lang = Javascript.
    Default run =  at client
    Preserve scripting changes to form when saved = Manually
    I have inserted Webdynpro script thru SAP Utilities menu.
    The form has SubmitToSap button and Textfield.
    So now i am trying to debug WDA.
    At runtime WDA opens Adobe form.
    If I enter data into Textfield and then click SubmitToSap button  -  OnSubmit event is triggered. I am happy.
    Then I run WDA again. This time I click  SubmitToSap button  right away without entering data into Textfield. OnSubmit event is NOT triggered this time.
    Is something wrong with my form properties?
    Thank you very much,
    Tatyana.

    Manas, you are right.
    OnSubmit event was not triggered unless U enter value into Textfield because the Textfield property was "Requiered".
    Also just for clarification the form Layout type  is ZCI Layout (not Native like I said above).
    Thank you!

  • Wait Event to be triggered with configurable no. of days

    Hello,
    I have a requirement in which a workflow gets triggered. After that it waits for an event to get triggered which it listens to.
    Also there is certain no. of days which is configurable.
    I want that when the event is received with the configurable no. of days then it should processing 1. If the event is not received with configurable no. of days then processing 2 should be done.
    Could you let me know how do we achieve this functionality.
    Thanks,
    Imran

    There are at least two ways.
    1) Set a latest end deadline in process 1 and make the work item obsolete - use a container element to store information about whether the event appeared or not.
    2) Set a requested start deadline in process 2 and process the two in a 1-out-of-2 parallel branch.
    I would recommend option 2.

  • DDL Triggers and Detecting sp_rename

    I am trying to use DDL triggers to detect all changes to a table.
    Sometimes a user directly or (more likely) through the SQL Server Management Studio GUI renames a column via sp_rename.
    I can't seem to figure out how to detect such renames using a DDL trigger.  Is there any way or is this a limitation of the DDL trigger system?

    You can call it a limitation
    https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=124493&wa=wsignin1.0
    Madhu

  • Event Problem constant triggering

    I am having problems using an event structure.  I am not quite sure how to explain the undesired behavior I am seeing.
    I have an event that when triggered takes a few seconds to complete.  I don't want to lock the panel because I would like to still receive input during this time and have the events queue.  The problem I am seeing, however, is that if the event is queued it somehow keeps the trigger enabled. 
    For example, if I trigger the event and while the task is running the event is triggered again; like it should, it will run the task again after the completion of the first.  The problem that is arising is that it will the keep triggering the same task over and over again (executing over and over again) even without any addition triggers.  This will continue until a different task is triggered in the same event structure.
    How can I stop this continuous triggering of the event?  And why is it occuring in the first place?
    LV 8.0 through 2013, Win 7
    CLA

    The Q wrote:
    The problem that is arising is that it will the keep triggering the same task over and over again (executing over and over again) even without any addition triggers.  This will continue until a different task is triggered in the same event structure.
    I still would like to see the code that does this. It should not happen, so maybe you discovered a bug that NI should be made aware of.
    Remember that value changes of "analog style" controls such as slides will typically trigger quite a few indentical events, not just one.
    Maybe that's what you are seeing?
    One workaround for this particular problem is described HERE. See if applies to your situation.
    LabVIEW Champion . Do more with less code and in less time .

  • Custom Event - Issues with triggering

    Hi Experts,
    I've developed one workflow for travel management. The flow is as below.
    1. Whenever expense report is created, workflow will get triggered
    2. If the expense report requires receipts, workflow will be waiting for the receipts attachment. After attaching the receipts workflow will move further for approval process. For this I've created one custom event, which will be triggered from enhance spot (OA_BADI_LINK) implementation when receipts are attached
    3. I'm using the custom event created and wait step to hold the workflow till the event get triggered
    4. If receipts are required and not attached for 2 days, workflow will be terminated
    It was working fine in development server. After transporting the all related objects to testing server, in testing server the workflow was not moving further even after attaching the receipts. I wanted to check whether the custom event is getting triggered or not, while attaching the receipts. For this, I've requested admin team to switch on the event trace (SWELS) in testing server. After switching on the event trace, my workflow is working fine. I mean, the workflow is moving further whenever receipts are attached.
    I'm with no clue, why it was not working before activating the event trace and why it is working after that.
    Can any one help me in finding out the cause?
    Thanks in Advance,
    Siva Sankar.

    Hi Shital,
    Thanks for ur reply.
    Standard event that is maintained in SWE2 was getting triggered and workflow was getting started. But, the custom event that is getting triggered from enhancement was not working properly.
    What settings admin do using SWEQADM tcode?
    Thanks,
    Siva Sankar.

  • Event is not triggering in swel

    Hello Gurus,
    i have used a subtype business object zbus2009 of bus2009.
    and i have deactivated the event of bus2009 in workflow. now i am using there this subtype zbus2009.
    but in swel while i am checking after creation, no event is triggering here, and showing here in swel "no event is trigger for bus2009" but i have changed bus2009 to zbus2009, so it should show for zbus2009, either its triggering or not.
    please tell me where am i lacking.
    Kind Regards,
    Him Joshi

    HI HIM,
    It seems like you have created a subtype for BUS2009 and you want to use the additional functionality of ZBUS2009 in
    your workflow. You need to do the following:
    1. Delegate your BO ZBUS2009 with BUS2009( you can search for this in this forum).
    2. Activate the event for BUS2009. This will be trigerred for ZBUS2009 as well due to this delegation.
    Hope this helps you.
    Regards
    Gautam

  • Event not getting triggered for PR generated through MRP run

    Hi All,
    Could anyone let me know how to get a workflow triggered for the ReleaseStepCreated event (obj - bus2105) when the PR is created through MRP run. The MD02 control paramters have the value '1'.
    Interstingly the workflow triggers when the value is set to '2' or '3'.
    Thanks,
    Ameekar

    Thanks Aman,
    I checked field restrictions but there are none there. Actually i checked them for other object 'AOOMARA' which is being thrown as an exception when i am creating the PR through MRP run.
    Exception says -> field not maintained.
    So i guess, i need to maintain the field for Change Document but i am not sure how. COuld you please aid me with that.
    Thanks A lot !!

  • Workflow event bus1022-created triggered twice with ME21Nu200F

    Hi everybody
    The explanation to my problem is as follow: Initially I was using the Tcode AS01, ME21N, ABUMN to create fixed assets and every asset created triggers the event BUS1022-CREATED, but then I set the system to synchronizing assets with equipments (SPRO -> Financial accounting->Assets accounting->Master Data->Automatic creation of equipment master recordsu2026u2026) but the event BUS1022-CREATED didn´t triggered any more so I create the new entry in SWEC with ANLA as objet of modification and the OBJ BUS1022 and the event CREATED for the creation for any new record; It works but now the problem is that this event  is being created twice with the Tcode ME21N.
    Any suggestion?
    Thanks a lot.
    Felipe Uribe

    Hello Felipe,
    a check on the TCode during the event coupling seems to be the most effective way here. However, only checking on sy-tcode will not help you much, as you don't know the source (change document / application event).
    So what you need to round up your work-around is a flag in the event container that tells you, if the event was created through the SWEC, and if yes, by which transaction code.
    - To do so, create a subtype of BUS1022 with a system wide delegation.
    - Create two new additional event parameters: TransactionCode  (type syst-tcode) and ByChangeDocument  (type boole-boole)
    - Create a function module Z_SWEC_CONTAINER_BUS1022 copied from SWE_CD_TEMPLATE_CONTAINER_FB (or SWE_CD_TEMPLATE_CONTAINER_FB_2 depending on your ABAP OO experiences) and enter this function module under "Event container" in the maintenance entry of SWEC/BUS1022/CREATED
    - Within that event container function module, you just set the two event container elements using the value of SY-TCODE for the field TransactionCode and a fixed 'X' for the value of the field ByChangeDocument
    - Create a new check function module (or workflow start condition) -- as described earlier in this thread -- that checks on:
    ( ByChangeDocument = 'X' AND TransactionCode = 'ME21N' ) OR ( ByChangeDocument = ' ' ).
    This way you'll sort out the doubled events through the change document for all other transactions than ME21N.
    Good luck,
    Florin

  • Photoshop CC 2014 Extension - CEP Event callback is triggered multiple times per single event

    Trying to make my extensions listen for bunch of events and it's turning out to be a real pain in the ***.
    I'm hoping there's someone here who has a bit more experience playing around with these.
    I used the example code from here ( Page 43 ): http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/creativesuite/pdfs/CC14_Extension_S DK.pdf
    I've modified the code just a little. I removed some unnecessary things from it. I also added a counter, to try to visualize the issue.
    Every time I pasted the code here, the global variable seemed to duplicate. So, eeeeh...  the example code can be found here.
    The problem is:
    I close one document to trigger the event, but for some reason the callback seems to run multiple times.
    Even better, it doesn't seem to be super consistent about it. Sometimes it repeats only couple of times and sometimes it repeats 160 times.
    It seems like every time the extension panel is reopened, it comes up with a new number.
    Currently, if I close a document, it seems to trigger the callback 15 times
    Since this is screenshot, you'll have to take my word for it. I only closed a single document and the code ran 15 times.
    Am I doing something wrong by any chance?
    edit:
    I believe I just found out the reason and a way to recreate the issue.
    I've occasionally tested the extension by closing and opening the panel, which seems to have caused the issue.
    It looks like every time I close and then open the panel, it... adds one more run time to the stack.
    - Refreshing the panel from chrome doesn't seem to affect it.
    When I restart photoshop, it resets. So after the very first opening of the panel, the event triggers the callback only once.
    I forgot to mention that the host application events work just fine without these issues.
    In fact, I tried to use documentAfterActivate before, but as far as I could find, there is no way to kind of filter out specific events within host application events.
    For instance, I can't specify something different to happen when a new document is opened.
    As very much a side note:
    documentAfterActivate has its own side effect due to the way photoshop works.
    It is triggered when you:
    Create a new document
    Open a new document
    Switch to an open document
    It's the "Switch to an open document" part that makes this event listener also trigger when you close a document.
    Because when you close a document, photoshop switches back to the previous document and that in turn triggers the event listener when it shouldn't, I suppose.
    Of course it doesn't trigger the event when you close the last document as there is no document to switch to at that point.
    ...but this is beyond the scope of the original question.

    I was so tired last night that when I found out the cause of it, I never even thought about unregistering...
    I decided to unregister it when the panel is opened instead.
    This does indeed get rid of the issue.
    Thanks, cbuliarca.
    (function () {
      var csInterface = new CSInterface();
      function init() {
           themeManager.init();
           function registerPhotoshopEvent(in_eventId, register) {
                // Added the next line
                var register = register === "clear" ? "UnRegisterEvent" : "RegisterEvent";
                // Modified the next line
                var event = new CSEvent("com.adobe.Photoshop" + register, "APPLICATION");
                event.extensionId = csInterface.getExtensionID();
                event.appId = csInterface.getApplicationID();
                event.data = in_eventId
                csInterface.dispatchEvent(event);
           var number = 0;
           csInterface.addEventListener("PhotoshopCallback" , function(event) {
                number = number + 1;
                console.log( number );
           var closeEventid = "1131180832"
           // Added the next line
           registerPhotoshopEvent(closeEventid, "clear");
           registerPhotoshopEvent(closeEventid);
      init();

Maybe you are looking for

  • Autodiscovery not working at a complete loss

    Hi  I have a setup with one CAS server and one Exchange backend server. Serves 4 Domains. Activesynch is working (both on intranet and internet). owa is working both Networks too. heres some test data (domain and such stuff have been sanitized contos

  • SAP not getting up?

    Hi Friends, We have one development system on windows platform database is Oracle 9i. When we are going to startsap from MMC it is getting started and after 2 minutes disp+work getting stopped. In trans.log also i am unable to see any error. schema i

  • Itunes stops working when copying apps during Sync

    Hi I am using Itunes 12.01.26 on a Windows 7 PC My library is saved on a nas server and the network drive is mapped. I have an ipod 5 and Iphone 5s Up until october this configuration has works a treat however since about October I have had difficult

  • Error when installing VC

    When running VC setup, I get an error message 'unable to detect the IIS version.  However I have installed ISS on my system.  Has anyone encountered this error before?

  • PO part no and SKU part number different

    I have the Material part no on which we want to do Procurement. and put the material in stock and do valuation. Then I have the Vendors part number which is different than above part no. Mans if my material code is ABC then Vendors code may be DFG. I