Tuesday, May 12, 2026

A Report to display transport logs and movement status from Dev > Qms > Prd and other systems if available



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

*& Report  ZTRANSLOG                                                   *

*&                                                                     *

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

*  Program    : ZTRANSLOG                                              *

*  Title      : A report to read transport logs and display them in    *

*             : ALV format                                             *

*----------------------------------------------------------------------*

*  Author     :  Gaurab Banerji (GBANERJI)                             *

*  Created    :  27/10/11                                              *

*  Description:  The program uses standard function modules to read    *

*             :  the transport logs and displays in ALV output after   *

*             :  formatting the data. Double click will navigate to    *

*             :  the particular transport request                      *

*             :                                                        *

*----------------------------------------------------------------------*

************************************************************************

* Modification log:                                                    *

* -------------------------------------------------------------------  *

* Date        User name       ID      Change Request   Case ref.       *

*             Description                                              *

* -------------------------------------------------------------------  *

* Case ref. = Scopus / Intraproject / Project or other reference       *

* -------------------------------------------------------------------  *

* YYYY-MM-DD  XXXX XXXX      XXXXXXXX CMDKXXXXXXXX     SMXXXXXXXX      *

*             Short Description of changes done                        *

*                                                                      *

*                                                                      *

* -------------------------------------------------------------------  *


REPORT  ZTRANSLOG.


* macro definition

DEFINE scr_line.

  SELECTION-SCREEN BEGIN OF LINE.

  PARAMETERS &1 LIKE tadir-pgmid  DEFAULT &2 MODIF ID out.

  PARAMETERS &3 LIKE tadir-object DEFAULT &4.

  PARAMETER &5 LIKE &6.

  SELECTION-SCREEN END OF LINE.

END-OF-DEFINITION.


DEFINE fill_range.

  CLEAR &1.

  ra_obj-sign = 'I'.

  ra_obj-option = 'EQ'.

  ra_obj-low = &2.

  APPEND &1.

END-OF-DEFINITION.


TYPE-POOLS ctslg.

TYPE-POOLS slis.

TYPE-POOLS icon.


TABLES:

  vrsd_old, e070.


DATA: it_fieldcat TYPE slis_fieldcat_alv OCCURS 0,

      i_verslist  TYPE TABLE OF vrsd_old,

      i_versnum   TYPE TABLE OF vrsn,

      i_objlist   TYPE TABLE OF ko100,

      wa_objlist  TYPE ko100,

      wa_fieldcat TYPE slis_fieldcat_alv.



DATA: BEGIN OF i_join OCCURS 0,

        trkorr     LIKE e070-trkorr,

        strkorr    LIKE e070-strkorr,

        trfunction LIKE e070-trfunction,

        trstatus   LIKE e070-trstatus,

        as4user    LIKE e070-as4user,

        as4date    LIKE e070-as4date,

        pgmid      LIKE e071-pgmid,

        object     LIKE e071-object,

        obj_name   LIKE e071-obj_name,

        activity   LIKE e071-activity,

        remove     TYPE boole_d,

      END OF i_join,


      BEGIN OF i_trans OCCURS 0,

        trkorr LIKE e070-trkorr,

        userid LIKE sy-uname,

      END OF i_trans,


      BEGIN OF i_alv OCCURS 0,

        trkorr   LIKE e070-trkorr,

        text(60) TYPE c,

        userid   LIKE sy-uname,

        rel_dt   TYPE datum,

        rel_tm   TYPE uzeit,

        cmd_st   TYPE icon-id,

        cmd_dt   TYPE datum,

        cma_st   TYPE icon-id,

        cma_dt   TYPE datum,

        csg_st   TYPE icon-id,

        csg_dt   TYPE datum,

        ct8_st   TYPE icon-id,

        ct8_dt   TYPE datum,

        ctc_st   TYPE icon-id,

        ctc_dt   TYPE datum,

        cac_st   TYPE icon-id,

        cac_dt   TYPE datum,

        c0c_st   TYPE icon-id,

        c0c_dt   TYPE datum,

        ct5_st   TYPE icon-id,

        ct5_dt   TYPE datum,

        ca5_st   TYPE icon-id,

        ca5_dt   TYPE datum,

        c05_st   TYPE icon-id,

        c05_dt   TYPE datum,

      END OF i_alv,


      BEGIN OF i_objtype OCCURS 0,

        objtype LIKE tadir-object,

      END OF i_objtype.


FIELD-SYMBOLS:

             <fs_join>    LIKE LINE OF i_join.


