ABAP BAPI_PO_CREATE1 净价net_price 无效

2020-11-02 14:36:21 浏览数 (1)

今天测试发现用BAPI_PO_CREATE1 创建采购订单,虽然能成功创建采购订单,但是行项目的净价总是和自己导入的数据不对。然后在前台手工创建时,发现会自动带出一个净价,奇怪从哪来。原来是因为我采购信息记录没有维护净价,它就会采用上一个采购订单的净价。

 查找相关资料,BAPI_PO_CREATE1 函数中的 EXPORTING中的NO_PRICE_FROM_PO 设为X。

还要注意一个问题

如果有税码,那么导入的时候那个价格是含税价格!!!比如我导入时poitem-tax_code 为J1,poitem-net_price=100,导入成功后,净价就变为85.47了!!!如下图。

85.47*(1 17%)。所以一般是先不设置税码。。后面再批量

另外找到一些资料:

using BAPI_PO_CREATE1 to create POs meanwhile passing the netprice instead of price from inforrecords.

From 580225:

  1. 1. NO_PRICE_FROM_PO

If you transfer the value 'X' in this field, no conditions are copied from the last document. This includes purchase orders, scheduling agreements, contracts and quotations. The system still copies  conditions from the information record. The field can only be filled at header level. It is valid for all items. Prerequisite You must implement Note 552189 in your system to use the NO_PRICE_FROM_PO field.

  1. 2. POITEM-PO_PRICE

You can use the PO_PRICE field to control, at item level, if the value should be copied from the POITEM-NET_PRICE field to the conditions. PO_PRICE can have the values ' ', '1' or '2' with the following  meaning:

  • PO_PRICE = ' ': The conditions are determined automatically, the value from the NET_PRICE field is only copied if the system cannot determine a condition.
  • PO_PRICE = '1': The value transferred in field NET_PRICE is copied as a  gross price that is, it is set with the condition type specified as base price in the calculation schema. In the SAP Standard System, these are condition types PB00 or PBXX. All other condition types  remain unchanged. No conditions are copied from the last document.
  • PO_PRICE = '2': The value transferred in field NET_PRICE is copied as a  net price that is, it is set with the condition type specified as base price in the calculation procedure. All other condition types are deleted.

Keyword: NO_PRICE_FROM_PO = X   Poitem-po_price = '2'

Alternative: BBP_PO_INBOUND_BADI

0 人点赞