【SAP】ABAP开发——VIEW_MAINTENANCE_CALL维护表视图
程序员文章站
2022-05-18 08:00:47
...
ABAP开发中可调用VIEW_MAINTENANCE_CALL函数来维护表视图。
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
ACTION = 'S' "S = Display U = Change T=Transport
SHOW_SELECTION_POPUP = 'X' "是否显示选择画面
VIEW_NAME = ' ' "视图名
NO_WARNING_FOR_CLIENTINDEP = ' ' "跨客户端是否显示警告
VARIANT_FOR_SELECTION = ' ' "变式名
CHECK_DDIC_MAINFLAG = ' ' "查看是否为可维护对象
EXCEPTIONS
CLIENT_REFERENCE = 1
FOREIGN_LOCK = 2
INVALID_ACTION = 3
NO_CLIENTINDEPENDENT_AUTH = 4
NO_DATABASE_FUNCTION = 5
NO_EDITOR_FUNCTION = 6
NO_SHOW_AUTH = 7
NO_TVDIR_ENTRY = 8
NO_UPD_AUTH = 9
ONLY_SHOW_ALLOWED = 10
SYSTEM_FAILURE = 11
UNKNOWN_FIELD_IN_DBA_SELLIST = 12
VIEW_NOT_FOUND = 13
MAINTENANCE_PROHIBITED = 14
OTHERS = 15.
示例1:
WHEN 'FC02'. "期望供应商&生产工厂&销售范围配置表
SEARCH sy-uname FOR 'IT'. "只有IT 的权限可以修改
IF sy-subrc = 0.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'U' " S = Display U = Change T = Transport
view_name = 'ZMM122'
EXCEPTIONS
client_reference = 1.
ELSE.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'S'
view_name = 'ZMM122'
EXCEPTIONS
client_reference = 1.
ENDIF.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
但是在示例1中,action为 ‘S’ 好像也可以进行维护。若要让视图仅可查看而不可维护,可如示例2。
DATA ts_fc LIKE vimexclfun.
DATA tt_fc TYPE TABLE OF vimexclfun.
ts_fc-function = 'AEND'.
APPEND ts_fc TO tt_fc.
WHEN 'FC04'. "销售视图
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'S'
view_name = 'ZMM087_1'
TABLES
excl_cua_funct = tt_fc
EXCEPTIONS
client_reference = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.