1
文档说明
本文档通过创建自建表存储增强字段的方式,对物料主数据进行增强,使其能通过前台屏幕维护数据。
2
实现方法
2.1
创建自建表
创建存放增强字段的表,并根据放入物料主数据的相关视图,定义主键。本文档要在物料的工厂下增强字段,所以主键加入工厂
2.2
实现增强函数
运行SPRO,找到路径。或运行事务代码OMT3C
创建函数组
在函数组的0001屏幕中画上增强字段
实现屏幕流
DISABLE_FIELDS
"--------------------@斌将军--------------------
MODULE disable_fields OUTPUT.
IF sy-tcode = 'MM03'.
LOOP AT SCREEN.
'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.
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
.
TO ls_rmmg1 . lv_werks = ls_rmmg1-werks.
ENDIF.
lv_matnr. =
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
效果展示
保存之后,存表