问题解决之 采购订单自动舍入数量

问题描述

SAP 创建采购订单时(分为前台界面创建或后台BAPI创建). 特定单位的商品(比如单位EA),输入小数后,系统会自动取整或舍入特定小数位. (取决于单位的小数位长定义)

对于EA这种单位. 没有设定小数位(下图是EA单位和KG单价的比较).

40b50fae661280410f9cb13108da2d2c.png

在PO尝试输入小数时,第一次系统会自动舍入,同时报一个警告消息

2bfcfe62f9b6a38ea365477e6a4edb09.png

29ce9d7115a7bf100c9e7df59f66c61f.png

再次输入小数, 系统接受输入的小数

ae4ec9f53bc2d8a00ec2ae17f8714630.png

使用BAPI创建时, 系统自动舍入(同时BAPI RETURN会返回一个警告).

调整消息属性并不能解决系统自动舍入的问题.(配置表T160M)

如果调整消息属性为报错,则系统不自动舍入, 但是会报错

如果仅输入小数, 可能会出现系统舍入为0的情况, 创建报数量或金额错误.

b64556c746fac781705a1bb743dcd2ca.png

退货采购订单不会自动舍入

同时SO相关单据没有这种自动舍入

32d5a3c240f8d7185285a752b1545685.png

问题分析

通过消息号 ME 386 跟踪底层逻辑. 找到系统发出消息的位置. 同时发现,系统替换前会判断 retpo 为空才替换. 所以退货订单不会自动舍入. 同时系统会判断 kz_no_take_over = 'X' 才会替换.

864e987376940bd9d01a3a8b08b339ba.png

进一步追查内表 GT_ROUND_MEM 的写入逻辑.系统在调用 MD_SINGLE_ROUNDING 后.

根据消息的类型 为报错. 设定了kz_no_take_over = 'X' (报错则不替换数量, 修改调整错误类型为警告,则会替换数量)

219c92e87bb2ce9626007052b46b972e.png

进入函数MD_SINGLE_ROUNDING

9ef5b60ec67f1136b6f7e5d517b0d72a.png

但是这个增强点似乎不太合适. 因为这里缺少了采购订单的相关信息. 

问题解决

最终决定在LMEPOF65 

FORM MEPO_ITEM_FILL_ROUND 开头增强, 根据自定义配置表ZTBC065判断是否跳过后续的舍入逻辑.

增强后, 系统后续会报错误消息ME 678 .这个消息可以通过配置消息类型,修改为警告(配置表T160M)解决. 

512fea68816d23ea2bb7c53c6c061cfc.png

ea87a2c1713d4dcaafff7c27e570897b.png

cfb846778f900246fb4c5b0d69362542.png

 总结

解决方案有两个: 最简单的是调整单位的小数位长.但如果业务只是在特定单据中希望EA单位输入的小数不会自动舍入. 这样就需要启用增强方案.

修改单位的小数位长影响较大. 增强解决则只是针对PO的舍入问题解决,针对性比较强. 可以根据项目的具体情况采用.

通过这个问题的解决可以发现, 很多业务逻辑及增强点都可以通过跟踪系统的报错消息获取. 

实际项目中,业务顾问掌握一些DEBUG技能有助于理解系统逻辑,找出标准配置点及找到合适的增强点.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

f1dc2b0a5bf91f0d4c69b97451f38540.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

实现库存预警自动生成采购订单可以按照以下步骤进行: 1. 设定库存预警阈值:根据超市的经验和需求,设定库存预警的阈值,例如当某个商品的库存数量低于设定值时触发库存预警。 2. 监控库存数量:定期或实时监控系统中各个商品的库存数量,可以通过定时任务或触发器来实现。 3. 触发库存预警:当某个商品的库存数量低于设定的阈值时,触发库存预警机制。 4. 自动生成采购订单:一旦库存预警触发,系统自动根据库存情况生成采购订单采购订单应包含商品信息、供应商信息、采购数量等。 5. 提醒相关人员:系统可以通过邮件、短信或通知等方式提醒相关人员,如采购部门的工作人员,以便及时处理采购订单。 6. 采购订单处理:采购部门收到采购订单后,根据订单中的信息进行商品采购,并及时更新系统中的库存数量。 7. 更新库存信息:在商品采购后,更新系统中相应商品的库存数量。 8. 反馈和记录:记录采购订单的处理情况,包括采购日期、采购人员、供应商反馈等信息,以便后续的采购跟踪和统计分析。 需要注意的是,库存预警自动生成采购订单的具体实现方式可能因系统架构和技术选型而有所不同。可以结合系统的实际情况和业务需求,使用数据库、触发器、定时任务、消息队列等技术来实现库存预警和采购订单自动生成。同时,还需要考虑系统的稳定性、并发性和安全性等方面的问题,确保系统的正常运行和数据的准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值