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