DATA:

  wa_log      TYPE ctslg_cofile,

  wa_system   TYPE LINE OF ctslg_systems,

  wa_step     TYPE LINE OF ctslg_steps,

  wa_action   TYPE LINE OF ctslg_actions,

  wa_trans    LIKE LINE OF i_trans,

  wa_objtype  LIKE LINE OF i_objtype,

  wa_verslist TYPE vrsd_old,

  v_text(60)  TYPE c,

  v_reldt     TYPE datum,

  v_sysid     TYPE rfcdes-rfcdest.


DATA:

           i_systems      TYPE ctslg_systems.


RANGES:

 ra_obj FOR vrsd-objtype.


INITIALIZATION.

  MOVE sy-sysid TO v_sysid.


*  SELECTION-SCREEN BEGIN OF BLOCK protyp WITH FRAME TITLE text-t03.

*  PARAMETERS:

*  p_objk RADIOBUTTON GROUP r2 DEFAULT 'X' MODIF ID obj,

*  p_tnsp RADIOBUTTON GROUP r2.

*  SELECTION-SCREEN END OF BLOCK protyp.


* selection screen

  PARAMETERS:

  p_name RADIOBUTTON GROUP r2 DEFAULT 'X'.


  SELECTION-SCREEN BEGIN OF BLOCK objnam WITH FRAME TITLE TEXT-t02.

    PARAMETERS:

    p_objnam LIKE vrsd_old-objname.

  SELECTION-SCREEN END OF BLOCK objnam.


  SELECTION-SCREEN BEGIN OF BLOCK objects WITH FRAME TITLE TEXT-t01.

    PARAMETERS:

      p_rept RADIOBUTTON GROUP r1 DEFAULT 'X',

      p_func RADIOBUTTON GROUP r1,

      p_clas RADIOBUTTON GROUP r1,

      p_tabl RADIOBUTTON GROUP r1,

      p_view RADIOBUTTON GROUP r1,

      p_ttyp RADIOBUTTON GROUP r1,

      p_dtel RADIOBUTTON GROUP r1.

    SELECTION-SCREEN BEGIN OF LINE.

      PARAMETERS:

        p_cust  RADIOBUTTON GROUP r1,

        p_pgmid LIKE sctsobject-pgmid  MODIF ID out,

        p_objty LIKE sctsobject-object,

        p_text  LIKE sctsobject-text VISIBLE LENGTH 40 LOWER CASE

                                     MODIF ID 2d.

    SELECTION-SCREEN END OF LINE.

  SELECTION-SCREEN END OF BLOCK objects.


  PARAMETERS:

  p_tran RADIOBUTTON GROUP r2.

  SELECTION-SCREEN BEGIN OF BLOCK trans WITH FRAME TITLE TEXT-t01.

    SELECT-OPTIONS:

    s_trkorr FOR e070-trkorr.

  SELECTION-SCREEN END OF BLOCK trans.


  PERFORM create_object_list.


AT SELECTION-SCREEN OUTPUT.

  PERFORM at_selection_screen_output.


AT SELECTION-SCREEN ON p_objty.

  PERFORM at_selection_screen_on_field    USING 'OBJECTA'.


START-OF-SELECTION.


* prepare the range for the object type selected

  PERFORM prepare_range.


  PERFORM get_transports.


* Sort the internal table in decending order of of transport numbers

  SORT i_trans DESCENDING.

  DELETE ADJACENT DUPLICATES FROM i_trans COMPARING trkorr.


* preparing the final table for alv display

  LOOP AT i_trans INTO wa_trans.

*   transport number

    i_alv-trkorr = wa_trans-trkorr.

*   reading the transport description

    SELECT SINGLE as4text

      FROM e07t

      INTO v_text

     WHERE trkorr = wa_trans-trkorr

      AND langu = sy-langu.

    i_alv-text = v_text.

*   user id

    i_alv-userid = wa_trans-userid.


*   read the transport log for the particular transport

    CLEAR wa_log.

    CALL FUNCTION 'TR_READ_GLOBAL_INFO_OF_REQUEST'

      EXPORTING

        iv_trkorr = wa_trans-trkorr

*       IV_DIR_TYPE               = 'T'

*       IS_SETTINGS               =

*       IV_SUPPRESS_DELETED_STEPS = ' '

*       IT_COMM_SYSTEMS           =

      IMPORTING

        es_cofile = wa_log

*       EV_USER   =

