有时候需要在用户登录时sap时触发一特定程序去执行,sap提供了两种方法t.
1) 使用函数 'NAVIGATION_SET_START_TCODE' ,用该函数可以设置用户和一个TCODE,该TCODE当用户登录sap系统后就可以自动执行。sap对应的程序:ADMIN_SET_START_TRANSACTION_FO
这个相对比较简单实用。
同时在客户端主界面上也可以设置运行什么t-code这个更加简单,同时可以设置是否显示技术名称
2)使用用户出口
该用户出口的模块名称是:SUSR0001,你可以在该单元里增加你的代码进行相应的控制。.
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.