*&---------------------------------------------------------------------*
*& 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