需求场景
1.MM01物料主数据-基本数据2中的行业标准字段只有18位长度,不满足用户需求,MM01创建物料主数据保存时需要增强自定义字段.
2.执行标准字段目前通过IDoc会被发送到SAP ME系统,新增自定义字段后,要将自定义字段发送给ME
整体实现流程
- 物料主数据MM01屏幕增强:添加自定义字段
- 物料主数据保存增强:保存自定义字段数据到MARA表
- IDoc发送物料主数据时(事务代码:BD10)增强:将自定义字段发送到ME
步骤一:MM01屏幕增强
-
先放增强完的效果,便于理解
-
MARA表增强
SE11:给MARA表附加增强结构
结构详情:
-
如果之前没有做过,需要使用TCode:OMT3C 新建函数组
创建完后,系统会自动创建2个屏幕,我们需要再单独创建自己的增强屏幕
我已创建过,这里就直接用SE80打开函数组ZMM_FG_01
-
屏幕属性设置
-
打开屏幕布局,绘制屏幕
增强字段的名称要和SE11的字段名保持一致
双击增强字段可以打开右侧的属性窗口,勾选可滚动时,当字段内容超过可见长度后可以鼠标光标可以继续滚动显示剩余内容 -
屏幕元素清单:
-
屏幕逻辑流:
6.1 MODULE disable_fiele_9000代码:
MODULE disable_fiele_9000 OUTPUT.
IF sy-tcode = 'MM03'."控制MM03时置灰,不能修改
LOOP AT SCREEN.
IF screen-name = 'MARA-ZGY' OR screen-name = 'MARA-ZGG' OR screen-name = 'MARA-ZKZ' OR screen-name = 'MARA-ZGB'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
6.2 MODULE get_data_9000代码:
这里因为新增加的字段是直接显示值字段,不需要另外查表赋值,所以没增加ZGB相关逻辑,有需要的可以增加取非MARA表的值显示到界面上.
MODULE get_data_9000 OUTPUT.
DATA: lv_matnr1 TYPE matnr.
IF sy-tcode = 'MM02' OR sy-tcode = 'M