[Home] [Help]
PACKAGE BODY: APPS.FND_JAF_LOG_EVENT_PKG
Source
1 PACKAGE BODY FND_JAF_LOG_EVENT_PKG AS
2 /* $Header: FNDLJAFB.pls 120.0.12020000.9 2012/10/04 13:15:20 dbowles noship $ */
3
4 FUNCTION getCurrentTimeInMillis
5 RETURN NUMBER
6 IS
7 l_timestamp_diff INTERVAL DAY (9) TO SECOND (6);
8 l_day_value NUMBER;
9 l_hour_value NUMBER;
10 l_minute_value NUMBER;
11 l_second_value NUMBER;
12 l_timestamp_diff_number NUMBER;
13 l_err_code NUMBER(38);
14 l_err_mesg VARCHAR2(250);
15 BEGIN
16 l_timestamp_diff := SYSTIMESTAMP - TO_TIMESTAMP('1970-01-01 00:00:00.000000', 'YYYY-MM-DD HH24:MI:SS.FF');
17 l_day_value := extract(DAY FROM l_timestamp_diff);
18 l_hour_value := extract(hour FROM l_timestamp_diff);
19 l_minute_value := extract(minute FROM l_timestamp_diff);
20 l_second_value := extract(second FROM l_timestamp_diff);
21 l_timestamp_diff_number := ROUND((l_day_value * 86400 + l_hour_value * 3600 + l_minute_value * 60 + l_second_value) * 1000);
22 RETURN l_timestamp_diff_number;
23 EXCEPTION
24 WHEN OTHERS THEN
25 l_err_code := SQLCODE;
26 l_err_mesg := SQLERRM;
27 fnd_message.SET_NAME('FND', 'EXCEPTION in Function FND_JAF_LOG_EVENT_PKG.getCurrentTimeInMillis: SQLCODE=' || l_err_code || ' , SQLERRM=' || l_err_mesg);
28 if (FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
29 fnd_log.message(FND_LOG.LEVEL_ERROR, 'fnd.plsql.FND_JAF_LOG_EVENT_PKG.getCurrentTimeInMillis', true);
30 end if;
31 END getCurrentTimeInMillis;
32
33
34 PROCEDURE logEventToDB(
35 p_request_id IN VARCHAR2,
36 p_event_name IN VARCHAR2,
37 p_event_type IN VARCHAR2,
38 p_prev_event_payload IN VARCHAR2,
39 p_grand_prev_event_payload IN VARCHAR2)
40 IS
41 PRAGMA AUTONOMOUS_TRANSACTION;
42 CURSOR fnd_jaf_event_log_cur
43 IS
44 SELECT *
45 FROM FND_JAF_EVENT_LOG
46 WHERE start_timestamp =
47 (SELECT NVL(MAX(start_timestamp),0)
48 FROM FND_JAF_EVENT_LOG
49 WHERE request_id = p_request_id
50 AND event_name = p_event_name
51 AND event_type = 'SEND'
52 ) FOR UPDATE;
53 l_timestamp_value NUMBER;
54 fnd_jaf_event_log_rec FND_JAF_EVENT_LOG%ROWTYPE;
55 l_err_code NUMBER(38);
56 l_err_mesg VARCHAR2(250);
57 BEGIN
58 OPEN fnd_jaf_event_log_cur;
59 FETCH fnd_jaf_event_log_cur INTO fnd_jaf_event_log_rec;
60 l_timestamp_value := getCurrentTimeInMillis();
61 IF fnd_jaf_event_log_cur%NOTFOUND THEN
62 -- insert to event log. event_type should be 'SEND' here, and timestampValue should be the start timestamp of the event
63 INSERT
64 INTO FND_JAF_EVENT_LOG
65 (
66 request_id,
67 event_name,
68 event_type,
69 start_timestamp,
70 prev_event_name,
71 grand_prev_event_name
72 )
73 VALUES
74 (
75 p_request_id,
76 p_event_name,
77 p_event_type,
78 l_timestamp_value,
79 p_prev_event_payload,
80 p_grand_prev_event_payload
81 );
82 COMMIT;
83 ELSE
84 -- update event log. event_type should be 'RECEIVE' here, and timestampValue should be the end timestamp of the event
85 UPDATE FND_JAF_EVENT_LOG
86 SET end_timestamp = l_timestamp_value,
87 event_type = p_event_type
88 WHERE CURRENT OF fnd_jaf_event_log_cur;
89 COMMIT;
90 END IF;
91 CLOSE fnd_jaf_event_log_cur;
92 EXCEPTION
93 WHEN OTHERS THEN
94 l_err_code := SQLCODE;
95 l_err_mesg := SQLERRM;
96 ROLLBACK;
97 fnd_message.SET_NAME('FND', 'EXCEPTION in Procedure FND_JAF_LOG_EVENT_PKG.logEventToDB: SQLCODE=' || l_err_code || ' , SQLERRM=' || l_err_mesg);
98 if (FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
99 fnd_log.message(FND_LOG.LEVEL_ERROR, 'fnd.plsql.FND_JAF_LOG_EVENT_PKG.logEventToDB', true);
100 end if;
101 END logEventToDB;
102 END FND_JAF_LOG_EVENT_PKG;