1 PACKAGE BODY INV_MOBILE_LOGIN_INFO_PVT AS
2 /* $Header: INVMULHB.pls 120.0 2005/05/25 05:42:43 appldev noship $ */
3
4 PROCEDURE LOG_USER_INFO
5 (
6 p_event_type IN number,
7 p_user_id IN number,
8 p_server_machine_name IN varchar2,
9 p_server_port_number IN number,
10 p_client_machine_name IN varchar2,
11 p_client_port_number IN number,
12 p_event_message IN varchar2,
13 X_RETURN_STATUS OUT NOCOPY NUMBER
14 ) IS
15 BEGIN
16
17 ROLLBACK;--Added bug4043847 since we must rollback all uncommited transactions before updating login history
18
19 --p_event_type -> 0: log-in, 1: log-off
20 IF (p_event_type = 0 ) THEN
21
22 --what about, if he is trying to log on with same user but on different
23 --machine/port, In this case it should not delete previous login record
24 UPDATE MTL_MOBILE_LOGIN_HIST
25 SET LOGOFF_DATE = logon_date,
26 event_message = 'MWA SERVER EXCEPTION'
27 WHERE
28 USER_ID = p_user_id
29 AND SERVER_MACHINE_NAME = p_server_machine_name
30 AND SERVER_PORT_NUMBER = p_server_port_number
31 AND LOGOFF_DATE IS NULL;
32
33 INSERT INTO MTL_MOBILE_LOGIN_HIST (
34 USER_ID,
35 LOGON_DATE,
36 SERVER_MACHINE_NAME,
37 SERVER_PORT_NUMBER,
38 CLIENT_MACHINE_NAME,
39 CLIENT_PORT_NUMBER
40 ) VALUES(
41 p_user_id,
42 SYSDATE,
43 substr(p_server_machine_name,1,95),
44 p_server_port_number,
45 substr(p_client_machine_name,1,95),
46 p_client_port_number);
47 ELSE
48
49 UPDATE MTL_MOBILE_LOGIN_HIST SET
50 LOGOFF_DATE = SYSDATE,
51 EVENT_MESSAGE = p_event_message
52 WHERE USER_ID = p_user_id
53 AND SERVER_MACHINE_NAME = substr(p_server_machine_name,1,95)
54 AND SERVER_PORT_NUMBER = p_server_port_number
55 AND LOGOFF_DATE IS NULL;
56 END IF;
57
58 COMMIT;
59 x_return_status:= 0;
60 EXCEPTION
61 WHEN OTHERS THEN
62 X_RETURN_STATUS := -1;
63 END log_user_info;
64
65
66 END INV_MOBILE_LOGIN_INFO_PVT;