SAP用户登录增强示例

来源:互联网 发布:linux 删除svn版本库 编辑:程序博客网 时间:2024/06/01 10:41

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

 
原创粉丝点击