DBA Data[Home] [Help]

PACKAGE BODY: APPS.PVX_EVENT_PKG

Source


1 PACKAGE BODY pvx_event_pkg AS
2 /*$Header: pvxbuevb.pls 115.1 2003/09/01 06:48:55 nramu noship $ */
3 
4  FUNCTION Item_Key(p_event_name  IN VARCHAR2) RETURN VARCHAR2
5  -----------------------------------------------------
6  -- Return Item_Key according to Hz Event to be raised
7  -- Item_Key is <Event_Name>-pvwfapp_s.nextval
8  -----------------------------------------------------
9  IS
10   RetKey VARCHAR2(240);
11  BEGIN
12   SELECT p_event_name || pv_wf_items_s.nextval INTO RetKey FROM DUAL;
13   RETURN RetKey;
14  END Item_Key;
15 
16  FUNCTION Check_Event(p_event_name IN VARCHAR2) RETURN VARCHAR2
17  -----------------------------------------------
18  -- Return event name if the entered event exist
19  -- Otherwise return NOTFOUND
20  -----------------------------------------------
21  IS
22    CURSOR c_event_name IS
23      SELECT name
24        FROM wf_events
25        WHERE name = p_event_name;
26    RetEvent VARCHAR2(240);
27  BEGIN
28    OPEN c_event_name;
29    FETCH c_event_name INTO RetEvent;
30    IF c_event_name%NOTFOUND THEN
31      RetEvent := 'NOTFOUND';
32    END IF;
33    CLOSE c_event_name;
34    RETURN RetEvent;
35  END Check_Event;
36 
37  PROCEDURE AddParamEnvToList
38 ------------------------------------------------------
39 -- Add Application-Context parameter to the enter list
40 ------------------------------------------------------
41 ( x_list              IN OUT NOCOPY  WF_PARAMETER_LIST_T,
42   p_user_id           IN VARCHAR2  DEFAULT NULL,
43   p_resp_id           IN VARCHAR2  DEFAULT NULL,
44   p_resp_appl_id      IN VARCHAR2  DEFAULT NULL,
45   p_security_group_id IN VARCHAR2  DEFAULT NULL,
46   p_org_id            IN VARCHAR2  DEFAULT NULL)
47  IS
48    l_user_id           VARCHAR2(255) := p_user_id;
49    l_resp_appl_id      VARCHAR2(255) := p_resp_appl_id;
50    l_resp_id           VARCHAR2(255) := p_resp_id;
51    l_security_group_id VARCHAR2(255) := p_security_group_id;
52    l_org_id            VARCHAR2(255) := p_org_id;
53    l_param             WF_PARAMETER_T;
54    l_rang              NUMBER;
55  BEGIN
56    l_rang :=  0;
57 
58    IF l_user_id IS NULL THEN
59      l_user_id := fnd_profile.value( 'USER_ID');
60    END IF;
61 
62    l_param := WF_PARAMETER_T( NULL, NULL );
63    -- fill the parameters list
64    x_list.extend;
65    l_param.SetName( 'USER_ID' );
66    l_param.SetValue( l_user_id);
67    l_rang  := l_rang + 1;
68    x_list(l_rang) := l_param;
69 
70    IF l_resp_id IS NULL THEN
71       l_resp_id := fnd_profile.value( 'RESP_ID');
72    END IF;
73 
74    l_param := WF_PARAMETER_T( NULL, NULL );
75    -- fill the parameters list
76    x_list.extend;
77    l_param.SetName( 'RESP_ID' );
78    l_param.SetValue( l_resp_id );
79    l_rang  := l_rang + 1;
80    x_list(l_rang) := l_param;
81 
82    IF l_resp_appl_id IS NULL THEN
83       l_resp_appl_id := fnd_profile.value( 'RESP_APPL_ID');
84    END IF;
85 
86    l_param := WF_PARAMETER_T( NULL, NULL );
87    -- fill the parameters list
88    x_list.extend;
89    l_param.SetName( 'RESP_APPL_ID' );
90    l_param.SetValue( l_resp_appl_id );
91    l_rang  := l_rang + 1;
92    x_list(l_rang) := l_param;
93 
94    IF  l_security_group_id IS NULL THEN
95        l_security_group_id := fnd_profile.value( 'SECURITY_GROUP_ID');
96    END IF;
97    l_param := WF_PARAMETER_T( NULL, NULL );
98    -- fill the parameters list
99    x_list.extend;
100    l_param.SetName( 'SECURITY_GROUP_ID' );
101    l_param.SetValue( l_security_group_id );
102    l_rang  := l_rang + 1;
103    x_list(l_rang) := l_param;
104 
105    IF l_org_id IS NULL THEN
106       l_org_id :=  fnd_profile.value( 'ORG_ID');
107    END IF;
108 
109    l_param := WF_PARAMETER_T( NULL, NULL );
110    -- fill the parameters list
111    x_list.extend;
112    l_param.SetName( 'ORG_ID' );
113    l_param.SetValue(l_org_id );
114    l_rang  := l_rang + 1;
115    x_list(l_rang) := l_param;
116 
117  END AddParamEnvToList;
118 
119  PROCEDURE Raise_Event
120  ----------------------------------------------
121  -- Check if Event exist
122  -- Get the item_key
123  -- Raise event
124  ----------------------------------------------
125  (p_event_name          IN   VARCHAR2,
126   p_event_key           IN   VARCHAR2,
127   p_data                IN   CLOB DEFAULT NULL,
128   p_parameters          IN   wf_parameter_list_t DEFAULT NULL)
129  IS
130   l_item_key      VARCHAR2(240);
131   l_event         VARCHAR2(240);
132   EventNotFound   EXCEPTION;
133   EventNotPV      EXCEPTION;
134  BEGIN
135 
136   SAVEPOINT pv_raise_event;
137 
138 --  IF SUBSTR(l_event,1,15) <> 'oracle.apps.pv.' THEN
139 --    RAISE EventNotPV;
140 --  END IF;
141 
142   l_event := Check_Event(p_event_name);
143 
144   IF l_event = 'NOTFOUND' THEN
145     RAISE EventNotFound;
146   END IF;
147 
148   Wf_Event.Raise
149   ( p_event_name   =>  l_event,
150     p_event_key    =>  p_event_key,
151     p_parameters   =>  p_parameters,
152     p_event_data   =>  p_data);
153 
154   EXCEPTION
155     WHEN EventNotFound THEN
156         FND_MESSAGE.SET_NAME( 'PV', 'PV_DEBUG_MESSAGE');
157         FND_MESSAGE.SET_TOKEN( 'TEXT',p_event_name || ' Event not found' );
158         FND_MSG_PUB.ADD;
159 
160     WHEN EventNotPV    THEN
161         FND_MESSAGE.SET_NAME( 'PV', 'PV_DEBUG_MESSAGE');
162         FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name || ' is not a PRM event' );
163         FND_MSG_PUB.ADD;
164 
165     WHEN OTHERS        THEN
166         ROLLBACK TO pv_raise_event;
167 
168         FND_MESSAGE.SET_NAME( 'PV', 'PV_API_OTHERS_EXCEP' );
169         FND_MESSAGE.SET_TOKEN( 'ERROR',SQLERRM );
170         FND_MSG_PUB.ADD;
171 
172         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
173 
174   END Raise_Event;
175 
176 
177 END pvx_event_pkg;