物料主数据屏幕增强1——自建表方式
1、文档说明
本文档通过创建自建表存储增强字段的方式,对物料主数据进行增强,使其能通过前台屏幕维护数据
2、实现方法
2.1、创建自建表
创建存放增强字段的表,并根据放入物料主数据的相关视图,定义主键。本文档要在物料的工厂下增强字段,所以主键加入工厂
2.2、实现增强函数
运行SPRO,找到路径。或运行事务代码OMT3C
创建函数组
在函数组的0001屏幕中画上增强字段
实现屏幕流
DISABLE_FIELDS
"--------------------@斌将军-------------------- MODULE disable_fields OUTPUT. IF sy-tcode = 'MM03'. LOOP AT SCREEN. screen-input = '0'. MODIFY SCREEN. ENDLOOP. ENDIF. ENDMODULE. "--------------------@斌将军--------------------
GET_DATA
"--------------------@斌将军-------------------- TABLES:zmmt_marc01. DATA:ls_rmmg1 TYPE rmmg1, lv_matnr TYPE mara-matnr, lv_werks TYPE marc-werks. FIELD-SYMBOLS: <fs1> TYPE rmmg1. IF sy-tcode = 'MM02' OR sy-tcode = 'MM03'. GET PARAMETER ID 'MAT' FIELD lv_matnr. GET PARAMETER ID 'WRK' FIELD lv_werks. IF lv_werks IS INITIAL. "因工厂的参数ID获取不到,可以直接用指针方式获取 ASSIGN ('(SAPLMGD1)RMMG1') TO <fs1>. MOVE-CORRESPONDING <fs1> TO ls_rmmg1 . lv_werks = ls_rmmg1-werks. ENDIF. zmmt_marc01-matnr = lv_matnr. zmmt_marc01-werks = lv_werks. SELECT SINGLE * FROM zmmt_marc01 WHERE matnr = zmmt_marc01-matnr AND werks = zmmt_marc01-werks. ENDIF. "--------------------@斌将军--------------------
ASSIGN_DATA
"--------------------@斌将军-------------------- MODULE assign_data INPUT. "抛内存到存表位置 EXPORT zmmt_marc01 TO MEMORY ID zcl_mm_memory_id=>mm001. ENDMODULE. "--------------------@斌将军--------------------
2.3、CMOD增强
实施出口ZXMG0U02,存储数据
"--------------------@斌将军-------------------- TABLES: zmmt_marc01. IMPORT zmmt_marc01 FROM MEMORY ID zcl_mm_memory_id=>mm001. IF zmmt_marc01 IS NOT INITIAL. MODIFY zmmt_marc01 FROM zmmt_marc01. ENDIF. FREE MEMORY ID zcl_mm_memory_id=>mm001. CLEAR:zmmt_marc01. "--------------------@斌将军--------------------
2.4、分配增强字段到页签
运行SPRO,找到路径。或运行事务代码OMT3B
配置函数组和屏幕到对应子屏幕
2.5、特定物料增强
如果需要将字段增强到特定行业领域和物料类型的界面时,需要首先查看特定类型的屏幕信息
运行SPRO,或通过事务代码OMT3E
例如:行业领域1零售,物料类型HERB
事务代码对应的屏幕参照
找到对应的屏幕顺序
对应的屏幕顺序15
3、效果展示
保存之后,存表
定期更文,欢迎关注