[Home] [Help]
PACKAGE BODY: APPS.EGO_TRACK_EVENTS_PKG
Source
1 PACKAGE BODY EGO_TRACK_EVENTS_PKG AS
2 /* $Header: EGOTEVTB.pls 120.5 2007/08/30 07:42:43 dedatta noship $ */
3
4
5 FUNCTION EGO_LOG_EVENT(p_subscription_guid IN RAW,
6 p_event IN OUT NOCOPY wf_event_t)
7 RETURN VARCHAR2 IS PRAGMA AUTONOMOUS_TRANSACTION;
8 l_param_name VARCHAR2(240);
9 l_param_value VARCHAR2(2000);
10 l_event_name VARCHAR2(2000);
11 l_event_key VARCHAR2(2000);
12 l_err_text VARCHAR2(3000);
13 l_param_list WF_PARAMETER_LIST_T ;
14
15 l_org_id NUMBER;
16 l_item_id NUMBER;
17 l_catalog_id NUMBER;
18 l_category_id NUMBER;
19
20 l_debug_file_dir VARCHAR2(512);
21 l_log_file VARCHAR2(240);
22 l_log_return_status VARCHAR2(1);
23 l_errbuff VARCHAR2(3000);
24 l_error VARCHAR2(30);
25 No_Event_Exception EXCEPTION;
26
27 BEGIN
28
29 IF (p_event IS NULL) THEN
30
31 RAISE No_Event_Exception;
32
33 END IF;
34
35 l_event_name := p_event.getEventName();
36 l_param_list := p_event.getparameterlist;
37
38
39
40 -- Insert the Parameter Values into EGO_BUSINESS_EVENTS_TRACKING Table -----
41
42 IF l_param_list IS NOT NULL THEN
43
44 IF (l_event_name in ('oracle.apps.bom.structure.created', 'oracle.apps.bom.structure.modified',
45 'oracle.apps.bom.structure.deleteSuccess','oracle.apps.bom.component.deleteSuccess')) THEN
46
47 FOR i IN l_param_list.FIRST..l_param_list.LAST LOOP
48
49 l_param_name := l_param_list(i).getname;
50 l_param_value := l_param_list(i).getvalue;
51
52 IF (l_param_name = 'PK1_VALUE') THEN
53 l_item_id := l_param_value;
54 ELSIF (l_param_name = 'PK2_VALUE') THEN
55 l_org_id := l_param_value;
56 END IF;
57
58 END LOOP;
59
60 ELSE
61
62 FOR i IN l_param_list.FIRST..l_param_list.LAST LOOP
63
64 l_param_name := l_param_list(i).getname;
65 l_param_value := l_param_list(i).getvalue;
66
67 IF ((l_param_name = 'INVENTORY_ITEM_ID') OR (l_param_name = 'InventoryItemId') ) THEN
68 l_item_id := l_param_value;
69 ELSIF ((l_param_name = 'ORGANIZATION_ID') OR (l_param_name = 'OrganizationId') ) THEN
70 l_org_id := l_param_value;
71 ELSIF ((l_param_name = 'CATEGORY_SET_ID') OR (l_param_name = 'CATALOG_ID')) THEN
72 l_catalog_id := l_param_value;
73 ELSIF (l_param_name = 'CATEGORY_ID') THEN
74 l_category_id := l_param_value;
75 END IF;
76 END LOOP;
77
78 END IF;
79 END IF;
80
81 INSERT INTO EGO_BUSINESS_EVENTS_TRACKING (sequence_id, invoke_date, business_event_name, event_payload, inventory_item_id, organization_id, catalog_id, category_id)
82 VALUES (EGO_EVENT_SEQ.nextval,sysdate,l_event_name,p_event,l_item_id,l_org_id,l_catalog_id,l_category_id);
83
84 COMMIT;
85
86 RETURN 'SUCCESS';
87
88 EXCEPTION
89
90 WHEN No_Event_Exception THEN
91
92 RETURN 'ERROR: WF_EVENT_MSG IS NULL';
93
94 WHEN OTHERS THEN
95 l_error := SQLERRM;
96 l_err_text := 'Error : '||TO_CHAR(SQLCODE)||'---'||l_error;
97 -- Error_Handler.Add_Error_Message( p_message_text => l_err_text, p_message_type => 'E');
98 -- Error_Handler.Close_Debug_Session;
99 RETURN l_error;
100
101 END EGO_LOG_EVENT;
102
103 END EGO_TRACK_EVENTS_PKG;