Hey, I need to change the TBA1 condition for PO type LB. I want to change the KWERT prize in KONV. The condition is deleted first and then new. I change CONBASEVAL, but KWERT is still the same. What should I do? Thank you for your advice.
DATA : lt_return TYPE TABLE OF bapiret2,
lt_cond TYPE TABLE OF bapimepocond,
ls_cond TYPE bapimepocond,
lt_condx TYPE TABLE OF bapimepocondx,
ls_condx TYPE bapimepocondx,
l_testrun TYPE flag VALUE ''.
*--Delete old conditions TBA1------------------------------------------------------------------*
ls_cond-itm_number = l_ebelp.
ls_cond-condition_no = l_knumv.
ls_cond-cond_st_no = ls_konv-stunr.
ls_cond-cond_count = ls_konv-zaehk.
ls_cond-cond_type = ls_konv-kschl.
ls_cond-change_id = 'D'.
APPEND ls_cond TO lt_cond.
ls_condx-itm_number = l_ebelp.
ls_condx-condition_no = l_knumv.
ls_condx-cond_st_no = ls_konv-stunr.
ls_condx-cond_count = 'X'.
ls_condx-cond_type = 'X'.
ls_condx-change_id = 'X'.
APPEND ls_condx TO lt_condx.
*--Insert new conditions TBA1------------------------------------------------------------------*
CLEAR: ls_cond, ls_condx.
ls_cond-itm_number = l_ebelp.
ls_cond-condition_no = l_knumv.
ls_cond-cond_st_no = '100'.
ls_cond-cond_count = '01'.
IF ls_mbew-vprsv EQ 'S'.
ls_cond-conbaseval = ls_mbew-stprs.
ls_cond-scalbasval = ls_mbew-stprs.
ELSEIF ls_mbew-vprsv EQ 'V'.
ls_cond-conbaseval = ls_mbew-verpr.
ls_cond-scalbasval = ls_mbew-verpr.
ENDIF.
ls_cond-cond_value = '2'.
ls_cond-calctypcon = 'A'.
ls_cond-cond_type = ls_konv-kschl.
ls_cond-stat_con = 'X'.
ls_cond-change_id = 'I'.
APPEND ls_cond TO lt_cond.
ls_condx-itm_number = l_ebelp.
ls_condx-condition_no = l_knumv.
ls_condx-cond_st_no = '100'.
ls_condx-cond_count = 'X'.
ls_condx-conbaseval = 'X'.
ls_condx-calctypcon = 'X'.
ls_condx-cond_value = 'X'.
ls_condx-cond_type = 'X'.
ls_condx-change_id = 'X'.
ls_condx-stat_con = 'X'.
APPEND ls_condx TO lt_condx.
*--------------------------------------------------------------------*
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
PURCHASEORDER = i_mseg-ebeln
TESTRUN = l_testrun
TABLES
RETURN = lt_return
POITEM = lt_poitem
POITEMX = lt_poitemx
* POSCHEDULE =
* POSCHEDULEX =
POCOND = lt_cond
POCONDX = lt_condx
.
COMMIT WORK AND WAIT.
Thank for any answer.