*       EV_PROJECT                =

      .

    i_systems[] = wa_log-systems[].



    LOOP AT i_systems[] INTO wa_system.

      IF wa_system-systemid EQ 'SCD'.

        PERFORM to_light USING wa_system-rc CHANGING i_alv-cmd_st.


        IF wa_system-steps[] IS NOT INITIAL.

          CLEAR wa_step.

          READ TABLE wa_system-steps[] INTO wa_step WITH KEY clientid = sy-mandt.

          IF wa_step-actions[] IS NOT INITIAL.

            LOOP AT wa_step-actions[] INTO wa_action.

              i_alv-rel_dt = wa_action-date.

              i_alv-rel_tm = wa_action-time.

            ENDLOOP.

          ENDIF.

        ENDIF.



      ENDIF.

      IF wa_system-systemid EQ 'SCQ'.

        PERFORM to_light USING wa_system-rc CHANGING i_alv-cma_st.


        IF wa_system-steps[] IS NOT INITIAL.

          CLEAR wa_step.

          READ TABLE wa_system-steps[] INTO wa_step INDEX lines( wa_system-steps[] ).

          IF wa_step-actions[] IS NOT INITIAL.

            LOOP AT wa_step-actions[] INTO wa_action.

              i_alv-cma_dt = wa_action-date.

            ENDLOOP.

          ENDIF.

        ENDIF.


      ENDIF.

      IF wa_system-systemid EQ 'SRQ'.

        PERFORM to_light USING wa_system-rc CHANGING i_alv-csg_st.

        IF wa_system-steps[] IS NOT INITIAL.

          CLEAR wa_step.

          READ TABLE wa_system-steps[] INTO wa_step INDEX lines( wa_system-steps[] ).

          IF wa_step-actions[] IS NOT INITIAL.

            LOOP AT wa_step-actions[] INTO wa_action.

              i_alv-csg_dt = wa_action-date.

            ENDLOOP.

          ENDIF.

        ENDIF.

      ENDIF.

      IF wa_system-systemid EQ 'SCP'.

        PERFORM to_light USING wa_system-rc CHANGING i_alv-ct8_st.

        IF wa_system-steps[] IS NOT INITIAL.

          CLEAR wa_step.

          READ TABLE wa_system-steps[] INTO wa_step INDEX lines( wa_system-steps[] ).

          IF wa_step-actions[] IS NOT INITIAL.

            LOOP AT wa_step-actions[] INTO wa_action.

            i_alv-ct8_dt = wa_action-date.

            ENDLOOP.

          ENDIF.

        ENDIF.

      ENDIF.

      IF wa_system-systemid EQ 'CTC'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-ctc_st.

      ENDIF.

      IF wa_system-systemid EQ 'CAC'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-cac_st.

      ENDIF.

      IF wa_system-systemid EQ 'C0C'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-c0c_st.

      ENDIF.

      IF wa_system-systemid EQ 'CT5'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-ct5_st.

      ENDIF.

      IF wa_system-systemid EQ 'CA5'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-ca5_st.

      ENDIF.

      IF wa_system-systemid EQ 'C05'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-c05_st.

      ENDIF.

      IF wa_system-systemid EQ 'CTC'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-ctc_st.

      ENDIF.

      IF wa_system-systemid EQ 'CAC'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-cac_st.

      ENDIF.

      IF wa_system-systemid EQ 'C0C'. "unused

        PERFORM to_light USING wa_system-rc CHANGING i_alv-c0c_st.

      ENDIF.

    ENDLOOP.

    APPEND i_alv.

    CLEAR i_alv.

  ENDLOOP.


* prepare field catalog

  PERFORM build_fieldcat.


END-OF-SELECTION.


* display alv

  PERFORM display_alv.


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

*&      Form  TO_LIGHT

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

FORM to_light  USING    pwa_system_rc

               CHANGING pi_alv_cmd_st.

  CASE pwa_system_rc.

    WHEN 0.

      pi_alv_cmd_st = '@08@'. "GREEN LIGHT

    WHEN 4.

      pi_alv_cmd_st = '@09@'. "YELLOW LIGHT

    WHEN OTHERS.

      pi_alv_cmd_st = '@0A@'. "RED LIGHT

  ENDCASE.

ENDFORM.                    " TO_LIGHT

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

*&      Form  BUILD_FIELDCAT

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

FORM build_fieldcat .

  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'TRKORR'.

  wa_fieldcat-seltext_m   = 'Transport'.

  wa_fieldcat-outputlen   = '16'.

