解决重复投料小问题学到了很多

本文详细介绍了在S4hana1709APO模块中,整车零部件投料的业务流程和解决方案。通过LES接口与SAP系统的交互,实现了精准的物料控制。然而,由于接口数据与人工操作的并存,导致了重复投料问题。为解决此问题,文章提出了在关键程序中加锁的策略,确保数据一致性。此外,文中还讨论了该方案相对于传统反冲方案的优势,以及其作为一车一成本解决方案的衍生物如何在行业中创新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境: S4 hana 1709 APO模块

症状:有一个车上的零部件多投了一个。这个零件一个车上只配一个,但518个车上用了519个零件。在MB51中看到有一个车上投了2个零件。

业务背景:

解决问题之前,我一直想熟悉这块业务,这次终于如愿了。了解这块业务功能的代码有难度,所以拖累这么许久,因为得到的FS比较乱,而且并没有写得清楚。

1、LES的现场物料凭证从接口传入SAP系统。

2、对于261整车生产零部件投料,接口继续使用APO函数在报工点反冲。

 CALL FUNCTION '/SAPAPO/PPC_CONF_CREATE'
      EXPORTING
        it_conf                  lt_conf
      
IMPORTING
        et_rc                    et_rc
        et_conford               
et_conford
        et_auto_conf             
et_auto_conf
        e_confid                 
lv_confid

3、APO自动把数据传递到S4中,产生物料凭证。投入产出报表的统计,计算实际投入时,就是取得APO中PPC相关的几张表数据。

*读取PPC反冲数据
  SELECT a~headid,a~orderid,a~flg_reversal,
         b~accid,b~confquant,b~confunit,
         c~matid,
         d~matnr,d~lgort
    
FROM ppc_head      AS a
    
JOIN ppc_conf_mat  AS ON a~headid  b~headid
    
JOIN ppc_mat_det   AS c ON b~accid   c~accid
    
JOIN ppc_mat       AS d  ON c~matid   d~matid
    
JOIN @gt_ords      AS ON a~orderid e~ordid
    
WHERE a~flg_gr_head ''
   INTO CORRESPONDING FIELDS OF TABLE @gt_ppc_mat.

4、对于非整车的自制件投料,是用的PP报工BAPI打开工单投料。整车和自制件的订单通过类型字段区分:V01、V02整车,VP01、VP02自制件,等等。

CALL FUNCTION 'BAPI_PRODORDCONF_CREATE_TT'
          IMPORTING
            return             ls_return
          
TABLES
            timetickets        lt_timetickets
            goodsmovements     
lt_goodsmov
            link_conf_goodsmov 
lt_link
            detail_return      
lt_detail_return.

5、在三大车间下线点,只做订单确认,和最后成品收货,而不做物料反冲消耗,这是在反冲功能上加了一个增强,在增强中清空了物料消耗的表,来实现不消耗物料。工厂因为成本核算要求一车一成本,成本归集改用生产订单的方式,所有发料和报工需要通过工单进行,而标准的过点确认会对成本收集器进行反冲和报工,需要通过增强将成本收集器的反冲和报工取消。

一、实现BADI:/SAPAPO/PPC_BADI

实现方法:GOODS_MOVEMENTS, 清空内表ct_goods_movements和ct_link_conf_gm

实现方法:ACTIVITIES,清空内表ct_activities和ct_link_conf_act

二、在包含程序/SAPAPO/LPPC0_PRF08的子例程CALL_BADI_GOODS_MOVEMENTS末尾做隐式增强,清空内表CT_GMPOS

三、在包含程序/SAPAPO/LPPC0_PRF09的子例程CALL_BADI_ACTIVITIES末尾做隐式增强,清空内表CT_ACT

可以看到,用LES的投料来代替了传统的汽车行业反冲方案,让更近现场的LES来处理物料,可以对物料的消耗更精准的控制,比如多供应商的情况,传统的反冲方案完全管不到这些物料问题,而该方案解决了。

6、LES的生产投料物料凭证源源不断的传入SAP系统,但是不是全部,因为现场物料管理和LES系统也不能做到完全一致的,总有极少部分的物料移动没有及时的产生物料凭证(类似于COGI),LES会在月底人工来发起这些补救的物料消耗。

原因:按上面的业务场景,这里出现了2个数据源,一个是接口数据操作,一个是人工发起的操作,当他们同时在操作一张表的数据时,就出现了重复投料的情况。

人工操作:

接口操作:

  

解决:只需加一道锁。

以上,其实主要记述的我们工厂业界首创的整车行业投料方案,我觉得它优于传统的反冲方案。

后记2022.1.9:

博主在2016年重庆潍柴汽车建设时就写过SAP生产模块整车零部件消耗反冲的程序,当时业务顾问给出FS上消耗物料的规则就很糟糕,好像只能做到物料的先进先出,更谈不上多供应商物料的控制,从那时候开始,就一直在关注这块问题。

其实零部件投料只是配额专题中的中间环节。首先,SAP中有采购配额发起对零件物料采购的比例分配,在中间执行使用环节是生产投料,在最后结算环节才能正确的同供应商结算。如果简单的在中间过程使用按BOM表反冲消耗物料,其实就生产现场脱离了,可以想象这里面的帐会越来越糟糕。

所幸,能够在现在的工厂看到这套优秀的解决方案,虽然它最初其实是一车一成本解决方案的衍生物,并不是直接针对我考虑的问题,但它确实做到了,并且你可能不知道,它是业界首创。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值