SAP MM MB52新增字段增强

业务背景介绍

在UF公司,启用了默认库存仓位(MARD-LGPBE)和批次文本。为方便仓库人员进行库位管控,MB52需增加辅助字段(批次仓位、默认仓位);开发人员需要对MB52标准程序进行增强处理。

实现关键点

1.在标准程序中加入辅助字段数据定义;
2.在标准程序中加入辅助字段获取逻辑代码;
3.在标准程序中加入辅助字段的ALV结构输出代码;

实操方式——MB52新增“默认仓位”/“批次仓位”

1.在MB52报表程序中,加入 批次仓位、默认仓位的 DATA定义的增强;
批次仓位 数据类型为 AUSP-ATWRT;
默认仓位 数据类型为 MARD-LGPBE;
在数据结构:collector中加入MARD-LGPBE,bestand中加入AUSP-ATWRT,MARD-LGPBE;
ty_collector_joined中加入MARD-LGPBE.
如下图所示:


SAP MM MB52新增字段增强_第1张图片
cllerector数据结构增强情况

collector属于屏幕界面SQL语句获取的内表
SAP MM MB52新增字段增强_第2张图片
bestand数据结构增强情况
bestand属于collector赋值后进一步处理的展示的ALV全局表
SAP MM MB52新增字段增强_第3张图片
ty_collector_joined数据结构增强情况
ty_collector_joined也属于屏幕界面SQL语句获取的内表
2.在MB52报表程序中,加入 批次仓位、默认仓位的 ALV结构输出代码。
在from:f0300_fieldcat_flat中加入相应字段的ALV结构输出代码;如下图所示:
SAP MM MB52新增字段增强_第4张图片
定义新增字段的ALV输出
3.在MB52标准程序中,加入批次仓位、默认仓位的字段获取逻辑;
在from:list_output中加入查询批次仓位数据,并更新bestand全局表;
SAP MM MB52新增字段增强_第5张图片
批次文本数据获取方式

因标准程序已采用MARD表进行查询数据,只是未读取MARD-LGPBE字段;
在标准程序子例程:DATA_SELECTION、DATA_SELECTION_JOIN、DATA_SELECTION_NEW
中读取MARD时,加入MARD-LGPBE字段来查询默认库存仓位数据,读取到collector表、ty_collector_joined表;

在子例程中DATA_SELECTION修改如下:
SAP MM MB52新增字段增强_第6张图片
默认仓位获取方式-子例程1修改方式
在子例程中DATA_SELECTION_JOIN修改如下:
SAP MM MB52新增字段增强_第7张图片
默认仓位获取方式-子例程2修改方式
在子例程中DATA_SELECTION_NEW修改如下:
SAP MM MB52新增字段增强_第8张图片
默认仓位获取方式-子例程3修改方式
4.测试执行MB52运行结果如下所示:
SAP MM MB52新增字段增强_第9张图片
MB52增强结果

延伸思考

1.MB52采用增强的方式新增字段,那MB51是否也需要采用增强的方式新增字段?
答:对于MB51物料凭证查询报表,SAP标准提供后台配置路径,新增报表显示字段和新增搜索字段;SPRO-物料管理-库存管理和实际库存-报表-定义物料凭证列表的字段选择;备注配置中只能处理MKPF和MSEG的表,若为其他表中的字段也需增强处理; 不太建议修改标准程序,尽量拷贝程序再做修改;

2.通过调试MB52查询到相关库存表
SAP MM MB52新增字段增强_第10张图片
库存相关表

你可能感兴趣的:(SAP MM MB52新增字段增强)