数据表维护扩展

来源:互联网 发布:dior fix it 遮瑕 编辑:程序博客网 时间:2024/06/07 19:28

数据表维护是单纯的维护数据功能,要是给用户赋予权限的话只能用T-CODE LEVEL控制。

如果一个维护表里有 工厂,物料,物料名 (简单的举例子),

而我们要根据SAP ID来判断这个人有没有全校修改特定工厂的数据。


比如ABAP01用户只能修改1000工厂的数据。

ABAP02只能修改2000工厂的数据。

表如下:



这时候我们可以用 VIEW_MAINTENANCE_CALL 这个函数来实现这个功能。

首先生成一个程序 ZDEV005,然后在此程序里我们调用VIEW_MAINTENANCE_CALL  这个函数。


REPORT  ZDEV005.

DATA:GT_VIMSELLIST TYPE TABLE OF VIMSELLIST WITH HEADER LINE.
DATA:GV_WERKS TYPE WERKS_D.

CASE SY-UNAME.
  WHEN 'ABAP01'.
    GV_WERKS '1000'.
  WHEN 'ABAP02'.
    GV_WERKS '2000'.
ENDCASE.


GT_VIMSELLIST-VIEWFIELD 'WERKS'.
GT_VIMSELLIST-OPERATOR  'EQ'.
GT_VIMSELLIST-VALUE     GV_WERKS.

APPEND GT_VIMSELLIST.

CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
  EXPORTING
    ACTION                'U'
    VIEW_NAME             'ZDEV001T'
    COMPLEX_SELCONDS_USED 'X'
  TABLES
    DBA_SELLIST           GT_VIMSELLIST.


用ABAP01登陆的时候:



用ABAP02登陆的时候: