- 业务背景: 在项目实施过程中,创建生产订单的时候,用户可能会修改生产订单组件的信息。当修改后,用户希望校验物料不能重复,反冲料库存地点不能为空等。
- 解决步骤
- 现有解决方案
网上目前有一种解决方案,就是在PPCO0001或WORKORDER_UPDATE中报S或I类消息DISPLAY LIKE E,然后再配上LEAVE TO TRANSACTION SY-TCODE,返回创建界面。此方案可以实现创建时,不往数据库中写生产订单信息,但是会造成生产订单跳号。同时,因为PPCO0001和WORKORDER_UPDATE都是在COMMIT WORK中触发的,后续会有什么影响,我这边并没有评估,并且网上的资料也没有讲。
- 本文方案
本文的方案还是在标准的PPCO007校验中去获取SAP标准的组件信息。通过前台跟源码,获取到函数CO_BC_RESBD_OF_ORDER_GET
此函数可以获取生产订单的组件信息,如果用户修改后,也能获取到修改后的组件信息。
- 增强源码
DATA: lt_resbd TYPE TABLE OF resbdget WITH HEADER LINE.
CALL FUNCTION 'CO_BC_RESBD_OF_ORDER_GET'
EXPORTING
aufnr_act = header_imp-aufnr
TABLES
resbd_get = lt_resbd.以上。
◆◆0
发表评论