SAP增强MM物料主数据.docx
《SAP增强MM物料主数据.docx》由会员分享,可在线阅读,更多相关《SAP增强MM物料主数据.docx(10页珍藏版)》请在冰豆网上搜索。
SAP增强MM物料主数据
1、物料主数据增强(MM01/MM02/MM03)
目的:
SAP标准字段不够使用,利用屏幕增强增加字段,以便用户输入内容并保存至自定义表中。
SE11创建如下表(我们暂且称之谓ADD-ON表)
如图:
图
创建定制子屏幕的程序
Tcode:
spro,后勤-常规->物料主数据->配置物料主记录->创建定制子屏幕的程序
进去之后填写一个新的函数组,如图:
图
保存后生成函数组Z_FG2,另外会生成程序(SAPL+函数组名)SAPLZ_FG2,该程序名会在分配屏幕号的时候使用。
SE80定义函数组
se80->functiongroup->Z_FG2,我们会看到已有了两个屏幕和两个include.如图:
图
双击屏幕0001,添加三个Module,编辑如图:
图
moduledisable_field:
通过判断TCODE,如果是MM03,则自定义字段为只读,
moduleget_data:
读取ADD-ON表中相应物料的数据,在自定义屏幕中显示出来。
moduleassign_data:
将自定义屏幕中各字段的值传入内存ID中,以便保存时调用。
各模块代码如下(新建这几个module时不用再创建新的include,放到LZ_FG2TOP中即可):
*&-------------------------------------------------------------------
*& Module DISABLE_FIELD OUTPUT
*&-------------------------------------------------------------------
* text
*--------------------------------------------------------------------
MODULE DISABLE_FIELD OUTPUT.
IF SY-TCODE = 'MM03'.
LOOP AT SCREEN.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE. " DISABLE_FIELD OUTPUT
*&-------------------------------------------------------------------
*& Module GET_DATA OUTPUT
*&-------------------------------------------------------------------
* text
*--------------------------------------------------------------------
MODULE GET_DATA OUTPUT.
TABLES:
ZPARTAPPEND.
DATA:
F1 LIKE ZPARTAPPEND-F1,
F2 LIKE ZPARTAPPEND-F2,
W_MATNR TYPE MATNR.
IF SY-TCODE = 'MM02' OR SY-TCODE = 'MM03'.
GET PARAMETER ID 'MAT' FIELD W_MATNR.
SELECT SINGLE * FROM ZPARTAPPEND WHERE MATNR = W_MATNR.
F1 = ZPARTAPPEND-F1.
F2 = ZPARTAPPEND-F2.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT
*&-------------------------------------------------------------------
*& Module ASSIGN_DATA INPUT
*&-------------------------------------------------------------------
* text
*--------------------------------------------------------------------
MODULE ASSIGN_DATA INPUT.
ZPARTAPPEND-F1 = F1.
ZPARTAPPEND-F2 = F2.
EXPORT ZPARTAPPEND TO MEMORY ID 'ZPARTAPPEND'.
ENDMODULE. " ASSIGN_DATA INPUT
屏幕界面设计
在屏幕界面点'格式'进行屏幕定义,定义屏幕如图,这里我们只用到部分字段。
这两个可编辑框名称分别为:
F1,F2。
图
屏幕设计完后保存并激活函数组Z_FG2。
CMOD创建增强
T-CODE:
CMOD,使用出口MGA00001(在增强分配中配置)(物料主数据,不同的模块都有系统自带的出口,可参考SAP系统出口汇总)。
如图、图、图,进去后再双击includeZXMG0U02.增强代码如图:
图
这里ZMM01已经存在,所以点击更改,如果不存在,点击创建。
图
图
图
如图,添加处理代码,用以保存主数据修改后保存到自建表中。
代码如下:
TABLES ZPARTAPPEND.
IF SY-UCOMM = 'BU' OR SY-UCOMM = 'YES'.
IMPORT ZPARTAPPEND FROM MEMORY ID 'ZPARTAPPEND'.
ZPARTAPPEND-MATNR = CMARA-MATNR.
MODIFY ZPARTAPPEND FROM ZPARTAPPEND.
ENDIF.
分配屏幕到主数据的视图中-路径
T-CODE:
spro,后勤-常规->物料主数据->配置物料主记录->定义每个屏幕序列的数据屏幕的结构
再按图,图进行操作。
图
本实例把新增的屏幕放到“基本数据2”视图中,所以参考图操作:
图
分配屏幕到主数据的视图中-实现
在下图中输入前面创建的函数组对应的程序名(SAPLZ_FG2)及屏幕编号(0001),如图,之后点保存,保存时如果需要就创建请求,直至保存成成功:
图
MM03测试效果
如图:
图
添加成功。
MM02测试效果
如图(修改),图(修改结果):
图
图