SAP MM BAPI_PO_CHANGE 报错请输入净价,明明已经传值净价!
1、问题明明已经传入净价 BAPI_PO_CHANGE 修改采购订单价格报错请输入净价2、先说下这个创建的函数 BAPI_PO_CREATE1ls_poitem-po_price ‘1’. 价格采纳1 总值ls_poitemx-po_price ‘X’.这个函数里面有个价格采纳的玩意① 当这个po_price ‘1’. BAPI_PO_CREATE1给PBXX时候如何自动选择条件类型的看下面1.1和1.2.1.1 如果没有信息记录那么 BAPI_PO_CREATE1在给PBXX赋值的时候行项目会使用PBXX给值这句话意思就是你没有信息记录我BAPI给条件PBXX会直接给PO的行里面BXX赋值1.2 如果有信息记录那么 BAPI_PO_CREATE1在给PBXX赋值的时候行项目会使用PB00给值 这句话意思就是你有信息记录我BAPI给条件PBXX赋值会直接给PO的行里面PB00赋值总结一下1.1和1.2 解释的是BAPI创建订单时候SAP,选取条件类型的规则po_price ‘2’.和’空’再次就不进行解释了 ② 这个时候我们来研究我们标题的问题BAPI_PO_CHANGE 修改采购订单价格报错请输入净价。2.1 如果BAPI_PO_CREATE1当po_price ‘1’.时候 并且直接赋值PBXX价格如果有信息记录价格1元那么按照① 的原则BAPI_PO_CREATE1给PBXX他肯定会给PB00赋值创建出来的PO行项目条件就是PB00,好了这个时候又要分2种情况第1种BAPI_PO_CREATE1你刚好给的PBXX的价格和信息记录单价一样最后生成PO行是PB00比如1元这个时候使用BAPI_PO_CHANGE去给PBXX修改采购订单价格为2元就会报错**“请输入净价”**实际上你给值了。原因订单是PB00,他只会去找信息记录信息记录以外的价格他就是不认除非你改的价格在信息记录一样他也不会报错。第2种BAPI_PO_CREATE1你刚好给PBXX的价格和信息记录单价不一样最后生成PO行是PB00比如2.5元这个时候使用BAPI_PO_CHANGE去给PBXX修改采购订单价格为2元不会报错并且能修改成功。原因个人理解第一次创建时候破坏了和信息记录的关系所以可以修改成功。2.2 如果使用ME21N来代替不使用BAPI_PO_CREATE1,原理也是一样如果你ME21N创建的时候用的信息记录那么你用BAPI_PO_CHANGE去修改价格也是一样的,会出现2.1第一种情况。总结一下归根结底就是你要修改的采购订单按信息记录定价 按信息记录定价的就是采购订单行项目PB00价格和信息记录一模一样那么你去使用BAPI_PO_CHANGE 赋值PBXX那么就会报错3、如何解决BAPI_PO_CHANGE修改订单时候报错“请输入净价”呢。需要你在程序里面增加判断判断当前采购订单行项目是什么类型如果是PBXX就往BAPI赋值PBXX,PB00就往BAPI赋值PB00,不要写死PBXX。当然你也可以BAPI赋值的时候pocond时候先D删除某个条件类型再插入I某个条件类型SELECT SINGLE prcd~knumv,kschl,kposn,krech,kbetr,prcd~waers,kpein FROM prcd_elements AS prcd INNER JOIN ekko AS h ON h~knumv prcd~knumv WHERE ebeln fs_alv-ebeln AND kposn fs_alv-ebelp AND prcd~krech C AND prcd~kinak M 条件未激活状态 INTO DATA(ls_prcd). ls_pocond-itm_number fs_alv-ebelp. ls_pocond-cond_type ls_prcd-kschl. ls_pocond-cond_value lv_netpr. ls_pocond-currency ls_prcd-waers. ls_pocond-change_id U. APPEND ls_pocond TO t_pocond. CLEAR ls_pocond.4、以上说的都是BAPI_PO_CHANGE去修改采购订单的问题其实前台会自动切换PBXX和PB005、说了半天可能说了一堆废话可能每个系统业务或者配置不一样上面仅供参考如果有不对的地方帮忙指出目前我的配置如下。以上只是个人分享笔记仅供参考如果喜欢帮忙点个赞以上截图均来自SAP系统截图如有侵权联系本人进行删除感谢,如有疑问请在下方留言共同学习
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2504737.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!