需求:增强点逻辑ME21N供应商字段筛选时(即F4功能),需对以下红框处5个页签做工厂权限对象限制:F_LFA1_BUK
解决方法如下:
SE38进入程序:LSDSDF03
找到perform:form map_itab_to_record_tab
DATA: LV_VKORG TYPE VKORG.
FIELD-SYMBOLS: <LFS_VKORG> TYPE VKORG,
<LFS_BUKRS> TYPE BUKRS,
<LFS_EWERK> TYPE M_KREDM-EWERK,
<LFS_EKORG> TYPE M_KREDE-EKORG,
<LFS_VSTEL> TYPE VSTEL.
TYPES: BEGIN OF LTY_TVKO,
BUKRS TYPE BUKRS, "公司代码
VKORG TYPE VKORG, "销售组织
END OF LTY_TVKO.
DATA: LT_TVKO TYPE TABLE OF LTY_TVKO.
IF SY-TCODE = 'ME21N'.
LOOP AT SOURCE_TAB.
"工厂 搜索帮助
I = SY-TABIX.
ASSIGN COMPONENT 'BUKRS' OF STRUCTURE SOURCE_TAB TO <LFS_BUKRS>.
IF <LFS_BUKRS> IS ASSIGNED.
AUTHORITY-CHECK OBJECT 'F_LFA1_BUK'
ID 'BUKRS' FIELD <LFS_BUKRS>
ID 'ACTVT' DUMMY.
IF SY-SUBRC NE 0.
DELETE SOURCE_TAB INDEX I.
ENDIF.
ELSE.
ASSIGN COMPONENT 'EKORG' OF STRUCTURE SOURCE_TAB TO <LFS_EKORG>.
IF <LFS_EKORG> IS ASSIGNED.
IF SY-SUBRC EQ 0.
AUTHORITY-CHECK OBJECT 'F_LFA1_BUK'
ID 'EKORG' FIELD <LFS_EKORG>
ID 'ACTVT' DUMMY.
IF SY-SUBRC NE 0.
DELETE SOURCE_TAB INDEX I.
ENDIF.
ENDIF.
ELSE.
ASSIGN COMPONENT 'EWERK' OF STRUCTURE SOURCE_TAB TO <LFS_EWERK>.
IF <LFS_EWERK> IS ASSIGNED.
AUTHORITY-CHECK OBJECT 'F_LFA1_BUK'
ID 'EWERK' FIELD <LFS_EWERK>
ID 'ACTVT' DUMMY.
IF SY-SUBRC EQ 0.
DELETE SOURCE_TAB INDEX I.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.