4

我正在寻找一个为任意材料执行计算模式的功能模块。

当打开ME23N并查找头寸详细信息时,您有标签条件,其中显示的表格包含基本价格和各种条件,位于“最终价格”下方。但是,由于价格发现将(baseprice + conditions) * 金额计算为净值并将其除以金额,这可能会导致四舍五入问题,其中计算的值 4,738 被四舍五入为 4,74 并存储为净价格。现在在计算nettoprice * amount时,此值可能与打印在购买文件上的原始值不同。

由于购买文档值未存储在EKPO中,我的目标是通过简单地调用具有材料编号和计算模式以及任何必要参数的功能模块来重新评估该值,以给我(再次)的实际值打印在文档上。

是否有任何功能模块可以做到这一点,还是我必须自己编写逻辑代码?

4

1 回答 1

2

正如我在评论中所写,解决方案是 FM BAPI_PO_GETDETAIL1。如果您提供采购订单编号,您将获得几个表格,其中包含在采购订单创建/查看事务中显示的信息。其中之一是具有所有条件的 iTab POCOND 。然后你只需要阅读这个 iTab 并计算值并将它们相加。

lv_ebeln = 4711
lv_ebelp = 10
" Call FM to get the detail data for one PO and each position
call function 'BAPI_PO_GETDETAIL1'
  exporting
    purchaseorder = lv_ebeln
  tables
    pocond = gt_pocond
.

" Loop over the iTab and only read entries for position 10
loop at gt_pocond
    into gs_pocond
    where itm_number = lv_ebelp.
    
    " Get the netto value NAVS
    if ( gs_pocond-cond_type =  'NAVS' ).
        lv_netwr = gs_pocond-conbaseval.
    endif.

endloop.    
于 2021-08-25T07:38:23.717 回答