欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【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.

 

相关标签: SAP