*  wa_fieldcat-col_pos     = 1.

  wa_fieldcat-hotspot     = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'TEXT'.

  wa_fieldcat-seltext_m   = 'Transport Text'.

  wa_fieldcat-outputlen   = '60'.

*  wa_fieldcat-col_pos     = 2.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'USERID'.

  wa_fieldcat-seltext_m   = 'Author'.

  wa_fieldcat-outputlen   = '16'.

*  wa_fieldcat-col_pos     = 3.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CMD_ST'.

  wa_fieldcat-seltext_m   = 'SCD'.

  wa_fieldcat-outputlen   = '4'.

*  wa_fieldcat-col_pos     = 5.

  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'REL_DT'.

  wa_fieldcat-seltext_m   = 'Release Date'.

  wa_fieldcat-outputlen   = '16'.

*  wa_fieldcat-col_pos     = 5.

  APPEND wa_fieldcat TO it_fieldcat.


*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'REL_TM'.

*  wa_fieldcat-seltext_m   = 'Release Time'.

*  wa_fieldcat-outputlen   = '16'.

**  wa_fieldcat-col_pos     = 5.

*  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CMA_ST'.

  wa_fieldcat-seltext_m   = 'SCQ'.

  wa_fieldcat-outputlen   = '4'.

*  wa_fieldcat-col_pos     = 6.

  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CMA_DT'.

  wa_fieldcat-seltext_m   = 'SCQ Date'.

  wa_fieldcat-outputlen   = '16'.

*  wa_fieldcat-col_pos     = 6.

*  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CSG_ST'.

  wa_fieldcat-seltext_m   = 'SRQ'.

  wa_fieldcat-outputlen   = '4'.

*  wa_fieldcat-col_pos     = 7.

  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CSG_DT'.

  wa_fieldcat-seltext_m   = 'SRQ Date'.

  wa_fieldcat-outputlen   = '16'.

*  wa_fieldcat-col_pos     = 6.

*  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CT8_ST'.

  wa_fieldcat-seltext_m   = 'SCP'.

  wa_fieldcat-outputlen   = '4'.

*  wa_fieldcat-col_pos     = 7.

  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.


  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname   = 'CT8_DT'.

  wa_fieldcat-seltext_m   = 'SCP Date'.

  wa_fieldcat-outputlen   = '16'.

*  wa_fieldcat-col_pos     = 6.

*  wa_fieldcat-icon        = 'X'.

  APPEND wa_fieldcat TO it_fieldcat.

*

*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'CTC_ST'.

*  wa_fieldcat-seltext_m   = 'CTC'.

*  wa_fieldcat-outputlen   = '4'.

**  wa_fieldcat-col_pos     = 8.

*  wa_fieldcat-icon        = 'X'.

*  APPEND wa_fieldcat TO it_fieldcat.

*

*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'CAC_ST'.

*  wa_fieldcat-seltext_m   = 'CAC'.

*  wa_fieldcat-outputlen   = '4'.

**  wa_fieldcat-col_pos     = 9.

*  wa_fieldcat-icon        = 'X'.

*  APPEND wa_fieldcat TO it_fieldcat.

*

*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'C0C_ST'.

*  wa_fieldcat-seltext_m   = 'C0C'.

*  wa_fieldcat-outputlen   = '4'.

**  wa_fieldcat-col_pos     = 10.

*  wa_fieldcat-icon        = 'X'.

*  APPEND wa_fieldcat TO it_fieldcat.

*

*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'CT5_ST'.

*  wa_fieldcat-seltext_m   = 'CT5'.

*  wa_fieldcat-outputlen   = '4'.

**  wa_fieldcat-col_pos     = 11.

*  wa_fieldcat-icon        = 'X'.

*  APPEND wa_fieldcat TO it_fieldcat.

*

*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'CA5_ST'.

*  wa_fieldcat-seltext_m   = 'CA5'.

*  wa_fieldcat-outputlen   = '4'.

**  wa_fieldcat-col_pos     = 12.

*  wa_fieldcat-icon        = 'X'.

*  APPEND wa_fieldcat TO it_fieldcat.

*

*  CLEAR wa_fieldcat.

*  wa_fieldcat-fieldname   = 'C05_ST'.

*  wa_fieldcat-seltext_m   = 'C05'.

*  wa_fieldcat-outputlen   = '4'.

**  wa_fieldcat-col_pos     = 13.

*  wa_fieldcat-icon        = 'X'.

*  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.


ENDFORM.                    " BUILD_FIELDCAT

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

