
SAP增强-MM-物料主数据.docx
10页1、物料主数据增强(MM01/MM02/MM03)目的:SAP标准字段不够使用,利用屏幕增强增加字段,以便用户输入内容并保存至自定义表中1.1 SE11创建如下表(我们暂且称之谓ADD-ON表)如图1.1-1:图1.1-11.2 创建定制子屏幕的程序Tcode:spro,后勤-常规->物料主数据->配置物料主记录->创建定制子屏幕的程序进去之后填写一个新的函数组,如图1.2-1:图1.2-1保存后生成函数组Z_FG2,另外会生成程序(SAPL+函数组名)SAPLZ_FG2,该程序名会在分配屏幕号的时候使用1.3 SE80定义函数组se80->function group->Z_FG2,我们会看到已有了两个屏幕和两个include.如图1.3-1:图1.3-1双击屏幕0001,添加三个Module,编辑如图1.3-2:图1.3-2module disable_field:通过判断TCODE,如果是MM03,则自定义字段为只读,module get_data:读取ADD-ON表中相应物料的数据,在自定义屏幕中显示出来module assign_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 INPUT1.4 屏幕界面设计在屏幕界面点'格式'进行屏幕定义,定义屏幕如图1.4-1,这里我们只用到部分字段。
这两个可编辑框名称分别为:F1,F2图1.4-1屏幕设计完后保存并激活函数组Z_FG21.5 CMOD创建增强T-CODE:CMOD,使用出口MGA00001(在增强分配中配置)(物料主数据,不同的模块都有系统自带的出口,可参考SAP系统出口汇总)如图1.5-1、图1.5-2、图1.5-3,进去后再双击 include ZXMG0U02.增强代码如图1.5-4:图1.5-1这里ZMM01已经存在,所以点击更改,如果不存在,点击创建图1.5-2图1.5-3图1.5-4如图1.5-4,添加处理代码,用以保存主数据修改后保存到自建表中代码如下: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.1.6 分配屏幕到主数据的视图中-路径T-CODE:spro,后勤-常规->物料主数据->配置物料主记录->定义每个屏幕序列的数据屏幕的结构再按图1.6-1,图1.6-2进行操作。
图1.6-1本实例把新增的屏幕放到“基本数据2”视图中,所以参考图1.6-2操作:图1.6-21.7 分配屏幕到主数据的视图中-实现在下图中输入前面创建的函数组对应的程序名(SAPLZ_FG2)及屏幕编号(0001),如图1.7-1,之后点保存,保存时如果需要就创建请求,直至保存成成功:图1.7-11.8 MM03测试效果如图1.8-1:图1.8-1添加成功1.9 MM02测试效果如图1.9-1(修改),图1.9-2(修改结果):图1.9-1图1.9-2。












