各视图自定义字段增强大概步骤,可以参考“SAP 物料主数据增强自定义字段 - 基本数据2 视图”
https://blog.csdn.net/wangjolly/article/details/82496167
以 销售组织数据1 视图 为例,介绍几个不同点
创建完成函数组ZMGD1 里面对应屏幕001的PBO和PAI的MODULE程序
基本数据2 视图中MODULE GET_DATA程序如下
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
TABLES:ZPARTAPPEND.
DATA: 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.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT
如果在 销售组织数据1 视图 增强使用类似的方法,导致除了物料号可以通过取内存的方法正常获取,其他字段的值无法获取
销售组织PID
分销渠道PID
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
TABLES:ZPARTAPPEND.
IF SY-TCODE = 'MM02' OR SY-TCODE = 'MM03'.
GET PARAMETER ID 'MAT' FIELD DATA(W_MATNR).
GET PARAMETER ID 'VKO' FIELD DATA(W_vkorg).
GET PARAMETER ID 'VTW' FIELD DATA(W_vtweg).
SELECT SINGLE * FROM ZPARTAPPEND WHERE MATNR = W_MATNR
AND VKORG = W_VKORG
AND VTWEG = W_VTWEG.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT
测试发现,W_VKORG /W_VTWEG无法获取输入的值
改进:
图片中可以发现,对应的程序是SAPLMGMM 工作区RMMG1,通过跨程序读取数据的方式成功解决问题
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
TABLES:ZPARTAPPEND.
IF SY-TCODE = 'MM02' OR SY-TCODE = 'MM03'.
ASSIGN ('(SAPLMGMM)RMMG1') TO FIELD-SYMBOL(<fs_rmmg1>).
CHECK <fs_rmmg1> IS ASSIGNED.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <fs_rmmg1> TO FIELD-SYMBOL(<fd_matnr>).
ASSIGN COMPONENT 'VKORG' OF STRUCTURE <fs_rmmg1> TO FIELD-SYMBOL(<fd_vkorg>).
ASSIGN COMPONENT 'VTWEG' OF STRUCTURE <fs_rmmg1> TO FIELD-SYMBOL(<fd_vtweg>).
CHECK <fd_matnr> IS ASSIGNED AND <fd_vkorg> IS ASSIGNED AND <fd_vtweg> IS ASSIGNED.
SELECT SINGLE * FROM ZPARTAPPEND WHERE MATNR = <fd_matnr>
AND VKORG = <fd_vkorg>
AND VTWEG = <fd_vtweg>.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT