Created by Jerry Wang, last modified on Jun 19, 2014
輸出所有可供傳輸?shù)腶pplication object 列表:
REPORT zsi_get_app_transportable.
DATA: lv_application TYPE cmst_application VALUE 'SI'.
DATA : ls_app_prf TYPE cmst_lo_app_prf,lt_e071 TYPE tr_objects,ls_e071 TYPE e071,ls_request TYPE trwbo_request_header,lv_pos TYPE ddposition VALUE 0,lv_program TYPE progname,lv_function_poolTYPE rs38l_area,lt_selscr TYPE cmst_lo_scr_map_tab,ls_selscr TYPE cmst_lo_scr_map.
CONSTANTS : lc_cust_namespace TYPE namespace VALUE '/0CUST/',lc_sap_namespace TYPE namespace VALUE '/0SAP/'.
CONSTANTS:gc_pgmid_r3tr TYPE pgmid VALUE 'R3TR',gc_object_prog TYPE cmst_param_value VALUE 'PROG',gc_object_fugr TYPE trobjtype VALUE 'FUGR',gc_object_ttyp TYPE trobjtype VALUE 'TTYP',gc_object_enqu TYPE trobjtype VALUE 'ENQU',gc_object_tabl TYPE trobjtype VALUE 'TABL',gc_object_doma TYPE trobjtype VALUE 'DOMA',gc_object_dtel TYPE trobjtype VALUE 'DTEL',gc_object_devc TYPE trobjtype VALUE 'DEVC',gc_type TYPE e071-object VALUE 'Type',gc_name TYPE e071-obj_name VALUE 'Name'.
DATA : lv_repname TYPE progname,lv_namespace TYPE namespace,lv_flag TYPE trparflag,lv_change_devc TYPE boolean VALUE space.
CLEAR ls_app_prf.
CALL FUNCTION 'CMS_LO_APPL_ATTRIBUTES_GET'EXPORTINGiv_application = lv_applicationIMPORTINGes_appl_attributes = ls_app_prf.
IF ls_app_prf IS NOT INITIAL.CALL FUNCTION 'CMS_LO_COLLECT_APP_PRF_OBJECTS'EXPORTINGis_app_prf = ls_app_prfCHANGINGct_e071 = lt_e071cv_no_of_objects = lv_pos.
* Profile qualifier objectsCALL FUNCTION 'CMS_LO_COLLECT_APP_QUAL_OBJ'EXPORTINGiv_application = lv_applicationCHANGINGct_e071 = lt_e071cv_no_of_objects = lv_pos.
* Status objectsCALL FUNCTION 'CMS_LO_COLLECT_APP_STATUS_OBJ'EXPORTINGiv_application = lv_applicationCHANGINGct_e071 = lt_e071cv_no_of_objects = lv_pos.
ENDIF.
* Application objects
* TABL types
ls_e071-pgmid = gc_pgmid_r3tr.
ls_e071-object = gc_object_tabl.
* Header intf str
IF ls_app_prf-intf_str_h IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-intf_str_h.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Item intf str
IF ls_app_prf-intf_str_i IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-intf_str_i.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Exec str
IF ls_app_prf-exec_str IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-exec_str.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Index str
IF ls_app_prf-indx_str IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-indx_str.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* BSP Index str
IF ls_app_prf-bsp_indx_str IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bsp_indx_str.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Index table
IF ls_app_prf-indx_table IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-indx_table.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* BSP Header str
IF ls_app_prf-bsp_str_h IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bsp_str_h.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* BSP Item str
IF ls_app_prf-bsp_str_i IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bsp_str_i.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Enq str
IF ls_app_prf-enq_str IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-enq_str.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* BW str
IF ls_app_prf-bw_str IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bw_str.INSERT ls_e071 INTO TABLE lt_e071.
* BW_C strlv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.CONCATENATE ls_app_prf-bw_str'_C'INTO ls_e071-obj_name.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* TTYP types
CLEAR ls_e071.
ls_e071-pgmid = gc_pgmid_r3tr.
ls_e071-object = gc_object_ttyp.
IF ls_app_prf-intf_tty_h IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-intf_tty_h.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-intf_tty_i IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-intf_tty_i.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-indx_tty IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-indx_tty.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* BSP Index str
IF ls_app_prf-bsp_indx_tty IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bsp_indx_tty.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-exec_tty IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-exec_tty.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-bsp_tty_h IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bsp_tty_h.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-bsp_tty_i IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bsp_tty_i.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-bw_tty IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-bw_tty.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
IF ls_app_prf-enq_str IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.CONCATENATE ls_app_prf-enq_str'_TAB' INTO ls_e071-obj_name.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* ENQU types
CLEAR ls_e071.
ls_e071-pgmid = gc_pgmid_r3tr.
ls_e071-object = gc_object_enqu.
IF ls_app_prf-enq_obj IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = ls_app_prf-enq_obj.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Generated routines
CLEAR ls_e071.
ls_e071-pgmid = gc_pgmid_r3tr.
ls_e071-object = gc_object_prog.
CALL FUNCTION 'CMS_LO_MAPPING_PROGRAM_GET'EXPORTINGiv_application = lv_applicationIMPORTINGev_program = lv_program.
IF lv_program IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = lv_program.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Function groups
CLEAR ls_e071.
ls_e071-pgmid = gc_pgmid_r3tr.
ls_e071-object = gc_object_fugr.
CALL FUNCTION 'CMS_LO_APPL_FUNCPOOL_NAME_GET'EXPORTINGiv_application = lv_applicationiv_appl_package = ls_app_prf-appl_packageIMPORTINGev_functionpool = lv_function_poolEXCEPTIONSnamespace_mismatch = 1OTHERS = 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.
IF lv_function_pool IS NOT INITIAL.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-obj_name = lv_function_pool.INSERT ls_e071 INTO TABLE lt_e071.
ENDIF.
* Selection Screens
CALL FUNCTION 'CMS_LO_APPL_SELSCR_GET_CB'EXPORTINGiv_application = lv_applicationIMPORTINGet_selscr = lt_selscr.
LOOP AT lt_selscr INTO ls_selscr.CALL FUNCTION 'CMS_LO_SELECTION_REP_NAME_GET'EXPORTINGiv_application = lv_applicationiv_screen_id = ls_selscr-screen_idIMPORTINGev_repname = lv_repnameev_namespace = lv_namespace.lv_pos = lv_pos + 1.ls_e071-as4pos = lv_pos.ls_e071-pgmid = gc_pgmid_r3tr.ls_e071-object = gc_object_prog.ls_e071-obj_name = lv_repname.INSERT ls_e071 INTO TABLE lt_e071.CLEAR : lv_flag, lv_change_devc.CALL FUNCTION 'TR_CHECK_OBJECT_LOCAL'EXPORTINGiv_e071_pgmid = ls_e071-pgmidiv_e071_object = ls_e071-objectiv_e071_obj_name = ls_e071-obj_nameIMPORTINGev_object_local = lv_flagEXCEPTIONStadir_entry_not_found = 1OTHERS = 2.IF sy-subrc <> 0.lv_change_devc = 'X'.ELSE.IF sy-subrc EQ 0 ANDlv_flag NE space.lv_change_devc = 'X'.ENDIF.ENDIF.
ENDLOOP.
WRITE: / gc_type, gc_name COLOR COL_NEGATIVE.
LOOP AT lt_e071 ASSIGNING FIELD-SYMBOL(<item>).WRITE: / <item>-object UNDER gc_type COLOR COL_TOTAL, <item>-obj_name UNDER gc_name COLOR COL_GROUP.
ENDLOOP.