Badi Bharath
Badi Bharath
ENDFORM
AC_DOCUMENT_POST
CO_DOCUMENT_POST
EXIT_SAPLKEII_001
EXIT_SAPLV60B_008
IF sy-tcode = 'FBCJ'.
DATA gv_user TYPE usnam.
DATA : lwa_im_document1 LIKE LINE OF it_cobk.
CLEAR : lwa_im_document1.
READ TABLE it_cobk INTO lwa_im_document1 INDEX 1.
IF lwa_im_document1-refbk = '6430'.
SELECT SINGLE accountant FROM tcj_documents INTO gv_user
WHERE comp_code EQ lwa_im_document1-refbk
AND posting_number EQ lwa_im_document1-refbn .
IF gv_user IS NOT INITIAL AND sy-uname EQ gv_user.
MESSAGE 'cant post with same user' TYPE 'W' display like 'E'.
*{***** CR / TFS 1232 reset the release stategy while cost center change at item
level
*looping acct assignment data becoz for single item data we would give no. of kostl
values
if wa_item_save is not INITIAL. "checking for new data ,if it is new data ,it will
skip d next step
CONTINUE.
ELSE .
* fetching data from change document table 'CDPOS' for old and new values
of kostl field
flag = 'X' .
exit.
ENDIF.
* ENDIF.
ENDIF.
endloop.
CLEAR : wa_item_new , wa_item_save , rt_acc,rw_acc ,wa_acc ,wa_acc_save.
endif . " checking for cost center
endif. " checking for if enter new data r not
endif. " for checking deletion flag
CLEAR wa_item_new .
ENDIF. " for checking acct no is there r not
CLEAR rt_acc .
ENDLOOP.
*reseting release stategy from relese to un release state based on kostl change
value
IF flag = 'X' .
l_header-frgke = 'B'.
l_header-frgzu = ' '.
l_header-frgrl = 'X'.
l_header-frgsx
l_header-frgke
l_header-frgzu
l_header-frgrl .
ENDIF.
endif.
ENDIF.
this below code for customer masterdata blocking wrote logic in badi
badi definition----------->CUSTOMER_ADD_DATA
methods used-------------->READ_ADD_ON_DATA(for exporting values of sales org and
company code)
-------------->PRESET_VALUES_CCODE( changing values of companycode (Table
KNB1)).
-------------->PRESET_VALUES_SAREA( changing values of sales org (Table
KNVV)).
METHOD if_ex_customer_add_data~read_add_on_data.
if sy-tcode = 'XD01' OR sy-tcode = 'VD01' OR sy-tcode = 'FD01' .
break bsaki.
DATA : gv_bukrs TYPE bukrs , gv_vkorg TYPE vkorg .
DATA : gv_bukrs1 TYPE bukrs , gv_vkorg1 TYPE vkorg .
gv_bukrs1 = i_bukrs.
gv_vkorg1 = i_vkorg.
EXPORT gv_bukrs FROM gv_bukrs1 gv_vkorg FROM gv_vkorg1 TO MEMORY ID 'KNB'.
ENDIF.
ENDMETHOD.
METHOD if_ex_customer_add_data~preset_values_ccode.
break bsaki.
IF sy-tcode EQ 'XD01' OR sy-tcode EQ 'VD01' OR sy-tcode EQ 'FD01'.
IF i_activity = 'H' AND e_knb1-sperr IS INITIAL.
ENDMETHOD.
this below code for customer masterdata blocking wrote logic in user exit and
implicit enhancement
SELECT * FROM t020 INTO TABLE lt_t020 WHERE tcode IN r_tcode AND aktyp = 'H'.
* ENDIF.
CASE sy-tcode.
WHEN 'XD01'. " cmpny and sales org wise blocking
IF ls_zin_config-fieldvalue1 = i_knvv-vkorg AND ls_zin_config-fieldvalue2
= i_knb1-bukrs .
READ TABLE lt_t020 INTO ls_t020 WITH KEY tcode = 'XD01' aktyp = 'H'.
IF sy-subrc = 0.
i_knvv-aufsd = '01' .
i_knvv-lifsd = '01' .
i_knvv-faksd = '01' .
i_knvv-cassd = 'X' .
i_knb1-sperr = 'X' .
lv_flag = 'X'.
EXPORT lv_flag TO MEMORY ID 'FLAG'.
EXPORT i_knvv TO MEMORY ID 'KNVV'.
EXPORT i_knb1 TO MEMORY ID 'KNB1'.
ENDIF.
ENDIF.
WHEN 'FD01'.
IF ls_zin_config-fieldvalue2 = i_knb1-bukrs . " company code wise blocking
READ TABLE lt_t020 INTO ls_t020 WITH KEY tcode = 'FD01' aktyp = 'H'.
IF sy-subrc = 0.
i_knb1-sperr = 'X' .
lv_flag = 'X'.
EXPORT lv_flag TO MEMORY ID 'FLAG'.
EXPORT i_knb1 TO MEMORY ID 'KNB1'.
ENDIF.
ENDIF.
WHEN 'VD01'.
IF ls_zin_config-fieldvalue1 = i_knvv-vkorg . "sales org wise blocking
READ TABLE lt_t020 INTO ls_t020 WITH KEY tcode = 'VD01' aktyp = 'H'.
IF sy-subrc = 0.
i_knvv-aufsd = '01' .
i_knvv-lifsd = '01' .
i_knvv-faksd = '01' .
i_knvv-cassd = 'X' .
lv_flag = 'X'.
EXPORT lv_flag TO MEMORY ID 'FLAG'.
EXPORT i_knb1 TO MEMORY ID 'KNB1'.
ENDIF.
ENDIF.
ENDCASE.
ENDIF.
* ENDIF.
*endif.
ENDIF.
implicit enhancement