Skip to Content
0
Jun 07, 2018 at 06:06 AM

BAPI_PO_CHANGE - Change conditions price TBA1

340 Views

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.