Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153474
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 219
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-15 19:14
文章分类

全部博文(26)

文章存档

2017年(1)

2016年(1)

2015年(24)

我的朋友

分类: Web开发

2015-09-18 15:29:49

有时候需要在用户登录时sap时触发一特定程序去执行,sap提供了两种方法t.

1) 使用函数 'NAVIGATION_SET_START_TCODE' ,用该函数可以设置用户和一个TCODE,该TCODE当用户登录sap系统后就可以自动执行。sap对应的程序:ADMIN_SET_START_TRANSACTION_FO

2)使用用户出口

该用户出口的模块名称是:SUSR0001,你可以在该单元里增加你的代码进行相应的控制。.


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

阅读(2495) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~