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.
-
ENDIF.ROLLBACK WORK. MESSAGE ls_error_message TYPE ' E'.
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、关于开发需求(生产订单维护:组件需求数量更改不能少于已发料数量) 欢迎大神们留言讨论,提出更多的解决方案。
探讨了在SAP系统中防止生产订单组件需求数量低于已发料数量的开发需求实现,包括使用BADI增强及customer-exit的失败与成功实践。

5560

被折叠的 条评论
为什么被折叠?



