Professional Documents
Culture Documents
initialization.
p_target = 'DEQ.100'.
* if sy-sysid+0(1) = 'D'.
* concatenate 'P' sy-sysid+1(2) '.6' sy-mandt+1(2) into p_target.
** concatenate 'P' sy-sysid+1(2) into p_target.
* else.
* concatenate 'D' sy-sysid+1(2) '.1' sy-mandt+1(2) into p_target.
** concatenate 'D' sy-sysid+1(2) into p_target.
* endif.
at selection-screen output.
loop at screen.
if screen-name eq 'P_TARGET'.
screen-input = 0.
modify screen.
exit.
endif.
endloop.
at selection-screen.
perform selection_screen.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events definition.
public section.
methods:
on_user_command for event added_function of cl_salv_events_table
importing e_salv_function,
on_double_click for event double_click of cl_salv_events_table
importing row column,
on_link_click for event link_click of cl_salv_events_table
importing row column.
endclass. "lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
method on_user_command.
perform user_command using e_salv_function.
endmethod. "on_user_command
method on_double_click.
perform on_double_click using row column.
endmethod.
method on_link_click.
perform on_double_click using row column.
endmethod.
start-of-selection.
create object g_log.
perform get_data.
end-of-selection.
perform display_alv.
*&---------------------------------------------------------------------*
*& Form SEARCH_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form search_help
using p_param type abap_bool.
if p_param eq abap_false.
call function 'TR_F4_REQUESTS'
exporting
iv_username = sy-uname
iv_trfunctions = 'KWRSXQ' "'K W'
iv_client = sy-mandt
iv_via_selection_screen = 'X'
iv_complete_requests = 'X'
importing
ev_selected_request = lv_request
es_selected_request = ls_request.
p_reqst = lv_request.
p_toc = lv_request.
endif.
endform.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form get_data .
if sy-subrc eq 0.
call method g_log->add_text
exporting
iv_type = 'S'
iv_text = 'Requeste ait objeler okundu'.
elseif sy-subrc <> 0 and sy-msgid is not initial.
g_log->add_message_simple( ).
endif.
endform.
*&---------------------------------------------------------------------*
*& Form GET_LAST_CHANGED
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GS_OUT text
*----------------------------------------------------------------------*
form get_last_changed changing gs_out type ty_out.
case lv_object.
if gs_out-udat is initial.
select single datum autor into (gs_out-udat, gs_out-unam)
from eudb
where relid eq 'CU'
and name eq gs_out-obj_name(40)
and sprsl eq 'D'
and srtf2 eq 0.
endif.
if sy-subrc eq 0.
sort lt_changes by udat descending.
delete lt_changes where udat ne lt_changes[ 1 ]-udat.
if lines( lt_changes ) > 1.
delete lt_changes where unam eq 'SAP*'.
endif.
lv_include = '==============================XT'.
overlay lv_include with |{ gs_out-obj_name }| only '='.
cl_oo_classname_service=>get_all_class_includes(
exporting
class_name = conv #( gs_out-obj_name )
receiving
result = lt_includes
exceptions
no_such_class = 1
others = 2 ).
if sy-subrc = 0.
select udat unam
into table lt_changes
from trdir
for all entries in lt_includes
where name eq lt_includes-table_line.
if sy-subrc eq 0.
sort lt_changes by udat descending.
gs_out-udat = lt_changes[ 1 ]-udat.
gs_out-unam = lt_changes[ 1 ]-unam.
endif.
endif.
clear lv_include.
lo_clsref ?= cl_oo_include_naming=>get_instance_by_trkey(
pgmid = gs_out-pgmid
object = gs_out-object
obj_name = gs_out-obj_name ).
if lo_clsref is bound.
clear lv_include.
endcase.
if gs_out-udat is initial.
gs_out-udat = '11111111'.
endif.
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form display_alv .
*... §7 selections
data: lr_selections type ref to cl_salv_selections,
lr_sort type ref to cl_salv_sorts.
lr_selections = gr_salv->get_selections( ).
lv_repid = sy-repid.
gr_salv->set_screen_status(
pfstatus = 'STANDARD'
report = lv_repid
set_functions = gr_salv->c_functions_all ).
* sort
lr_sort = gr_salv->get_sorts( ).
if p_sortcd eq abap_true.
lr_sort->add_sort( columnname = 'UDAT' sequence = if_salv_c_sort=>sort_down
).
endif.
lr_sort->add_sort( 'AS4USER' ).
lr_sort->add_sort( 'TRSTATUS' ).
lr_sort->add_sort( 'PGMID' ).
lr_sort->add_sort( 'OBJECT' ).
lr_sort->add_sort( 'OBJ_NAME' ).
*--------------------------------------------------------------------*
*change description of text column
* Get the column object
data: lr_columns type ref to cl_salv_columns_table,
lr_column type ref to cl_salv_column_table.
lr_columns = gr_salv->get_columns( ).
lr_columns->set_optimize( 'X' ).
*--------------------------------------------------------------------*
** Get functions details
gr_functions = gr_salv->get_functions( ).
** Activate All Buttons in Tool Bar
gr_functions->set_all( if_salv_c_bool_sap=>true ).
gr_layout = gr_salv->get_layout( ).
"Get Layout of Table"
gr_layout->set_key( gr_layout_key ).
"Set Report Id to Layout"
gr_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
gr_layout->set_default( if_salv_c_bool_sap=>true ).
gr_display = gr_salv->get_display_settings( ).
gr_display->set_striped_pattern( if_salv_c_bool_sap=>true ).
gr_salv->display( ).
endform.
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_E_SALV_FUNCTION text
*----------------------------------------------------------------------*
form user_command using i_function type salv_de_function.
data: lv_header type c length 80,
lv_target like p_target,
ls_e070 type e070.
case i_function.
when 'OBJE_EKLE'.
perform obje_ekle.
concatenate gv_toc 'TOC Requestine eklenecek objeler' into lv_header
separated by space.
gr_display->set_list_header( | { lv_header } | ).
gr_salv->refresh( refresh_mode = if_salv_c_refresh=>full ).
when 'RELEASE'.
perform release_et.
gr_salv->refresh( refresh_mode = if_salv_c_refresh=>full ).
perform log_show.
when 'IMPORT'.
while ls_e070-trstatus na 'RN' and sy-index < 20.
select single * from e070 into ls_e070 where trkorr = gv_toc.
wait up to '0.5' seconds.
endwhile.
if ls_e070-trstatus na 'RN'.
g_log->add_text( iv_type = 'E'
iv_text = 'TOC request henüz release edilmedi, tekrar
deneyiniz.' ).
else.
* if r_qal = abap_true.
** perform fill_req_target
** using r_dp r_mig r_ppr r_qas r_qal
** changing lv_target.
** Mig
* perform fill_req_target
* using abap_false abap_true abap_false abap_false
abap_false
* changing lv_target.
* perform import_et using lv_target.
**- Pre-Prod
* perform fill_req_target
* using abap_false abap_false abap_true abap_false
abap_false
* changing lv_target.
* perform import_et using lv_target.
**- QAS
* perform fill_req_target
* using abap_false abap_false abap_false abap_true
abap_false
* changing lv_target.
* perform import_et using lv_target.
*
* else.
perform import_et using p_target.
* endif.
endif.
when 'SREPO'.
perform compare_repository.
when 'SCU0'.
perform compare_customizing.
endcase.
endform.
*&---------------------------------------------------------------------*
*& Form ON_DOUBLE_CLICK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form on_double_click using row type salv_de_row
column type salv_de_column.
case column.
when 'VERS'.
submit rsvcdi01
with objtype = gs_out-object
with objname = gs_out-obj_name
and return.
when others.
call function 'TR_OBJECT_JUMP_TO_TOOL'
exporting
iv_pgmid = gs_out-pgmid
iv_object = gs_out-object
iv_obj_name = gs_out-obj_name
iv_action = 'SHOW'.
endcase.
endform.
*&---------------------------------------------------------------------*
*& Form OBJE_EKLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form obje_ekle .
lt_e071 = value #( (
trkorr = gv_request
pgmid = 'CORR'
object = 'MERG'
obj_name = gv_text
) ).
if gv_toc is initial.
if lines( lt_rows ) eq 0.
g_log->add_text(
iv_type = 'W'
iv_text = 'Obje eklemek için lütfen seçim yapınız!' ).
else.
if sy-subrc <> 0.
if sy-msgid is not initial.
g_log->add_message_simple( ).
else.
g_log->add_text( iv_type = 'E' iv_text = 'Requeste eklenirken hata oluştu!'
).
endif.
else.
concatenate 'Seçilen objeler' gv_toc 'numaralı TOC requestine eklendi.' into
lv_text_toc separated by space.
refresh lt_e071.
refresh lt_e071k.
endif.
perform log_show.
endform.
*&---------------------------------------------------------------------*
*& Form RELEASE_ET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form release_et .
endif.
endform.
*&---------------------------------------------------------------------*
*& Form IMPORT_ET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form import_et using p_req_target.
if r_qas = abap_false.
data lv_target like lv_sysname.
call function 'TMS_UI_FORWARD_TR_REQUEST'
exporting
iv_request = gv_toc
iv_target = lv_sysname
importing
ev_target = lv_target
exceptions
cancelled_by_user = 1
forward_request_failed = 2
others = 3.
if sy-subrc = 1.
return.
elseif sy-subrc <> 0.
g_log->add_message_simple( ).
* return.
elseif lv_target <> lv_sysname.
g_log->add_text( iv_type = 'E'
iv_text = 'Hedef sistemi değiştirmeyin.'
).
return.
endif.
endif.
if sy-subrc <> 0.
if sy-msgty = 'X'.
sy-msgty = 'E'.
endif.
g_log->add_message_simple( ).
return.
endif.
g_log->add_message_simple( ).
return.
endif.
if lv_retcode eq 0.
call method g_log->add_text
exporting
iv_type = 'S'
iv_text = |{ lv_message }|. "conv #( lv_message )
else.
call method g_log->add_text
exporting
iv_type = 'E'
iv_text = |Kod: { lv_retcode } Msg: { lv_message }|. "conv #( lv_message )
endif.
endform.
*&---------------------------------------------------------------------*
*& Form CREATE_REQUEST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form create_request .
data: lt_users type scts_users.
data: ls_request_header type trwbo_request_header.
data: lt_task_headers type table of trwbo_request_header.
data lt_attributes type scts_attrs.
data: lv_type type c length 1.
data: lv_target type tr_target.
lv_type = 'T'.
lv_target = p_target+0(3).
append sy-uname to lt_users.
if sy-subrc eq 0.
call method g_log->add_text
exporting
iv_type = 'S'
iv_text = 'TOC requesti oluşturuldu'.
elseif sy-subrc <> 0.
if sy-msgid is not initial.
g_log->add_message_simple( ).
else.
g_log->add_text( iv_type = 'E' iv_text = 'Request yaratılırken bilinmeyen bir
hata oluştu' ).
endif.
perform log_show.
endif.
gv_toc = ls_request_header-trkorr.
endform.
*&---------------------------------------------------------------------*
*& Form LOG_SHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form log_show .
endform.
*&---------------------------------------------------------------------*
*& Form SELECTION_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form selection_screen .
data: lt_requests type table of trwbo_request.
data: ls_requests like line of lt_requests.
if r_none eq abap_true.
message 'Lütfen hedef sistem seçiniz.' type 'E'.
endif.
perform fill_req_target
* using r_dp r_mig r_ppr r_qas r_qal
changing p_target.
**
endform.
*&---------------------------------------------------------------------*
*& Form FILL_REQ_TARGET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_TARGET text
*----------------------------------------------------------------------*
form fill_req_target "using p_r_dp p_r_mig p_r_ppr p_r_qas p_r_qal
changing p_req_target.
* case abap_true.
* when p_r_dp.
* if sy-sysid+0(1) = 'D'.
* concatenate 'P' sy-sysid+1(2) '.6' sy-mandt+1(2) into p_req_target.
* else.
* concatenate 'D' sy-sysid+1(2) '.1' sy-mandt+1(2) into p_req_target.
* endif.
* when p_r_mig.
* if sy-sysid+0(1) = 'D'.
* concatenate 'D' sy-sysid+1(1) 'M.300' into p_req_target.
* else.
* concatenate 'P' sy-sysid+1(1) 'M.800' into p_req_target.
* endif.
* when p_r_ppr.
* if sy-sysid+0(1) = 'D'.
* concatenate 'D' sy-sysid+1(1) 'R.300' into p_req_target.
* else.
* concatenate 'P' sy-sysid+1(1) 'R.800' into p_req_target.
* endif.
* when p_r_qas or p_r_qal.
if p_reqst is not initial.
loop at lt_requests into ls_requests.
if ls_requests-h-trkorr eq p_reqst.
if ls_requests-h-tarsystem is initial.
select single tarsystem from e070 into ls_requests-h-tarsystem where
trkorr = ls_requests-h-strkorr.
endif.
* if ls_requests-h-tarsystem+0(1) = 'D'.
concatenate ls_requests-h-tarsystem '.100' into p_req_target.
* else.
* concatenate ls_requests-h-tarsystem '.800' into p_req_target.
* endif.
exit.
endif.
endloop.
else.
p_target = ' '.
endif.
* when others.
* endcase.
endform.
*&---------------------------------------------------------------------*
*& Form COMPARE_REPOSITORY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form compare_repository.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
*&---------------------------------------------------------------------*
*& Form COMPARE_CUSTOMIZING
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form compare_customizing.
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. " COMPARE_CUSTOMIZING