[SAP Audit] 라이센스(License) 관리하기 - 중복로그인(MultiLogon) 제한
SAP를 운영하다 보면 빡빡한 라이센스(License) 정책으로 인해 골치가 조금 아픕니다.
도입 시점에서는 별 문제 없다가도, 불시에 라이센스 검사(Audit)가 나와서 추가 구매를 해야한다고 하니까요.
게다가 비용도 만만치 않습니다ㅜ
듀얼 모니터의 추세로 인해 창을 여러개 띄워놓고 작업을 하게 되는데, 하나의 로그인으로는 5개의 창 밖에는
띄울 수 없는 구조도 중복 로그인을 하게 만드는 이유가 됩니다.
물론, 라이선스 계약(1 User / 1 License)은 반드시 준수해야 합니다.
라이선스 계약이 문제가 될 것이라고 판단 된다면 도입을 보류하던지 협상을 통해 원하는 결과를
이끌어 내야 합니다. 계약할 때는 몰랐다는 식의 대응은 기업의 신뢰도를 손상시키기 때문이죠.
여기서 어느 정도 유두리(?)를 SAP에서 인정해줘야 한다고 주장하는 것은
1 User / 1 License 정책 안에서 1 User가 여러 작업을 할 수 있도록 해달라는 점 입니다.
5개 밖에 띄울 수 없는 창의 개수를 늘려 주던지, 동일 IP에 대한 복수의 로그인을 인정해 줘야 한다는거죠 : )
각설하고, 오늘은 멀티로그인을 허용한 기업에서 최대 로그인을 제한하는 방안을 소개하고자 합니다.
로그인 프로세스 안에 Exit을 걸어두고 다음과 같은 기능을 하게 만드는 것이죠
▶ 동시접속 4개 이상을 초과할 경우 강제 로그아웃 |
▶ Function 그룹 : XUSR |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
*&---------------------------------------------------------------------*
*& Include ZXUSRU01
*&---------------------------------------------------------------------*
TABLES: UINFO.
DATA: N TYPE I VALUE 5 . "<- 최대 허용 중복 로그인 수치
DATA: OPCODE TYPE X VALUE 2 , I TYPE I, A( 60 ), N_C( 3 ), B( 250 ), c( 250 ), TEMP_A( 250 ),
TEMP_B( 250 ), TEMP_C( 250 ),TEMP_D( 250 ).
DATA: I_n TYPE I VALUE 4 .
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.
DATA: GT_USR41 LIKE USR41 OCCURS 0 WITH HEADER LINE.
* 예외처리할 ID있으면 아래에 표시
IF SY-UNAME <> 'ADMIN'
AND SY-UNAME <> 'SAP*'
AND SY-UNAME <> 'INTERFACE'
AND SY-UNAME <> 'DDIC'
AND SY-UNAME <> 'DDID'
AND SY-UNAME <> 'ALEREMOTE'
AND SY-UNAME <> 'BWREMOTE'
AND SY-UNAME <> 'IF_BIZTALK'
AND SY-UNAME <> 'ALEREMOTE'
AND SY-UNAME <> 'RSDUSER'
AND SY-UNAME <> 'SAPCPIC'
AND SY-UNAME <> 'TMSADM' .
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.
SELECT *
INTO TABLE GT_USR41
FROM USR41
WHERE BNAME = SY-UNAME.
I_n = 0 .
TEMP_C = '' .
TEMP_D = '' .
LOOP AT GT_USR41.
TEMP_A = GT_USR41-TERMINAL.
TEMP_B = ' / ' .
I_n = I_n + 1 .
IF I_n < 3 .
CONCATENATE TEMP_A TEMP_B TEMP_C INTO TEMP_C.
ELSEIF I_N < 5 .
CONCATENATE TEMP_A TEMP_B TEMP_D INTO TEMP_D.
ENDIF.
ENDLOOP.
IF I >= N.
N_C = I - 1 .
CONCATENATE '' SY-UNAME ' 계정이 현재 ' N_C ' 개가 로그인 되어 있습니다' INTO A.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = 'SAP ID 정책 위반 안내'
TXT1 = A
TXT2 = '중복 로그인 정책에 위반되어 종료 합니다, 접속된 PC명 : '
TXT3 = TEMP_C
TXT4 = TEMP_D.
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.
|
db : usr41_mld
'ERP-SAP > ABAP' 카테고리의 다른 글
<ABAP> Data Type을 가져오는 Class (read Data Type, Read type) (0) | 2013.07.08 |
---|---|
<ABAP> T-code 유저 Role 부여하기 (0) | 2013.07.05 |
<ABAP> 숫자 금액을 한글로 변환 -> 1320원 ->일천삼백이십원 (0) | 2013.07.02 |
<ABAP> Open dataset, delete dataset sap 서버에서 파일 가져올 때, 삭제할때 (0) | 2013.05.28 |
<ABAP> OPEN DATASET 한글 깨짐 문제 (펌뱅킹, LG U+) (0) | 2013.05.16 |