*&      Form  DISPLAY_ALV

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

FORM display_alv .


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

*     I_INTERFACE_CHECK       = ' '

*     I_BYPASSING_BUFFER      = ' '

*     I_BUFFER_ACTIVE         = ' '

      i_callback_program      = sy-repid

*     I_CALLBACK_PF_STATUS_SET          = ' '

      i_callback_user_command = 'USER_COMMAND'

*     I_CALLBACK_TOP_OF_PAGE  = ' '

*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '

*     I_CALLBACK_HTML_END_OF_LIST       = ' '

*     I_STRUCTURE_NAME        =

*     I_BACKGROUND_ID         = ' '

*     I_GRID_TITLE            =

*     I_GRID_SETTINGS         =

*     IS_LAYOUT               =

      it_fieldcat             = it_fieldcat

*     IT_EXCLUDING            =

*     IT_SPECIAL_GROUPS       =

*     IT_SORT                 =

*     IT_FILTER               =

*     IS_SEL_HIDE             =

*     I_DEFAULT               = 'X'

*     I_SAVE                  = ' '

*     IS_VARIANT              =

*     IT_EVENTS               =

*     IT_EVENT_EXIT           =

*     IS_PRINT                =

*     IS_REPREP_ID            =

*     I_SCREEN_START_COLUMN   = 0

*     I_SCREEN_START_LINE     = 0

*     I_SCREEN_END_COLUMN     = 0

*     I_SCREEN_END_LINE       = 0

*     I_HTML_HEIGHT_TOP       = 0

*     I_HTML_HEIGHT_END       = 0

*     IT_ALV_GRAPHICS         =

*     IT_HYPERLINK            =

*     IT_ADD_FIELDCAT         =

*     IT_EXCEPT_QINFO         =

*     IR_SALV_FULLSCREEN_ADAPTER        =

* IMPORTING

*     E_EXIT_CAUSED_BY_CALLER =

*     ES_EXIT_CAUSED_BY_USER  =

    TABLES

      t_outtab                = i_alv

* EXCEPTIONS

*     PROGRAM_ERROR           = 1

*     OTHERS                  = 2

    .

  IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.


ENDFORM.                    " DISPLAY_ALV


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

*&      Form  user_command

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

FORM user_command

                 USING r_ucomm     TYPE sy-ucomm

                       rs_selfield TYPE slis_selfield.


  CASE r_ucomm.

    WHEN '&IC1'.


      READ TABLE i_alv INDEX rs_selfield-tabindex.

      CALL FUNCTION 'TR_DISPLAY_REQUEST'

        EXPORTING

          i_trkorr = i_alv-trkorr

*         I_OPERATION   =

*         I_ACTIVETAB   =

*         IS_REQUEST_WD =

        .



  ENDCASE.

ENDFORM.                    "user_command

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

*&      Form  CREATE_OBJECT_LIST

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

FORM create_object_list .


  CALL FUNCTION 'TR_OBJECT_TABLE'

* IMPORTING

*   WE_TABLE_LINES       =

    TABLES

      wt_object_text = i_objlist.


  DELETE i_objlist     WHERE pgmid <> 'R3TR'

                         AND pgmid <> 'R3OB'

                         AND pgmid <> 'LIMU'

                         AND pgmid <> 'CORR'.


  SORT i_objlist BY pgmid object.


ENDFORM.                    " CREATE_OBJECT_LIST

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

*&      Form  AT_SELECTION_SCREEN_ON_FIELD

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

*       text

*----------------------------------------------------------------------*

*      -->P_0436   text

*----------------------------------------------------------------------*

FORM at_selection_screen_on_field  USING    pv_field TYPE c.


  DATA: ls_object_text       LIKE ko100.


  CASE p_objty.

    WHEN space.

    WHEN OTHERS.

      READ TABLE i_objlist INTO ls_object_text

                               WITH KEY object = p_objty.

      IF sy-subrc <> 0.

        MESSAGE e870(tk).

*           Bitte w hlen Sie einen g ltigen Objekttyp aus

      ELSE.

        p_pgmid   = ls_object_text-pgmid.

        p_text    = ls_object_text-text.

      ENDIF.

  ENDCASE.



ENDFORM.                    " AT_SELECTION_SCREEN_ON_FIELD

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

*&      Form  AT_SELECTION_SCREEN_OUTPUT

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

