Skip to Content

Accessing the output of transaction SCU3 in a z program

I want to access the change logs of a table in my z program. The DBTABLOG table doesn't have all the data I need but the transaction SCU3 outputs what I want.


I couldn't find if this data is in a table so instead I tried to submit the program that SCU3 runs (rsvtprot) and get the data from there (code shown below). But this doesn't give me the data. Can anyone help?


TYPES: BEGIN OF ty_abap_list.
         INCLUDE STRUCTURE abaplist.
TYPES: END OF ty_abap_list.

DATA: gt_abap_list  TYPE STANDARD TABLE OF ty_abap_list.


SUBMIT rsvtprot AND RETURN
     EXPORTING LIST TO MEMORY  USING SELECTION-SCREEN 1010
                               WITH cusobj   EQ tabname "Table Name
                               WITH dbeg     EQ ''
                               WITH tbeg     EQ '000000'
                               WITH dend     EQ ''
                               WITH tend     EQ '235959'
                               WITH objfirst EQ ''
                               WITH tabfirst EQ 'X'.

    CALL FUNCTION 'LIST_FROM_MEMORY'
        TABLES
             listobject = gt_abap_list
        EXCEPTIONS
             not_found  = 1
             OTHERS     = 2.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    avatar image
    Former Member
    Nov 03, 2015 at 06:43 AM

    Hi Mike,

    please refer below code.

    *&---------------------------------------------------------------------*

    *& Report  ZTEMP_SCU3

    *&

    *&---------------------------------------------------------------------*

    *&

    *&

    *&---------------------------------------------------------------------*

    REPORT  ztemp_scu3.

    DATA: lr_pay_conf_data TYPE REF TO data,

           lr_pay_conf_data1 TYPE REF TO data.

    FIELD-SYMBOLS: <gtab>  TYPE table.

    FIELD-SYMBOLS: <lt_pay_conf_data> TYPE STANDARD TABLE,

                    <ls_pay_conf_data> TYPE ANY,

                    <lv_field>         TYPE ANY.

    CLEAR : lr_pay_conf_data.

    cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false

                                             metadata = abap_false

                                             data     = abap_true ).

    SUBMIT rsvtprot  USING SELECTION-SCREEN 1010

            WITH cusobj   EQ 'ZFTP_CONN' "Table Name

            WITH dbeg     EQ ''

            WITH tbeg     EQ '000000'

            WITH dend     EQ ''

            WITH tend     EQ '235959'

            WITH objfirst EQ ''

            WITH tabfirst EQ 'X'

            WITH alv_grid = 'X' AND RETURN.

    cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_conf_data ).

    ASSIGN lr_pay_conf_data->* TO <lt_pay_conf_data>.

    IF sy-subrc <> 0.

       CLEAR : sy-ucomm.

       MESSAGE i009(zhundi) WITH 'NO data found'.

    ELSE.

       LOOP AT <lt_pay_conf_data> ASSIGNING <ls_pay_conf_data>.

         DO.

           ASSIGN COMPONENT sy-index OF STRUCTURE <ls_pay_conf_data> TO

           <lv_field>.

           IF sy-subrc <> 0.

             EXIT.

           ELSE.

              "Do some validation

           ENDIF.

         ENDDO.

       ENDLOOP.

    "Through this line you can transfer content from  <lt_pay_conf_data> TO  GIT_DATA. 

    *  APPEND LINES OF <lt_pay_conf_data> TO  GIT_DATA.

    ENDIF.

    cl_salv_bs_runtime_info=>clear_all( ).

    You will get your data in <lt_pay_conf_data>  table .

    please reward if this is useful.

    Regards,

    Sagar Pambhar.

    Add comment
    10|10000 characters needed characters exceeded

    • That was very helpful - thanks.

      What's the best way to access the data of <td_pay_conf_data>? Your comment says I should use APPEND but I don't know the structure of GIT_DATA until runtime.

      I'm very new to ABAP and haven't worked with dynamic tables before.