Product Information
生产订单(工单)技术完成后,如何防止继续对工单收货
有用户看了 SAP S/4HANA CLOUD 用户年度十八问(2020) | SAP Blogs 之后对如下问题表示关注,想了解一下BADI具体如何使用。本文给出一个样本代码以及注意事项,供用户参考。
”
1. 生产用户问:生产订单(工单)技术完成后,能否对订单相关的收发货,报工取消等后续操作进行控制?如何控制?
答:在SAP S/4HANA Cloud系统中,不能对生产订单的系统状态进行客制化的配置,因此无法通过标准配置实现对生产订单技术完成后的操作控制。但是,对于收发货的控制,可以通过物资模块的BADI:MMIM_GR4XY_CHECK_DATA进行根据生产订单不同状态下货物移动的控制,从而作为替代方法简介实现。
“
在内部系统测试后的结果如下。当工单已经技术关闭,如果继续对工单收货则会触发错误提示‘工单已技术关闭’,进而阻止对工单继续收货。
找到这个增强点的路径如下图:
代码样例:
DATA: ls_orderistechnicallycompleted TYPE string.
LOOP AT gr4xy_item REFERENCE INTO DATA(im_gr4xy_item).
IF im_gr4xy_item->inbounddelivery IS NOT INITIAL.
SELECT SINGLE
FROM i_mfgorderwithstatus
FIELDS orderistechnicallycompleted
WHERE ManufacturingOrder = @im_gr4xy_item->inbounddelivery
INTO @ls_orderistechnicallycompleted.
IF ls_orderistechnicallycompleted IS NOT INITIAL AND ls_orderistechnicallycompleted = ‘X’.
ls_message-messagetype = ‘E’.
ls_message-messagetext = ‘This order is technically completed’.
APPEND ls_message TO messages.
ENDIF.
ENDIF.
ENDLOOP.
非常值得注意的是,BADI 的接口参数中 工单号码对应的字段名称是inbounddelivery,从字段名称上来看容易让人迷惑。
值得一提的是,这个增强点只对‘过账生产订单的收货’ F3110这个应用生效。
API和 都‘过账货物移动’ MIGO 应用都无法实现增强控制。
2022.12.05 ***更新***
CE2208版本更新后,制造模块推出新的功能来完美解决这个问题。
生产流程管理优化(1)如何实现在SAP ERP云中生产订单技术性完成之后无法再进行发料和确认收货 | SAP Blogs
感谢详细分享!