FORM at_selection_screen_output .


  LOOP AT SCREEN.

    CASE screen-group1.

      WHEN 'OUT'.

        screen-input      = '0'.

        MODIFY SCREEN.

      WHEN '2D'.

        screen-input      = '0'.

        screen-display_3d = '0'.

        MODIFY SCREEN.

    ENDCASE.

  ENDLOOP.


ENDFORM.                    " AT_SELECTION_SCREEN_OUTPUT

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

*&      Form  PREPARE_RANGE

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

FORM prepare_range .


  IF p_rept IS NOT INITIAL.

    fill_range ra_obj 'REPO'. "Report Program Source Code and Texts

    fill_range ra_obj 'REPT'. "Report Texts

    fill_range ra_obj 'REPS'. "Report Source Code

    fill_range ra_obj 'PROG'. "Program

  ENDIF.

  IF p_func IS NOT INITIAL.

    fill_range ra_obj 'FUNC'. "Function Module

  ENDIF.

  IF p_clas IS NOT INITIAL.

    fill_range ra_obj 'CLAS'. "Class

  ENDIF.

  IF p_tabl IS NOT INITIAL.

    fill_range ra_obj 'TABL'. "Table/Structure

    fill_range ra_obj 'TABD'. "Table/Structure Definition

    fill_range ra_obj 'TABT'. "Table/Structure Technical Attribs

  ENDIF.

  IF p_view IS NOT INITIAL.

    fill_range ra_obj 'VIEW'. "View

    fill_range ra_obj 'VIED'. "View Definition

  ENDIF.

  IF p_ttyp IS NOT INITIAL.

    fill_range ra_obj 'TTYP'. "Table Type

  ENDIF.

  IF p_dtel IS NOT INITIAL.

    fill_range ra_obj 'DTEL'. "Data Element

  ENDIF.

  IF p_cust IS NOT INITIAL.

    IF p_objnam IS NOT INITIAL.

      fill_range ra_obj p_objty. "custom object name

    ENDIF.

  ENDIF.


ENDFORM.                    " PREPARE_RANGE

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

*&      Form  GET_TRANSPORTS

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM get_transports .


  IF p_name IS NOT INITIAL.

* delete from object list the types no longer required.

    DELETE i_objlist WHERE object NOT IN ra_obj.

    SORT i_objlist BY object.

    DELETE ADJACENT DUPLICATES FROM i_objlist COMPARING object.


* loop into object list and read version history

    LOOP AT i_objlist INTO wa_objlist.


*      CALL FUNCTION 'SVRS_GET_VERSION_DIRECTORY_46'

*        EXPORTING

*          destination            = v_sysid

*          objname                = p_objnam

*          objtype                = wa_objlist-object

*        TABLES

*          lversno_list           = i_versnum

*          version_list           = i_verslist

*        EXCEPTIONS

*          no_entry               = 1

*          communication_failure_ = 2

*          system_failure         = 3

*          OTHERS                 = 4.


      CALL FUNCTION 'GET_VERSION_LIST'

        EXPORTING

          objname      = p_objnam

          objtype      = wa_objlist-object

        TABLES

          version_list = i_verslist.



      IF sy-subrc EQ 0.


*   prepare the transport table with transport number and the userid

        LOOP AT i_verslist INTO wa_verslist.

          IF wa_verslist-korrnum IS NOT INITIAL.

            wa_trans-trkorr = wa_verslist-korrnum.

            wa_trans-userid = wa_verslist-author.

            APPEND wa_trans TO i_trans.

          ENDIF.

        ENDLOOP. "LOOP AT i_verslist INTO wa_verslist.

      ELSE.


        SELECT e070~trkorr

               e070~as4user

               APPENDING TABLE i_trans

               FROM e070 JOIN e071

               ON e070~trkorr = e071~trkorr

               WHERE e071~pgmid      =  wa_objlist-pgmid

                 AND e071~object     =  wa_objlist-object

                 AND e071~obj_name   =  p_objnam.

*             AND e070~trstatus   IN lt_status ----------------------------- (1)

*             AND e070~trfunction IN lt_function.


      ENDIF.




    ENDLOOP. "LOOP AT i_objlist INTO wa_objlist.


  ELSE.


    SELECT e070~trkorr

           e070~as4user

      FROM e070

 APPENDING TABLE i_trans

     WHERE trkorr IN s_trkorr.


  ENDIF.


ENDFORM.                    " GET_TRANSPORTS

 


No comments:

Post a Comment

Search SAPMV45A includes for Constants and Statics

 This report can find CONSTANTS and STATICS in SAPMV45A Z-includes. We know that Constants and Statics consume global variables so identifyi...