宿州市网站建设_网站建设公司_H5网站_seo优化
2025/12/25 8:12:16 网站建设 项目流程

字段名ZWERT在 EKPO 里确实叫「本币金额(行净值折本币)」,但系统只在外币采购订单里才会实时给它赋值;如果订单是本币订单,SAP 认为「本币金额 = 行净值 NETWR」,于是干脆把 ZWERT 留空(0.00)。
所以看到 0 是正常行为,不是 Bug,也不是汇率没取到。下面把逻辑再拆开说明,并给你验证办法。


  1. SAP 的记账/报表策略

  • 本币订单(WAERS = 公司代码本位币)
    ‑ 所有价值字段都以本币存储,不需要再做汇率转换。
    ‑ 此时 EKPO-ZWERT 保持 0,任何标准报表(ME80、ME2N、MB51)都直接取 NETWR 当本币值。

  • 外币订单(WAERS ≠ 公司代码本位币)
    ‑ 保存订单时系统根据维护的汇率(OB08 或手动输入 WKURS)把 NETWR 换算成本币,结果写进 ZWERT。
    ‑ 如果当时没维护汇率,ZWERT 也会是 0,但后续 MIRO/MR1M 做发票校验时会重新按发票日期汇率再算一次,不会用这里的 ZWERT。


  1. 快速验证
    a) 看表头 EKKO-WAERS 与公司代码 T001-WAERS 是否相同——相同就是本币订单。
    b) 如果确属外币订单仍为 0,检查:

    • 保存 PO 当天 OB08 是否维护了汇率(M/SP 类型)。

    • 手工在 PO 抬头是否勾选了「手动汇率」并输入了 WKURS;没输的话系统也写 0。


  1. 开发取数建议

  • 统一写法:

IF ekko-waers = t001-waers. "本币订单 lv_amount = ekpo-netwr. ELSE. "外币订单 IF ekpo-zwert IS INITIAL. "可能没汇率 lv_amount = ekpo-netwr * ekko-wkurs. ELSE. lv_amount = ekpo-zwert. ENDIF. ENDIF.

这样无论 ZWERT 是不是 0,报表都不会掉值。


结论
「ZWERT = 0」99% 是因为订单本身就是本币订单;剩下 1% 是外币订单保存时没取到汇率。两者都不会影响后续收货、发票校验和 ML 结算,请放心使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询