SAP ABAP ZBA_R005获得事务代码分段,完成关键用户参数权限

ERP项目有这样一个场景:

我们需要在SAP_ALL全部的授权中,只拿掉BASIS相关和SPRO后台配置入口的权限,剩下99%的权限给关键用户使用。

我们需要在10万个事务代码中,把BASIS的几个TC和SPRO按分段剔除出来。

下面程序就帮助得到剔除后的TC分段。这个神操作就是我的BASIS终极授权。

剔除的事务代码:

SCC1

SCC4

SCC7

SCC8

SCC9

SPRO

PFCG

SU01 

SU01D 

SU01_NAV 

SU01_OLD 

SU02 

SU03 

SU05_OLD 

SU1 

SU10 

SU10_OLD 

SU12 

SU2 

SU20 

SU20_BTCH 

SU21 

SU22 

SU22_HISTORY 

SU22_OLD 

SU24 

SU24_HISTORY 

SU24_OLD 

SU24_S_TABU_NAM 

SU25 

SU25_2A_SEL 

SU25_OLD 

SU26

SE09

SE10

SE11

SE15

SE16

SE16N

SE18

SE19

SE20

SE21

SE24

SE30

SE32

SE37

SE38

SE39

SE80

程序运行后得到分段:

我们从SAP_ALL参数文件,拷贝而来的新的keyuser复合参数文件的构成:

1、拿掉了标准的&_SAP_ALL_22这一个。(S/4 HANA 1809这版,S-TCODE对象藏在这个里面)

2、按&_SAP_ALL_22的170个权限对象,我们新建一个角色ZSAP_ALL22,加入这170个对象

3、对其中的S-TCODE对象,是用户的事务代码,我们填入程序算出的分段。

4、角色ZSAP_ALL22生成参数文件DV300004加到ZKEYUSER复合参数文件中。

5、把ZKEYUSER参数文件加给用户,完成一个关键用户的权限授权。


********************************************************************
* 获得事物代码分段
* 功能:获得,去除不需要的事物代码后的事物代码分段,BASIS授权使用
* 作者:刘欣  Power By James All Rights Reserved.
* 2014-6-28 潍柴项目
********************************************************************

REPORT ZBA_R005 .

*定义str_code结构
TYPES : BEGIN OF str_code,
        item LIKE agr_tcodes-tcode,
        END OF str_code.

*定义str_code2结构
TYPES : BEGIN OF str_code2,
        low LIKE agr_tcodes-tcode,
        high LIKE agr_tcodes-tcode,
        END OF str_code2.

*定义big内表
DATA big TYPE STANDARD TABLE OF str_code WITH HEADER LINE .
*定义min内表
DATA min TYPE STANDARD TABLE OF str_code WITH HEADER LINE .

*定义out内表
DATA out TYPE STANDARD TABLE OF str_code2 WITH HEADER LINE .

*定义用户输入的不好的事物代码
DATA divcode LIKE agr_tcodes-tcode.




*//--------------定义SELECTION SCREEN----------------------
SELECTION-SCREEN BEGIN OF BLOCK block_body WITH FRAME.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN COMMENT /1(57) t1 .
SELECTION-SCREEN SKIP 2.
SELECT-OPTIONS: div_itab FOR divcode NO INTERVALS.
SELECTION-SCREEN END OF BLOCK block_body.




*//--------------INITIALIZATION------------------
INITIALIZATION.

 t1 = '获得事物代码分段报表'.







*//-------------AT SELECTION-SCREEN--------------------------

AT SELECTION-SCREEN.



START-OF-SELECTION.

*取出11万个事物代码
SELECT TCODE INTO TABLE big FROM TSTC.

Sort  BIG BY  ITEM. “2019.11.21 宝汽项目添加

*按照坏代码换成haha
LOOP AT div_itab.

    LOOP AT big.

      IF big-item EQ div_itab-LOW.
         big-item = 'haha'.
         MODIFY big .

      ENDIF.
    ENDLOOP.

ENDLOOP.


*按haha为界分段,取每小段的第一个和最后一个代码。

LOOP AT big.


  IF big-item <> 'haha'.

     APPEND big-item to min.

      AT LAST.

       READ TABLE min INTO out-low INDEX 1.
       READ TABLE min INTO out-high INDEX lines( min ).
       APPEND out.
       CLEAR min[].

      ENDAT.

  ELSE.


    AT END OF item.
       READ TABLE min INTO out-low INDEX 1.
       READ TABLE min INTO out-high INDEX lines( min ).
       APPEND out.
       CLEAR min[].
    ENDAT.

  ENDIF.

ENDLOOP.





*输出结果

perform listshow.

end-OF-SELECTION.




*//-------form listshow-----------------

form listshow.
  DATA:
      G_REPID TYPE SY-REPID,
      IT_EVENTS TYPE SLIS_T_EVENT,
      IT_FIELD TYPE SLIS_T_FIELDCAT_ALV,
      WA_FIELD TYPE SLIS_FIELDCAT_ALV,
      IT_SORT TYPE SLIS_T_SORTINFO_ALV.
*
*G_REPID = SY-REPID.

********宏定义.
  DEFINE ADD_FIELD.
    WA_FIELD-FIELDNAME = &1.
    WA_FIELD-REPTEXT_DDIC = &2.
    WA_FIELD-NO_ZERO = 'X'.
    WA_FIELD-outputlen = 25. "列宽
    APPEND WA_FIELD TO IT_FIELD.
  END-OF-DEFINITION.

  ADD_FIELD 'low'  '分段下限'. "注意这里low要同内表的字段一致
  ADD_FIELD 'high'  '分段上限'.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM = G_REPID
            I_BACKGROUND_ID   = 'ALV_BACKGROUND'
*            I_GRID_TITLE      = ' 用户权限查询'
            IT_FIELDCAT        = IT_FIELD
*            IS_LAYOUT          = GS_LAYOUT
*            IT_SORT            = IT_SORT
            I_SAVE             = 'A'
            IT_EVENTS          = IT_EVENTS[]
       TABLES
            T_OUTTAB           = out
       EXCEPTIONS
            PROGRAM_ERROR = 1
            OTHERS        = 2.

endform.
发布了249 篇原创文章 · 获赞 85 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/ot512csdn/article/details/103185533
今日推荐