SAP 用户登录增强点SUSR0001

SAP用户登录增强,对用户GUI登录有效,但对RFC访问登录(例如JCO)无效。增强类型是CMOD/SMOD,增强出口(exit)是SUSR0001

一、增强操作步骤

  1. tcode smod,”加强” 输入SUSR0001,”对象组件”选择”组件”,点击“修改”。
  2. 双击功能模块名”EXIT_SAPLSUSF_001″
  3. FUNCTION EXIT_SAPLSUSF_001中已有代码”INCLUDE ZXUSRU01″.在se80下,创建INCLUDE ZXUSRU01。
  4. 在ZXUSRU01中输入需要的代码
  5. 激活增强。在tcode smod,”加强” 输入SUSR0001,点击”测试”.选择EXIT_SAPLSUSF_001,激活。

二、增强登录数据获取

在ZXUSRU01中可输入需要的代码,控制登录动作。常见数据获取:
当前登录用户的用户名:SY-UNAME
当前登录用户的IP:CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_IP_ADDRESS
当前的全部登录:TABLE UINFO

三、登录增强代码示例

以下代码完成用户IP限定,即只允许用户TESTUSER从IP192.168.0.1登录,否则提示没有权限并中断登录。
DATA: IP TYPE STRING,
COUNT TYPE I.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_IP_ADDRESS
RECEIVING
IP_ADDRESS = IP.

IF SY-UNAME = ‘TESTUSER’ AND IP <> ‘192.168.0.1′.
MESSAGE E157(00).
ENDIF.

四、注意

    1. 此增强只能拦截GUI登录,不能拦截RFC登录。我还没找到RFC登录的Exit?谁知道请指教一二。
    2. 增强只有激活后,才生效。操作见前面的步骤5.
    3. 建立ZXUSRU01后,可以直接双击FUNCTION EXIT_SAPLSUSF_001中的”INCLUDE ZXUSRU01″进入编辑

举例代码:

* Transaction CMOD -> Utiliteis -> SAP Enhancements 
* Exit Name SUSR0001 
* Double click EXIT_SAPLSUSF_001 
* Double click ZXUSRU01 
* Insert -> include zsesschk. 
* 
* zsesschk limits the number of login sessions per user 
* in a certain client 
* It runs from user exit SUSR0001 after the SAP Login 
* n-1 is the number of concurrent sessions allowed

TABLES: UINFO. 
DATA: N TYPE I VALUE 2.              "Upper limit of login sessions 
DATA: OPCODE TYPE X VALUE 2, I TYPE I, A(60). 
DATA: BEGIN OF BDC_TAB1 OCCURS 5. 
        INCLUDE STRUCTURE BDCDATA. 
DATA: END OF BDC_TAB1.

DATA: BEGIN OF USR_TABL OCCURS 10. 
        INCLUDE STRUCTURE UINFO. 
DATA: END OF USR_TABL.

* Exclude Limit login by Users 
IF  SY-UNAME <> 'XXX' 
AND SY-UNAME <> 'XXX'.

CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE 
  ID 'TAB' FIELD USR_TABL-*SYS*.

LOOP AT USR_TABL. 
  IF SY-UNAME = USR_TABL-BNAME AND SY-MANDT = USR_TABL-MANDT. 
    I = I + 1. 
  ENDIF.

ENDLOOP.

IF I >= N.

A = 'You have already '. 
A+17(2) = I - 1. 
A+19(25) = 'login sessions in client '. 
A+44(4) = SY-MANDT.

  CALL FUNCTION 'POPUP_TO_INFORM' 
       EXPORTING 
            TITEL = 'UNSUCCESSFUL LOGIN' 
            TXT1  = A 
            TXT2  = 'You are not allowed to log in'.

  MOVE: 'SAPMSSY0' TO BDC_TAB1-PROGRAM, 
          '120' TO BDC_TAB1-DYNPRO, 
          'X' TO BDC_TAB1-DYNBEGIN. 
  APPEND BDC_TAB1.CLEAR BDC_TAB1. 
  MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM, 
         '/nex' TO BDC_TAB1-FVAL. 
  APPEND BDC_TAB1.CLEAR BDC_TAB1.

  CALL TRANSACTION 'SM04' USING BDC_TAB1 MODE 'N'.

ENDIF. 
ENDIF.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值