本文主要整理自网上大神的文章(如有侵权请联系本人删除哈...);增加了本人(ABAP)在做允许超期物料收货增强时遇到的一些内容:配置对应的后台表、消息类型更改对应表、控制007(12)和008(12)消息的增强.
第一次在CSDN上发文.如有意见或者建议,欢迎大家在评论中回复.
目录
一、名词解释
SLED shelf life expiration date 货架寿命截止日/货架寿命到期日
二、如何启用货架寿命管理
启用货架寿命管理,需要进行以下三项工作:
1.工厂层配置
路径1:SPRO > 物料管理 > 库存管理和实际库存 > 收货 > 设置到期日检查 > "工厂"按钮 > 勾选“BBD/ProdDt”选项.
路径2:SPRO > 后勤-常规 > 批次管理 > 货架寿命截止日期 (SLED) > 设置到期日检查 > "工厂"按钮 > 勾选“BBD/ProdDt”选项
路径3:SPRO > 物料管理 > 库存管理和实际库存 > 工厂参数 > "双击"对应工厂 > 勾选“BBD/生产日期”选项
表字段:T59L-XWMHD
2.移动类型层配置
配置路径:
路径1:SPRO > 物料管理 > 库存管理和实际库存 > 收货 > 设置到期日检查 > "移动类型"按钮
路径2:SPRO > 后勤-常规 > 批次管理 > 货架寿命截止日期 (SLED) > 设置到期日检查 > "移动类型"按钮
维护“检查SL到期日”的值为“1输入和检验”。
"检查SL到期日"的可选值及描述,如下图:
表字段:T156-KZMHD
3.物料主数据设置
路径:MM02 物料主数据 > 一般工厂数据/存储1 > "货架寿命数据"栏 >维护"最小剩余货架寿命"和"总货架寿命"的值
数据库表:MARA MARC
三、消息及触发消息的逻辑
1.消息提示
当过账日期(MIGO收货时,过账日期字段) > 生产日期 + 总货架寿命时,系统提示:008(12)"当前项目 (&1 &2) 中剩余储存时间缺少 &3 天".
当过账日期 > 生产日期 + 最小剩余货架寿命时,系统提示007(12)"当前项目 (&1 &2) 中剩余储存时间缺少 &3 天"
2.通过配置更改提示消息类型
路径:SPRO > 物料管理 > 库存管理和实际库存 > 定义系统消息的属性
数据库表:T160M
视图:V_160M
四、常用的增强
1.BADI:VB_SLED_MANAGEMENT
货架寿命到期日检查BADI.
实现增强VB_SLED_MANAGEMENT,将其实现类的输入输出参数C_CHECK改为"空",系统就不会针对消息007(12)和008(12)的触发条件进行判定.以实现对超期物料的收货.
实现类中的参数:
增强在系统中的位置-在程序MM07MMHD(如下图)的FORM check_mhd中(MIGO的检查和过账都会触发).此程序中FM VB_MAINTAIN_MHD用于计算剩余货架寿命和超期时间,MB_CHECK_T160M用于检查提示消息.
总结
以上就是今天要讲的内容。