BAPI_PO_CHANGE-更改条件价格TBA1

2020-09-19 02:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嘿,我需要为PO类型LB更改TBA1条件。 我想更改KONV中的KWERT奖。 先删除条件,然后再删除。 我更改了CONBASEVAL,但KWERT仍然相同。 我该怎么办? 谢谢您的建议。

 DATA:lt_return bapiret2的类型表,
          lt_cond bapimepocond的类型表,
          ls_cond TYPE bapimepocond,
          lt_condx bapimepocondx的类型表,
          ls_condx TYPE bapimepocondx,
          l_testrun TYPE标志" VALUE"。

 *-删除旧条件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'。
          附加ls_cond至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'。
          附加ls_condx至lt_condx。
 *-插入新条件TBA1 -------------------------------------------  ----------------------- *
          清除: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'。
 
          如果是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。
          万一。
          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'。
          附加ls_cond至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'。
          附加ls_condx至lt_condx。
 * -------------------------------------------------  ------------------- *
     通话功能'BAPI_PO_CHANGE'
       出口
         PURCHASEORDER = i_mseg-ebeln
         TESTRUN = l_testrun
       桌子
         返回= lt_return
         POITEM = lt_poitem
         POITEMX = lt_poitemx
 * POSCHEDULE =
 * POSCHEDULEX =
         POCOND = lt_cond
         POCONDX = lt_condx
      。

 提交工作并等待。
 

谢谢您的回答。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嘿,我需要为PO类型LB更改TBA1条件。 我想更改KONV中的KWERT奖。 先删除条件,然后再删除。 我更改了CONBASEVAL,但KWERT仍然相同。 我该怎么办? 谢谢您的建议。

 DATA:lt_return bapiret2的类型表,
          lt_cond bapimepocond的类型表,
          ls_cond TYPE bapimepocond,
          lt_condx bapimepocondx的类型表,
          ls_condx TYPE bapimepocondx,
          l_testrun TYPE标志" VALUE"。

 *-删除旧条件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'。
          附加ls_cond至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'。
          附加ls_condx至lt_condx。
 *-插入新条件TBA1 -------------------------------------------  ----------------------- *
          清除: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'。
 
          如果是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。
          万一。
          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'。
          附加ls_cond至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'。
          附加ls_condx至lt_condx。
 * -------------------------------------------------  ------------------- *
     通话功能'BAPI_PO_CHANGE'
       出口
         PURCHASEORDER = i_mseg-ebeln
         TESTRUN = l_testrun
       桌子
         返回= lt_return
         POITEM = lt_poitem
         POITEMX = lt_poitemx
 * POSCHEDULE =
 * POSCHEDULEX =
         POCOND = lt_cond
         POCONDX = lt_condx
      。

 提交工作并等待。
 

谢谢您的回答。

付费偷看设置
发送
1条回答
微wx笑
1楼-- · 2020-09-19 03:09

没有您的系统的MM和采购顾问应该从哪里开始?

如果您在ABAP中遇到问题,那么ABAP开发的标签将比MM和采购更具相关性。

您是否已经在ME22N中手动尝试了您的愿望? 有可能吗?

我们无法了解您的变量,无法知道物料主数据中的标准价格和移动平均价格是否偶然相等,因此您看不到任何影响。

您的代码完全不显示变量的填充方式。

从PO的条件屏幕之前和之后截取的屏幕快照最终可能会有所帮助。

调试器会话的屏幕快照,显示变量的值。

条件TBA1的定义的屏幕截图,因为它不是标准的。

解释为何相同条件下的另一个字段KWERT应根据CONBASEVAL中的值自动更改

一周热门 更多>