DBA Data[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;