[Home] [Help]
PACKAGE BODY: APPS.HZ_EVENT_PKG
Source
1 PACKAGE BODY hz_event_pkg AS
2 /*$Header: ARHEVESB.pls 120.7 2005/05/25 15:37:31 rborah noship $ */
3 --------------------------------------
4 -- package global variable declaration
5 --------------------------------------
6 G_DEBUG_COUNT NUMBER := 0;
7 --G_DEBUG BOOLEAN := FALSE;
8
9 ------------------------------------
10 -- declaration of private procedures
11 ------------------------------------
12 /*PROCEDURE enable_debug;
13
14 PROCEDURE disable_debug;
15 */
16
17 ------------------------------------------
18 -- PRIVATE PROCEDURE enable_debug
19 -- DESCRIPTION
20 -- Turn on debug mode.
21 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
22 -- HZ_UTILITY_V2PUB.enable_debug
23 -- MODIFICATION HISTORY
24 -- 07-31-2001 H. YU o Created.
25 ------------------------------------------
26 /*PROCEDURE enable_debug IS
27 BEGIN
28 G_DEBUG_COUNT := G_DEBUG_COUNT + 1;
29 IF G_DEBUG_COUNT = 1 THEN
30 IF FND_PROFILE.value( 'HZ_API_FILE_DEBUG_ON' ) = 'Y' OR
31 FND_PROFILE.value( 'HZ_API_DBMS_DEBUG_ON' ) = 'Y'
32 THEN
33 HZ_UTILITY_V2PUB.enable_debug;
34 G_DEBUG := TRUE;
35 END IF;
36 END IF;
37 END enable_debug;
38 */
39
40
41 --------------------------------------------
42 -- PRIVATE PROCEDURE disable_debug
43 -- DESCRIPTION
44 -- Turn off debug mode.
45 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
46 -- HZ_UTILITY_V2PUB.disable_debug
47 -- MODIFICATION HISTORY
48 -- 07-31-2001 H. YU o Created.
49 --------------------------------------------
50 /*PROCEDURE disable_debug IS
51 BEGIN
52 IF G_DEBUG THEN
53 G_DEBUG_COUNT := G_DEBUG_COUNT - 1;
54 IF G_DEBUG_COUNT = 0 THEN
55 HZ_UTILITY_V2PUB.disable_debug;
56 G_DEBUG := FALSE;
57 END IF;
58 END IF;
59 END disable_debug;
60 */
61
62
63 FUNCTION exist_subscription(p_event_name IN VARCHAR2) RETURN VARCHAR2
64 -----------------------------------------------------------------------
65 -- Return 'Y' if the subscription hz_event_elt.hz_param_delete exist
66 -- Otherwise it returns 'N'
67 -----------------------------------------------------------------------
68 IS
69 -- Bug 3784725 : Modify the cursor so that it can use index
70 -- WF_EVENT_SUBSCRIPTIONS_N1 defined on
71 -- table wf_event_subscriptions for better performance.
72 CURSOR cu0 IS
73 SELECT 'Y'
74 FROM wf_events eve,
75 wf_event_subscriptions sub,
76 wf_systems ws
77 WHERE eve.name = p_event_name
78 AND eve.status = 'ENABLED'
79 AND eve.guid = sub.event_filter_guid
80 AND UPPER(sub.rule_function) = 'HZ_EVENT_ELT.HZ_PARAM_DELETE'
81 AND sub.status = 'ENABLED'
82 AND ws.GUID = sub.SYSTEM_GUID
83 AND sub.source_type = 'LOCAL';
84 l_yn VARCHAR2(1);
85 BEGIN
86 OPEN cu0;
87 FETCH cu0 INTO l_yn;
88 IF cu0%NOTFOUND THEN
89 l_yn := 'N';
90 END IF;
91 CLOSE cu0;
92 RETURN l_yn;
93 END;
94
95 FUNCTION item_key(p_event_name IN VARCHAR2) RETURN VARCHAR2
96 -----------------------------------------------------
97 -- Return Item_Key according to Hz Event to be raised
98 -- Item_Key is <Event_Name>-hzwfapp_s.nextval
99 -----------------------------------------------------
100 IS
101 RetKey VARCHAR2(240);
102 BEGIN
103 SELECT p_event_name || hz_wf_items_s.nextval INTO RetKey FROM DUAL;
104 RETURN RetKey;
105 END item_key;
106
107 FUNCTION event(p_event_name IN VARCHAR2) RETURN VARCHAR2
108 -----------------------------------------------
109 -- Return event name if the entered event exist
110 -- Otherwise return NOTFOUND
111 -----------------------------------------------
112 IS
113 RetEvent VARCHAR2(240);
114 BEGIN
115 SELECT name INTO RetEvent
116 FROM wf_events
117 WHERE name = p_event_name;
118 IF SQL%NOTFOUND THEN
119 RetEvent := 'NOTFOUND';
120 END IF;
121 RETURN RetEvent;
122 END event;
123
124
125 /*
126 * TCA SSA Uptake (Bug 3456489)
127 *
128 *FUNCTION org_id RETURN NUMBER
129 *--------------------------------------------
130 *-- Return the org_id for the current session
131 *--------------------------------------------
132 *IS
133 *res NUMBER;
134 *BEGIN
135 * IF SUBSTRB( USERENV('CLIENT_INFO'),1,1) <> ' ' THEN
136 * res := TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'),1,10));
137 * ELSE
138 * res := NULL;
139 * END IF;
140 * RETURN res;
141 *END;
142 */
143
144 PROCEDURE AddParamEnvToList
145 ------------------------------------------------------
146 -- Add Application-Context parameter to the enter list
147 ------------------------------------------------------
148 ( x_list IN OUT NOCOPY WF_PARAMETER_LIST_T,
149 p_user_id IN VARCHAR2 DEFAULT NULL,
150 p_resp_id IN VARCHAR2 DEFAULT NULL,
151 p_resp_appl_id IN VARCHAR2 DEFAULT NULL,
152 p_security_group_id IN VARCHAR2 DEFAULT NULL,
153 p_org_id IN VARCHAR2 DEFAULT NULL)
154 IS
155 l_user_id VARCHAR2(255) := p_user_id;
156 l_resp_appl_id VARCHAR2(255) := p_resp_appl_id;
157 l_resp_id VARCHAR2(255) := p_resp_id;
158 l_security_group_id VARCHAR2(255) := p_security_group_id;
159 l_org_id VARCHAR2(255) := p_org_id;
160 l_param WF_PARAMETER_T;
161 l_rang NUMBER;
162 BEGIN
163 l_rang := 0;
164
165 IF l_user_id IS NULL THEN
166 -- Fix bug 4271565, use FND_GLOBAL
167 --l_user_id := fnd_profile.value( 'USER_ID');
168 l_user_id := FND_GLOBAL.USER_ID;
169 END IF;
170
171 l_param := WF_PARAMETER_T( NULL, NULL );
172 -- fill the parameters list
173 x_list.extend;
174 l_param.SetName( 'USER_ID' );
175 l_param.SetValue( l_user_id);
176 l_rang := l_rang + 1;
177 x_list(l_rang) := l_param;
178
179 IF l_resp_id IS NULL THEN
180 -- Fix bug 4271565, use FND_GLOBAL
181 --l_resp_id := fnd_profile.value( 'RESP_ID');
182 l_resp_id := FND_GLOBAL.RESP_ID;
183 END IF;
184
185 l_param := WF_PARAMETER_T( NULL, NULL );
186 -- fill the parameters list
187 x_list.extend;
188 l_param.SetName( 'RESP_ID' );
189 l_param.SetValue( l_resp_id );
190 l_rang := l_rang + 1;
191 x_list(l_rang) := l_param;
192
193 IF l_resp_appl_id IS NULL THEN
194 -- Fix bug 4271565, use FND_GLOBAL
195 -- l_resp_appl_id := fnd_profile.value( 'RESP_APPL_ID');
196 l_resp_appl_id := FND_GLOBAL.RESP_APPL_ID;
197 END IF;
198
199 l_param := WF_PARAMETER_T( NULL, NULL );
200 -- fill the parameters list
201 x_list.extend;
202 l_param.SetName( 'RESP_APPL_ID' );
203 l_param.SetValue( l_resp_appl_id );
204 l_rang := l_rang + 1;
205 x_list(l_rang) := l_param;
206
207 IF l_security_group_id IS NULL THEN
208 --l_security_group_id := fnd_profile.value( 'SECURITY_GROUP_ID');
209 /* BugNo: 3007012 */
210 l_security_group_id := fnd_global.security_group_id;
211 END IF;
212 l_param := WF_PARAMETER_T( NULL, NULL );
213 -- fill the parameters list
214 x_list.extend;
215 l_param.SetName( 'SECURITY_GROUP_ID' );
216 l_param.SetValue( l_security_group_id );
217 l_rang := l_rang + 1;
218 x_list(l_rang) := l_param;
219
220 /* 3456489. Removed check for null org_id. */
221 IF (l_org_id IS NOT NULL) THEN
222 l_param := WF_PARAMETER_T( NULL, NULL );
223 -- fill the parameters list
224 x_list.extend;
225 l_param.SetName( 'ORG_ID' );
226 l_param.SetValue(l_org_id );
227 l_rang := l_rang + 1;
228 x_list(l_rang) := l_param;
229 END IF;
230
231
232 END;
233
234
235 PROCEDURE raise_event
236 ----------------------------------------------
237 -- Check if Event exist
238 -- Check if Event is like 'oracle.apps.ar.hz%'
239 -- Get the item_key
240 -- Raise event
241 ----------------------------------------------
242 (p_event_name IN VARCHAR2,
243 p_event_key IN VARCHAR2,
244 p_data IN CLOB DEFAULT NULL,
245 p_parameters IN wf_parameter_list_t DEFAULT NULL)
246 IS
247 l_item_key VARCHAR2(240);
248 l_event VARCHAR2(240);
249 EventNotFound EXCEPTION;
250 EventNotHZ EXCEPTION;
251 l_debug_prefix VARCHAR2(30) := '';
252 BEGIN
253
254 SAVEPOINT hz_raise_event;
255
256 --enable_debug;
257
258 l_event := event(p_event_name);
259
260 IF l_event = 'NOTFOUND' THEN
261 RAISE EventNotFound;
262 END IF;
263
264 IF SUBSTR(l_event,1,18) <> 'oracle.apps.ar.hz.' THEN
265 RAISE EventNotHZ;
266 END IF;
267
268 Wf_Event.Raise
269 ( p_event_name => l_event,
270 p_event_key => p_event_key,
271 p_parameters => p_parameters,
272 p_event_data => p_data);
273
274 --disable_debug;
275
276 EXCEPTION
277 WHEN EventNotFound THEN
278
279 FND_MESSAGE.SET_NAME( 'AR', 'HZ_EVENTNOTFOUND');
280 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name );
281 FND_MSG_PUB.ADD;
282
283 -- Debug info.
284 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
285 hz_utility_v2pub.debug(p_message=>'Tca event raise (-). Warning hz_event_pkg :EventNotFound - '||p_event_name ||' not found.',
286 p_prefix=>'ERROR',
287 p_msg_level=>fnd_log.level_error);
288 END IF;
289
290 -- Check if API is called in debug mode. If yes, disable debug.
291 --disable_debug;
292
293 WHEN EventNotHZ THEN
294 FND_MESSAGE.SET_NAME( 'AR', 'HZ_EVENTNOTTCA');
295 FND_MESSAGE.SET_TOKEN( 'EVENT' ,p_event_name );
296 FND_MSG_PUB.ADD;
297
298 -- Debug info.
299 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
300 hz_utility_v2pub.debug(p_message=>' Tca event raise (-). Warning hz_event_pkg:EventNotHZ - '||p_event_name ||' isnot TCA event.',
301 p_prefix=>'ERROR',
302 p_msg_level=>fnd_log.level_error);
303 END IF;
304
305 -- Check if API is called in debug mode. If yes, disable debug.
306 --disable_debug;
307
308 WHEN NO_DATA_FOUND THEN
309 ROLLBACK TO hz_raise_event;
310
311 FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
315 -- Debug info.
312 FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
313 FND_MSG_PUB.ADD;
314
316 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
317 hz_utility_v2pub.debug(p_message=>'Tca event raise (-). Error hz_event_pkg:No_DaTa_Found '||TO_CHAR(SQLCODE)||': '||SQLERRM,
318 p_prefix=>'ERROR',
319 p_msg_level=>fnd_log.level_error);
320 END IF;
321
322 -- Check if API is called in debug mode. If yes, disable debug.
323 --disable_debug;
324
325 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
326
327 WHEN OTHERS THEN
328 ROLLBACK TO hz_raise_event;
329
330 FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
331 FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
332 FND_MSG_PUB.ADD;
333
334 -- Debug info.
335 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
336 hz_utility_v2pub.debug(p_message=>'Tca event raise (-). Error hz_event_pkg:OTHERS'||TO_CHAR(SQLCODE)||': '||SQLERRM,
337 p_prefix=>'SQL ERROR',
338 p_msg_level=>fnd_log.level_error);
339 END IF;
340
341 -- Check if API is called in debug mode. If yes, disable debug.
342 --disable_debug;
343
344 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
345
346
347 END raise_event;
348
349
350 END;