REPORT YSESSCHK NO STANDARD PAGE HEADING. * This porgram limits the number of login sessions of a given user * in a certain client * It runs from user exit SUSR0001 * n-1 is the number of concurrent sessions allwed TABLES: UINFO. DATA: N TYPE I VALUE 3. "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. 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.