Ansicht
Dokumentation

SM_CM_RETRO_BADI_CHG - BAdI during the Retrofit

SM_CM_RETRO_BADI_CHG - BAdI during the Retrofit

TXBHW - Original Tax Base Amount in Local Currency   BAL Application Log Documentation  
This documentation is copyright by SAP AG.
SAP E-Book

The BADI /TMWFLOW/ RETRO_DURING_RETROFIT allows customers to install specified functions in retrofit.

FORM cons_check_and_hotspot

*--------------------------------------------------------------------*
"finally perform the additional checks via a BADI
IF gv_is_valid = abap_true.
IF lref_badi_during_rfit IS BOUND.
TRY.
CALL BADI lref_badi_during_rfit->additional_cons_check
EXPORTING
rfitc_entry = ls_rfitc_entry
IMPORTING
et_messages = lt_messages_tmp.
CATCH cx_badi_not_implemented.
ENDTRY.
APPEND LINES OF lt_messages_tmp TO ft_error_cases.
ENDIF.
ENDIF.

IF lref_badi_during_rfit IS BOUND.
TRY.
CALL BADI lref_badi_during_rfit->alternative_cons_check
EXPORTING
rfitc_entry = ls_rfitc_entry
IMPORTING
et_messages = lt_messages_tmp
ev_use_alt_checks = lv_use_alt_checks.
CATCH cx_badi_not_implemented.
ENDTRY.
ENDIF.
ENDIF.

/TMWFLOW/DO_RETROFIT_NEW

check_before_retrofit

"CALL the BADI with checks before the retrofit starts
"if return code is not initial do nothing

TRY.
GET BADI lref_badi_during_rfit.
CATCH cx_badi_not_implemented. "#EC NO_HANDLER
ENDTRY.
IF lref_badi_during_rfit IS BOUND.
"badi is implemented --> call method after retrofit checks

DATA: lv_rc TYPE sysubrc,
lv_msg_txt1 TYPE string,
lv_msg_txt2 TYPE string,
lv_msg_txt3 TYPE string,
lv_msg_txt4 TYPE string.
"call method here
TRY.
CALL BADI lref_badi_during_rfit->check_before_retrofit
EXPORTING
iv_rfit_action = gv_ucomm
is_rfitc = ls_rfitc
IMPORTING
ev_rc = lv_rc
ev_msg_text_1 = lv_msg_txt1
ev_msg_text_2 = lv_msg_txt2
ev_msg_text_3 = lv_msg_txt3
ev_msg_text_4 = lv_msg_txt4.
CATCH cx_badi_not_implemented. "#EC NO_HANDLER
ENDTRY.
ENDIF.
IF lv_rc <> 0.
"delete user command --> no more processing
CLEAR: gv_ucomm.
"output messages with the texts received
IF lv_msg_txt1 IS NOT INITIAL
OR lv_msg_txt2 IS NOT INITIAL
OR lv_msg_txt3 IS NOT INITIAL
OR lv_msg_txt4 IS NOT INITIAL.
MESSAGE i000(stmwflow)
WITH lv_msg_txt1 lv_msg_txt2 lv_msg_txt3 lv_msg_txt4.
ENDIF.
ENDIF.

check_after_retrofit

**********************************************************************
"BADI Call for check_after_retrofit
IF lref_badi_during_rfit IS INITIAL.
TRY.
GET BADI lref_badi_during_rfit.
CATCH cx_badi_not_implemented. "#EC NO_HANDLER
ENDTRY.
ENDIF.
IF lref_badi_during_rfit IS BOUND.
TRY.
CALL BADI lref_badi_during_rfit->check_after_retrofit
EXPORTING
iv_rfit_action = gv_ucomm
it_rfitc = lt_rfitc_sel.
CATCH cx_badi_not_implemented. "#EC NO_HANDLER
ENDTRY.
ENDIF.
"end of BADI Call
**********************************************************************

METHOD handle_user_command

process_function

"redirect to the BADI --> read it if not yet bound
IF NOT lref_during_rfit IS BOUND.
TRY.
"get
GET BADI lref_during_rfit.
CATCH cx_badi_not_implemented. "#EC NO_HANDLER
ENDTRY.
ENDIF.
IF NOT lref_during_rfit IS INITIAL.
"get the selected row
CALL METHOD gr_alvgrid->get_selected_rows
IMPORTING
et_index_rows = lt_index_rows
et_row_no = gt_row_no.
gt_index_rows = lt_index_rows.
"check which one is selected
READ TABLE lt_index_rows INTO ls_index_rows INDEX 1.
"read the selected one into line
READ TABLE gt_rfitc INTO ls_rfitc_badi_tmp INDEX ls_index_rows-index.
MOVE-CORRESPONDING ls_rfitc_badi_tmp TO ls_rfitc_badi.
IF NOT ls_rfitc_badi IS INITIAL.
CALL BADI lref_during_rfit->process_function
EXPORTING
fcode = e_ucomm
rfitc_entry = ls_rfitc_badi.
ENDIF.
CLEAR: ls_rfitc_badi, ls_index_rows.
REFRESH: lt_index_rows.
ENDIF.






General Data in Customer Master   BAL Application Log Documentation  
This documentation is copyright by SAP AG.

Length: 5625 Date: 20240523 Time: 163546     sap01-206 ( 40 ms )