【问题标题】:Function Module for Calculation Schema in MMMM中计算模式的功能模块
【发布时间】:2021-10-21 19:37:07
【问题描述】:

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

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

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

有没有什么功能模块可以做到,还是我自己写逻辑?

【问题讨论】:

  • 没试过,但是 BAPI_PO_CREATE1 和 TESTRUN='X' 应该给你条件。使用 TESTRUN 标志,FM 实质上创建了采购订单,但不保存它。
  • 感谢您的评论,我设法通过查找您建议的 FM 的表格及其使用位置找到了 FM BAPI_PO_GETDETAIL1。由于您的解决方案确实需要太多输入,并且 BAPI_PO_GETDETAIL1 更容易(只需使用 PO 编号输入它,您就会得到一个包含条件的表格 - 我想要的数据)我将使用它。随意发表您的评论作为回答,我将奖励您赏金:)
  • BAPI_PO_GETDETAIL1 为您提供现有的采购订单。如果这足够了,那就太好了。如果您想知道 当前 价格并想模拟计算,则必须使用 BAPI_PO_CREATE1,它将为您提供指定日期的条件。您将需要在抬头和物料编号、工厂、数量和每个项目的数量单位中提供一些字段,主要是单据类型、供应商、采购组织和采购组。
  • 同意德克。在您的问题中,暗示您只想按材料编号评估条件,而您没有采购订单编号。如果你有 PO,那么 BAPI_PO_GETDETAIL1 就可以了
  • 是的 BAPI_PO_GETDETAIL1 满足我的需要。我想重新评估打印在采购订单文档上的价格,因此我不需要当前价格,而是创建采购订单时材料成本的价格。

标签: abap sap-erp function-module


【解决方案1】:

正如我在评论中所写,解决方案是 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.    

【讨论】:

    猜你喜欢
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多