近期在做一个功能要直接展示信息记录 结果CALL TR 的时候发现信息记录里面还少了个 记录类型 结果在下面的类中发现 其实ME13上还隐藏了一个PID
CL_ENVIRONMENT_FUNCTIONS_MM
这个类是采购订单 环境 选项的类
其中有信息记录选项 DISPLAY_INFO_RECORD
在这里面有FM
CALL FUNCTION 'MMPUR_INFO_RECORD_DISPLAY'
STARTING NEW TASK lv_guid
EXPORTING
im_infnr = l_infnr
im_ekorg = l_ekorg
im_werks = l_werks
im_pstyp = l_pstyp
EXCEPTIONS
system_failure = 1 MESSAGE lv_error
communication_failure = 2 MESSAGE lv_error
OTHERS = 3.
这个FM 是这样的
DATA: tcod LIKE sy-tcode VALUE 'ME13'. "930588
SET PARAMETER ID 'LIF' FIELD im_lifnr.
SET PARAMETER ID 'MAT' FIELD im_matnr.
SET PARAMETER ID 'INF' FIELD im_infnr.
SET PARAMETER ID 'EKO' FIELD im_ekorg.
SET PARAMETER ID 'WRK' FIELD im_werks.
IF im_pstyp EQ pstyp-lohn.
SET PARAMETER ID 'ESO' FIELD esokz-lohn.
ELSEIF im_pstyp EQ esokz-pipe. "1498831
SET PARAMETER ID 'ESO' FIELD esokz-pipe. "1498831
ELSEIF im_pstyp EQ pstyp-kons.
SET PARAMETER ID 'ESO' FIELD esokz-konsi.
ELSEIF im_pstyp EQ esokz-charg. "scc-jp
SET PARAMETER ID 'ESO' FIELD esokz-charg. "scc-jp
ELSE.
SET PARAMETER ID 'ESO' FIELD esokz-norm.
ENDIF.
IF im_ekorg NE space.
SET PARAMETER ID 'EIB' FIELD 'E'.
ELSE.
SET PARAMETER ID 'EIB' FIELD space.
ENDIF.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE' "930588
EXPORTING
tcode = tcod
EXCEPTIONS
ok = 0
not_ok = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE e172(00) WITH tcod.
ENDIF.
CALL TRANSACTION 'ME13' AND SKIP FIRST SCREEN.
其中 SET PARAMETER ID 'ESO' FIELD esokz-lohn. 这个是其他地方所没有的
这个ESO 就是类别 我ME13也看不到
后续就解决问题了