[Home] [Help]
PACKAGE BODY: APPS.IEO_ICSM_AQ_PUB
Source
1 PACKAGE BODY IEO_ICSM_AQ_PUB AS
2 /* $Header: ieoaqpb.pls 115.6 2002/12/20 23:10:46 edwang noship $ */
3
4 PROCEDURE ENQUEUE_REQUEST
5 (
6 p_api_version IN NUMBER,
7 p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE,
8 p_commit IN VARCHAR2 Default FND_API.G_FALSE,
9
10 p_node_id IN VARCHAR2,
11 p_xml_data IN VARCHAR2,
12
13 x_request_id OUT NOCOPY NUMBER,
14 x_return_status OUT NOCOPY VARCHAR2,
15 x_msg_count OUT NOCOPY NUMBER,
16 x_msg_data OUT NOCOPY VARCHAR2
17 )
18 IS
19 l_api_name CONSTANT VARCHAR2(30) := 'ENQUEUE_REQUEST';
20 l_api_version CONSTANT NUMBER := 1.0;
21 enqueue_options dbms_aq.enqueue_options_t;
22 message_properties dbms_aq.message_properties_t;
23 message_handle RAW(16);
24 message SYSTEM.ieo_icsm_msg_type;
25 request_id NUMBER ;
26 xml_data_null EXCEPTION;
27 BEGIN
28 -- Standard Start of API savepoint
29 SAVEPOINT ENQUEUE_REQUEST_PUB;
30
31 -- Standard call to check for call compatibility.
32 IF NOT FND_API.Compatible_API_Call
33 (
34 l_api_version,
35 p_api_version,
36 l_api_name,
37 G_PKG_NAME
38 )
39 THEN
40 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
41 END IF;
42
43 -- Initialize message list if p_init_msg_list is set to TRUE.
44 IF FND_API.To_Boolean( p_init_msg_list ) THEN
45 FND_MSG_PUB.initialize;
46 END IF;
47
48 -- Initialize API return status to success
49 x_return_status := FND_API.G_RET_STS_SUCCESS;
50
51 -- API body
52
53 IF p_xml_data IS NULL then
54 raise xml_data_null;
55 END IF;
56
57 -- select request id from sequence
58 select ieo_icsm_aq_s1.nextval into request_id from dual ;
59
60 message_properties.correlation := p_node_id;
61 message_properties.expiration := 600;
62 enqueue_options.visibility := DBMS_AQ.IMMEDIATE;
63 message := SYSTEM.ieo_icsm_msg_type(p_node_id,request_id,p_xml_data);
64
65 dbms_aq.enqueue
66 (
67 queue_name => IEO_QUEUE.queue_name_1,
68 enqueue_options => enqueue_options,
69 message_properties => message_properties,
70 payload => message,
71 msgid => message_handle
72 );
73
74 x_request_id := request_id ;
75 -- End of API body.
76
77 -- Standard check of p_commit.
78 IF FND_API.To_Boolean( p_commit ) THEN
79 COMMIT WORK;
80 END IF;
81 -- Standard call to get message count and if count is 1, get message info.
82 FND_MSG_PUB.Count_And_Get
83 (
84 p_count => x_msg_count,
85 p_data => x_msg_data
86 );
87 EXCEPTION
88
89 WHEN xml_data_null THEN
90 ROLLBACK TO ENQUEUE_REQUEST_PUB;
91 FND_MESSAGE.SET_NAME('IEO','IEO_AQ_XML_DATA_NULL');
92 FND_MSG_PUB.Add;
93 x_return_status := FND_API.G_RET_STS_ERROR ;
94 WHEN FND_API.G_EXC_ERROR THEN
95 ROLLBACK TO ENQUEUE_REQUEST_PUB;
96 x_return_status := FND_API.G_RET_STS_ERROR ;
97 FND_MSG_PUB.Count_And_Get
98 (
99 p_count => x_msg_count,
100 p_data => x_msg_data
101 );
102 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
103 ROLLBACK TO ENQUEUE_REQUEST_PUB;
104 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
105 FND_MSG_PUB.Count_And_Get
106 (
107 p_count => x_msg_count,
108 p_data => x_msg_data
109 );
110 /* WHEN OTHERS THEN
111 ROLLBACK TO ENQUEUE_REQUEST_PUB;
112 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
113 IF FND_MSG_PUB.Check_Msg_Level
114 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
115 THEN
116 FND_MSG_PUB.Add_Exc_Msg
117 (
118 G_PKG_NAME,
119 l_api_name
120 );
121 END IF;
122 FND_MSG_PUB.Count_And_Get
123 (
124 p_count => x_msg_count,
125 p_data => x_msg_data
126 );*/
127 END ENQUEUE_REQUEST;
128
129 PROCEDURE ENQUEUE_RESPONSE
130 (
131 p_api_version IN NUMBER,
132 p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE,
133 p_commit IN VARCHAR2 Default FND_API.G_FALSE,
134
135 p_node_id IN NUMBER,
136 p_request_id IN NUMBER,
137 p_xml_data IN VARCHAR2,
138
139 x_return_status OUT NOCOPY VARCHAR2,
140 x_msg_count OUT NOCOPY NUMBER,
141 x_msg_data OUT NOCOPY VARCHAR2
142 )
143 IS
144 l_api_name CONSTANT VARCHAR2(30) := 'ENQUEUE_RESPONSE';
145 l_api_version CONSTANT NUMBER := 1.0;
146 enqueue_options dbms_aq.enqueue_options_t;
147 message_properties dbms_aq.message_properties_t;
148 message_handle RAW(16);
149 message SYSTEM.ieo_icsm_msg_type;
150 xml_data_null EXCEPTION;
151 BEGIN
152 -- Standard Start of API savepoint
153 SAVEPOINT ENQUEUE_RESPONSE_PUB;
154
155 -- Standard call to check for call compatibility.
156 IF NOT FND_API.Compatible_API_Call
157 (
158 l_api_version,
159 p_api_version,
160 l_api_name,
161 G_PKG_NAME
162 )
163 THEN
164 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
165 END IF;
166
167 -- Initialize message list if p_init_msg_list is set to TRUE.
168 IF FND_API.To_Boolean( p_init_msg_list ) THEN
169 FND_MSG_PUB.initialize;
170 END IF;
171
172 -- Initialize API return status to success
173 x_return_status := FND_API.G_RET_STS_SUCCESS;
174
175 -- API body
176
177 IF p_xml_data IS NULL then
178 raise xml_data_null;
179 END IF;
180
181 message_properties.correlation := p_request_id;
182 message_properties.expiration := 600;
183 enqueue_options.visibility := DBMS_AQ.IMMEDIATE;
184 message := SYSTEM.ieo_icsm_msg_type(p_node_id,p_request_id,p_xml_data);
185
186 dbms_aq.enqueue
187 (
188 queue_name => IEO_QUEUE.queue_name_2,
189 enqueue_options => enqueue_options,
190 message_properties => message_properties,
191 payload => message,
192 msgid => message_handle
193 );
194
195 -- End of API body.
196
197 -- Standard check of p_commit.
198 IF FND_API.To_Boolean( p_commit ) THEN
199 COMMIT WORK;
200 END IF;
201 -- Standard call to get message count and if count is 1, get message info.
202 FND_MSG_PUB.Count_And_Get
203 (
204 p_count => x_msg_count,
205 p_data => x_msg_data
206 );
207 EXCEPTION
208
209 WHEN xml_data_null THEN
210 ROLLBACK TO ENQUEUE_RESPONSE_PUB;
211 FND_MESSAGE.SET_NAME('IEO','IEO_AQ_XML_DATA_NULL');
212 FND_MSG_PUB.Add;
213 x_return_status := FND_API.G_RET_STS_ERROR ;
214 WHEN FND_API.G_EXC_ERROR THEN
215 ROLLBACK TO ENQUEUE_RESPONSE_PUB;
216 x_return_status := FND_API.G_RET_STS_ERROR ;
217 FND_MSG_PUB.Count_And_Get
218 (
219 p_count => x_msg_count,
220 p_data => x_msg_data
221 );
222 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
223 ROLLBACK TO ENQUEUE_RESPONSE_PUB;
224 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
225 FND_MSG_PUB.Count_And_Get
226 (
227 p_count => x_msg_count,
228 p_data => x_msg_data
229 );
230 /* WHEN OTHERS THEN
231 ROLLBACK TO ENQUEUE_RESPONSE_PUB;
232 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
233 IF FND_MSG_PUB.Check_Msg_Level
234 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
235 THEN
236 FND_MSG_PUB.Add_Exc_Msg
237 (
238 G_PKG_NAME,
239 l_api_name
240 );
241 END IF;
242 FND_MSG_PUB.Count_And_Get
243 (
244 p_count => x_msg_count,
245 p_data => x_msg_data
246 );*/
247 END ENQUEUE_RESPONSE;
248
249 PROCEDURE DEQUEUE_REQUEST
250 (
251 p_api_version IN NUMBER,
252 p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE,
253 p_commit IN VARCHAR2 Default FND_API.G_FALSE,
254
255 p_node_id IN NUMBER,
256 p_wait IN NUMBER,
257
258 x_xml_data OUT NOCOPY VARCHAR2,
259 x_request_id OUT NOCOPY NUMBER,
260 x_return_status OUT NOCOPY VARCHAR2,
261 x_msg_count OUT NOCOPY NUMBER,
262 x_msg_data OUT NOCOPY VARCHAR2
263 )
264 IS
265 l_api_name CONSTANT VARCHAR2(30) := 'DEQUEUE_REQUEST';
266 l_api_version CONSTANT NUMBER := 1.0;
267 dequeue_options dbms_aq.dequeue_options_t;
268 message_properties dbms_aq.message_properties_t;
269 message_handle RAW(16);
270 message SYSTEM.ieo_icsm_msg_type;
271 no_messages exception;
272 pragma exception_init (no_messages, -25228);
273 BEGIN
274 -- Standard Start of API savepoint
275 SAVEPOINT DEQUEUE_REQUEST_PUB;
276
277 -- Standard call to check for call compatibility.
278 IF NOT FND_API.Compatible_API_Call
279 (
280 l_api_version,
281 p_api_version,
282 l_api_name,
283 G_PKG_NAME
284 )
285 THEN
286 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
287 END IF;
288
289 -- Initialize message list if p_init_msg_list is set to TRUE.
290 IF FND_API.To_Boolean( p_init_msg_list ) THEN
291 FND_MSG_PUB.initialize;
292 END IF;
293
294 -- Initialize API return status to success
295 x_return_status := FND_API.G_RET_STS_SUCCESS;
296
297 -- API body
298
299 dequeue_options.correlation := p_node_id;
300 dequeue_options.wait := p_wait ;
301 dequeue_options.visibility := DBMS_AQ.IMMEDIATE;
302 dequeue_options.navigation := DBMS_AQ.FIRST_MESSAGE ;
303
304 dbms_aq.dequeue
305 (
306 queue_name => IEO_QUEUE.queue_name_1,
307 dequeue_options => dequeue_options,
308 message_properties => message_properties,
309 payload => message,
310 msgid => message_handle
311 );
312
313 x_xml_data := message.xml_data ;
314 x_request_id := message.request_id ;
315
316 EXCEPTION
317 WHEN no_messages THEN
318 x_return_status := G_TIMEOUT ;
319 WHEN FND_API.G_EXC_ERROR THEN
320 ROLLBACK TO DEQUEUE_REQUEST_PUB;
321 x_return_status := FND_API.G_RET_STS_ERROR ;
322 FND_MSG_PUB.Count_And_Get
323 (
324 p_count => x_msg_count,
325 p_data => x_msg_data
326 );
327 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
328 ROLLBACK TO DEQUEUE_REQUEST_PUB;
329 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
330 FND_MSG_PUB.Count_And_Get
331 (
332 p_count => x_msg_count,
333 p_data => x_msg_data
334 );
335 /* WHEN OTHERS THEN
336 ROLLBACK TO DEQUEUE_REQUEST_PUB;
337 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
338 IF FND_MSG_PUB.Check_Msg_Level
339 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
340 THEN
341 FND_MSG_PUB.Add_Exc_Msg
342 (
343 G_PKG_NAME,
344 l_api_name
345 );
346 END IF;
347 FND_MSG_PUB.Count_And_Get
348 (
349 p_count => x_msg_count,
350 p_data => x_msg_data
351 );*/
352 END DEQUEUE_REQUEST;
353
354
355 PROCEDURE DEQUEUE_RESPONSE
356 (
357 p_api_version IN NUMBER,
358 p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE,
359 p_commit IN VARCHAR2 Default FND_API.G_FALSE,
360
361 p_request_id IN NUMBER,
362 p_wait IN NUMBER,
363
364 x_xml_data OUT NOCOPY VARCHAR2,
365 x_return_status OUT NOCOPY VARCHAR2,
366 x_msg_count OUT NOCOPY NUMBER,
367 x_msg_data OUT NOCOPY VARCHAR2
368 )
369 IS
370 l_api_name CONSTANT VARCHAR2(30) := 'DEQUEUE_RESPONSE';
371 l_api_version CONSTANT NUMBER := 1.0;
372 dequeue_options dbms_aq.dequeue_options_t;
373 message_properties dbms_aq.message_properties_t;
374 message_handle RAW(16);
375 message SYSTEM.ieo_icsm_msg_type;
376 no_messages exception;
377 pragma exception_init (no_messages, -25228);
378 BEGIN
379 -- Standard Start of API savepoint
380 SAVEPOINT DEQUEUE_RESPONSE_PUB;
381
382 -- Standard call to check for call compatibility.
383 IF NOT FND_API.Compatible_API_Call
384 (
385 l_api_version,
386 p_api_version,
387 l_api_name,
388 G_PKG_NAME
389 )
390 THEN
391 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
392 END IF;
393
394 -- Initialize message list if p_init_msg_list is set to TRUE.
395 IF FND_API.To_Boolean( p_init_msg_list ) THEN
396 FND_MSG_PUB.initialize;
397 END IF;
398
399 -- Initialize API return status to success
400 x_return_status := FND_API.G_RET_STS_SUCCESS;
401
402 -- API body
403
404 --DBMS_OUTPUT.put_line('before dequeuing in dequeue response');
405
406 dequeue_options.correlation := p_request_id;
407 dequeue_options.wait := p_wait ;
408 dequeue_options.visibility := DBMS_AQ.IMMEDIATE;
409 dequeue_options.navigation := DBMS_AQ.FIRST_MESSAGE ;
410
411 dbms_aq.dequeue
412 (
413 queue_name => IEO_QUEUE.queue_name_2,
414 dequeue_options => dequeue_options,
415 message_properties => message_properties,
416 payload => message,
417 msgid => message_handle
418 );
419
420 --DBMS_OUTPUT.put_line('after dequeuing in dequeue response');
421
422 x_xml_data := message.xml_data ;
423 EXCEPTION
424 WHEN no_messages THEN
425 --DBMS_OUTPUT.put_line('timeout dequeuing response');
426 x_return_status := G_TIMEOUT;
427 WHEN FND_API.G_EXC_ERROR THEN
428 ROLLBACK TO DEQUEUE_RESPONSE_PUB;
429 x_return_status := FND_API.G_RET_STS_ERROR ;
430 FND_MSG_PUB.Count_And_Get
431 (
432 p_count => x_msg_count,
433 p_data => x_msg_data
434 );
435 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
436 ROLLBACK TO DEQUEUE_RESPONSE_PUB;
437 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
438 FND_MSG_PUB.Count_And_Get
439 (
440 p_count => x_msg_count,
441 p_data => x_msg_data
442 );
443 /* WHEN OTHERS THEN
444 ROLLBACK TO DEQUEUE_RESPONSE_PUB;
445 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
446 IF FND_MSG_PUB.Check_Msg_Level
447 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
448 THEN
449 FND_MSG_PUB.Add_Exc_Msg
450 (
451 G_PKG_NAME,
452 l_api_name
453 );
454 END IF;
455 FND_MSG_PUB.Count_And_Get
456 (
457 p_count => x_msg_count,
458 p_data => x_msg_data
459 );*/
460 END DEQUEUE_RESPONSE;
461
462 END IEO_ICSM_AQ_PUB;