SAP PP生产订单 BADI 增强 WORKORDER_UPDATE

探讨了在SAP系统中防止生产订单组件需求数量低于已发料数量的开发需求实现,包括使用BADI增强及customer-exit的失败与成功实践。

1、开发需求:
生产订单维护:组件需求数量更改不能少于已发料数量

2、开始尝试用 SAP PP生产订单 BADI 增强 WORKORDER_UPDATE

3、代码:
METHOD if_ex_workorder_update~before_update.
DATA: lw_component TYPE LINE OF cobai_t_component,
ls_error_message TYPE string.
LOOP AT it_component INTO lw_component.
IF lw_component-bdmng < lw_component-enmng. "检查组件需求数量与已发料数量
CONCATENATE ls_error_message lw_component-matnr ‘;’ INTO ls_error_message.
ENDIF.
ENDLOOP.
IF NOT ls_error_message IS INITIAL.
CONCATENATE ‘组件’(mb1) ls_error_message ‘需求数量不能少于已发料数量!’(mb2) INTO ls_error_message.

  •  ROLLBACK WORK.
    MESSAGE ls_error_message TYPE ' E'.
    
    ENDIF.
    ENDMETHOD.

4、测试情况
错误提示是有生效
但是系统报错
在这里插入图片描述
报错原因,可能是 BADI 增强 WORKORDER_UPDATE 的方法内不允许执行错误类消息输出。关于此报错的原因,欢迎大神留言讨论,说出您的高见。

5、走过前面的弯路后, 找回上一代客户增强 customer-exit : EXIT_SAPLCOMK_014(PPCO0023 检查订单组件的更改)解决开发需求
在这里插入图片描述
在这里插入图片描述
代码:
IF is_component-bdmng < is_component-enmng.
raise NO_CHANGES_ALLOWED.
ENDIF.

6、关于开发需求(生产订单维护:组件需求数量更改不能少于已发料数量) 欢迎大神们留言讨论,提出更多的解决方案。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值