• SAP用户登录增强示例


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

     
  • 相关阅读:
    C++中的friend函数详细解析(一)
    【图像处理算法】 直方图均衡化
    可降水量W:空中水文学名词初集(4)
    excel\docx
    WebService学习总结
    C#深入学习笔记Lock
    事件Event深入总结
    C#泛型委托与Lambda总结
    SQLServer事务与锁的基础概念总结
    委托Delegate深入总结
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157445.html
Copyright © 2020-2023  润新知