SAP增强MM物料主数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、物料主数据增强(MM01/MM02/MM03)
目的:SAP标准字段不够利用,利用屏幕增强增加字段,以便用户输入内容并保留至自概念表中。
SE11创建如下表(咱们暂且称之谓ADD-ON表)
如图:
图
创建定制子屏幕的程序
Tcode:spro,后勤-常规->物料主数据->配置物料主记录->创建定制子屏幕的程序
进去之后填写一个新的函数组,如图:
图
保留后生成函数组Z_FG2,另外会生成程序(SAPL+函数组名)SAPLZ_FG2,该程序名会在分派屏幕号的时候利用。
SE80概念函数组
se80->function group->Z_FG2,咱们会看到已有了两个屏幕和两个include.如图:
图
双击屏幕0001,添加三个Module,编辑如图:
图
module 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 INPUT
屏幕界面设计
在屏幕界面点'格式'进行屏幕概念,概念屏幕如图,那个地址咱们只用到部份字段。
这两个可编辑框名称别离为:F1,F2。
图
屏幕设计完后保留并激活函数组Z_FG2。
CMOD创建增强
T-CODE:CMOD,利用出口MGA00001(在增强分派中配置)(物料主数据,不同的模块都有系统自带的出口,
可参考SAP系统出口汇总)。
如图、图、图,进去后再双击include ZXMG0U02.增强代码如图:
图
那个地址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测试成效
如图(修改),图(修改结果):
图
图。