[Home] [Help]
PACKAGE BODY: APPS.OE_BULK_MSG_PUB
Source
1 PACKAGE BODY OE_BULK_MSG_PUB AS
2 /* $Header: OEBUMSGB.pls 120.0 2005/06/01 01:55:40 appldev noship $ */
3
4
5 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OE_BULK_MSG_PUB';
6
7 PROCEDURE Extend
8 IS
9 --
10 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
11 --
12 BEGIN
13 g_msg_tbl.MESSAGE.EXTEND;
14 g_msg_tbl.ENTITY_CODE.EXTEND;
15 g_msg_tbl.ENTITY_ID.EXTEND;
16 g_msg_tbl.HEADER_ID.EXTEND;
17 g_msg_tbl.LINE_ID.EXTEND;
18 g_msg_tbl.ORDER_SOURCE_ID.EXTEND;
19 g_msg_tbl.ORIG_SYS_DOCUMENT_REF.EXTEND;
20 g_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF.EXTEND;
21 g_msg_tbl.SOURCE_DOCUMENT_TYPE_ID.EXTEND;
22 g_msg_tbl.SOURCE_DOCUMENT_ID.EXTEND;
23 g_msg_tbl.SOURCE_DOCUMENT_LINE_ID.EXTEND;
24 g_msg_tbl.ATTRIBUTE_CODE.EXTEND;
25 g_msg_tbl.CONSTRAINT_ID.EXTEND;
26 g_msg_tbl.PROCESS_ACTIVITY.EXTEND;
27 g_msg_tbl.NOTIFICATION_FLAG.EXTEND;
28 g_msg_tbl.MESSAGE_TEXT.EXTEND;
29 g_msg_tbl.TYPE.EXTEND;
30 g_msg_tbl.ENTITY_REF.EXTEND;
31 g_msg_tbl.ORIG_SYS_SHIPMENT_REF.EXTEND;
32 g_msg_tbl.CHANGE_SEQUENCE.EXTEND;
33
34 END Extend;
35
36 PROCEDURE Delete_tbl(p_count NUMBER := NULL)
37 IS
38 --
39 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
40 --
41 BEGIN
42 IF p_count IS NULL THEN
43 g_msg_tbl.MESSAGE.DELETE;
44 g_msg_tbl.ENTITY_CODE.DELETE;
45 g_msg_tbl.ENTITY_ID.DELETE;
46 g_msg_tbl.HEADER_ID.DELETE;
47 g_msg_tbl.LINE_ID.DELETE;
48 g_msg_tbl.ORDER_SOURCE_ID.DELETE;
49 g_msg_tbl.ORIG_SYS_DOCUMENT_REF.DELETE;
50 g_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF.DELETE;
51 g_msg_tbl.SOURCE_DOCUMENT_TYPE_ID.DELETE;
52 g_msg_tbl.SOURCE_DOCUMENT_ID.DELETE;
53 g_msg_tbl.SOURCE_DOCUMENT_LINE_ID.DELETE;
54 g_msg_tbl.ATTRIBUTE_CODE.DELETE;
55 g_msg_tbl.CONSTRAINT_ID.DELETE;
56 g_msg_tbl.PROCESS_ACTIVITY.DELETE;
57 g_msg_tbl.NOTIFICATION_FLAG.DELETE;
58 g_msg_tbl.MESSAGE_TEXT.DELETE;
59 g_msg_tbl.TYPE.DELETE;
60 g_msg_tbl.ENTITY_REF.DELETE;
61 g_msg_tbl.ORIG_SYS_SHIPMENT_REF.DELETE;
62 g_msg_tbl.CHANGE_SEQUENCE.DELETE;
63 ELSE
64 g_msg_tbl.MESSAGE.DELETE(p_count);
65 g_msg_tbl.ENTITY_CODE.DELETE(p_count);
66 g_msg_tbl.ENTITY_ID.DELETE(p_count);
67 g_msg_tbl.HEADER_ID.DELETE(p_count);
68 g_msg_tbl.LINE_ID.DELETE(p_count);
69 g_msg_tbl.ORDER_SOURCE_ID.DELETE(p_count);
70 g_msg_tbl.ORIG_SYS_DOCUMENT_REF.DELETE(p_count);
71 g_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF.DELETE(p_count);
72 g_msg_tbl.SOURCE_DOCUMENT_TYPE_ID.DELETE(p_count);
73 g_msg_tbl.SOURCE_DOCUMENT_ID.DELETE(p_count);
74 g_msg_tbl.SOURCE_DOCUMENT_LINE_ID.DELETE(p_count);
75 g_msg_tbl.ATTRIBUTE_CODE.DELETE(p_count);
76 g_msg_tbl.CONSTRAINT_ID.DELETE(p_count);
77 g_msg_tbl.PROCESS_ACTIVITY.DELETE(p_count);
78 g_msg_tbl.NOTIFICATION_FLAG.DELETE(p_count);
79 g_msg_tbl.MESSAGE_TEXT.DELETE(p_count);
80 g_msg_tbl.TYPE.DELETE(p_count);
81 g_msg_tbl.ENTITY_REF.DELETE(p_count);
82 g_msg_tbl.ORIG_SYS_SHIPMENT_REF.DELETE(p_count);
83 g_msg_tbl.CHANGE_SEQUENCE.DELETE(p_count);
84 END IF;
85 END Delete_tbl;
86
87 PROCEDURE Initialize
88 IS
89 --
90 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
91 --
92 BEGIN
93
94 FND_MSG_PUB.Initialize;
95
96 IF g_msg_tbl.MESSAGE IS NOT NULL THEN
97 Delete_tbl(p_count => NULL);
98 END IF;
99
100 g_msg_tbl.MESSAGE := T_TBL_V2000();
101 g_msg_tbl.ENTITY_CODE := T_TBL_V30();
102 g_msg_tbl.ENTITY_ID := T_TBL_NUM();
103 g_msg_tbl.HEADER_ID := T_TBL_NUM();
104 g_msg_tbl.LINE_ID := T_TBL_NUM();
105 g_msg_tbl.ORDER_SOURCE_ID := T_TBL_NUM();
106 g_msg_tbl.ORIG_SYS_DOCUMENT_REF := T_TBL_V50();
107 g_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF := T_TBL_V50();
108 g_msg_tbl.SOURCE_DOCUMENT_TYPE_ID := T_TBL_NUM();
109 g_msg_tbl.SOURCE_DOCUMENT_ID := T_TBL_NUM();
110 g_msg_tbl.SOURCE_DOCUMENT_LINE_ID := T_TBL_NUM();
111 g_msg_tbl.ATTRIBUTE_CODE := T_TBL_V30();
112 g_msg_tbl.CONSTRAINT_ID := T_TBL_NUM();
113 g_msg_tbl.PROCESS_ACTIVITY := T_TBL_NUM();
114 g_msg_tbl.NOTIFICATION_FLAG := T_TBL_V1();
115 g_msg_tbl.MESSAGE_TEXT := T_TBL_V2000();
116 g_msg_tbl.TYPE := T_TBL_V30();
117 g_msg_tbl.ENTITY_REF := T_TBL_V50();
118 g_msg_tbl.ORIG_SYS_SHIPMENT_REF := T_TBL_V50();
119 g_msg_tbl.CHANGE_SEQUENCE := T_TBL_V50();
120
121 G_msg_count := 0;
122 G_msg_index := 0;
123 G_msg_context_tbl.DELETE;
124 G_msg_context_count := 0;
125 G_Msg_Context_index := 0;
126
127 END;
128
129 PROCEDURE Set_Process_Activity(
130 p_process_activity IN NUMBER DEFAULT NULL)
131 IS
132 --
133 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
134 --
135 BEGIN
136
137 G_process_activity := p_process_activity;
138
139 END Set_Process_Activity;
140
141 PROCEDURE Set_Msg_Context (
142 p_entity_code IN VARCHAR2 DEFAULT NULL
143 ,p_entity_ref IN VARCHAR2 DEFAULT NULL
144 ,p_entity_id IN NUMBER DEFAULT NULL
145 ,p_header_id IN NUMBER DEFAULT NULL
146 ,p_line_id IN NUMBER DEFAULT NULL
147 ,p_order_source_id IN NUMBER DEFAULT NULL
148 ,p_orig_sys_document_ref IN VARCHAR2 DEFAULT NULL
149 ,p_orig_sys_document_line_ref IN VARCHAR2 DEFAULT NULL
150 ,p_orig_sys_shipment_ref IN VARCHAR2 DEFAULT NULL
151 ,p_change_sequence IN VARCHAR2 DEFAULT NULL
152 ,p_source_document_type_id IN NUMBER DEFAULT NULL
153 ,p_source_document_id IN NUMBER DEFAULT NULL
154 ,p_source_document_line_id IN NUMBER DEFAULT NULL
155 ,p_attribute_code IN VARCHAR2 DEFAULT NULL
156 ,p_constraint_id IN NUMBER DEFAULT NULL
157 )
158 IS
159 --
160 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
161 --
162 BEGIN
163 G_msg_context_count := G_msg_context_count + 1;
164
165 G_msg_context_tbl(G_msg_context_count).ENTITY_CODE := p_entity_code;
166 G_msg_context_tbl(G_msg_context_count).ENTITY_ID := p_entity_id;
167 G_msg_context_tbl(G_msg_context_count).ENTITY_REF := p_entity_ref;
168 G_msg_context_tbl(G_msg_context_count).HEADER_ID := p_header_id;
169 G_msg_context_tbl(G_msg_context_count).LINE_ID := p_line_Id;
170 G_msg_context_tbl(G_msg_context_count).ORDER_SOURCE_ID := p_order_source_id;
171 G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_REF := p_orig_sys_document_ref;
172 G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_LINE_REF := p_orig_sys_document_line_ref;
173 G_msg_context_tbl(G_msg_context_count).ORIG_SYS_SHIPMENT_REF := p_orig_sys_shipment_ref;
174 G_msg_context_tbl(G_msg_context_count).CHANGE_SEQUENCE := p_change_sequence;
175 G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_TYPE_ID := p_source_document_type_id;
176 G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_ID := p_source_document_id;
177 G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_LINE_ID := p_source_document_line_id;
178 G_msg_context_tbl(G_msg_context_count).ATTRIBUTE_CODE := p_attribute_code;
179 G_msg_context_tbl(G_msg_context_count).CONSTRAINT_ID := p_constraint_id;
180 G_msg_context_tbl(G_msg_context_count).PROCESS_ACTIVITY := G_process_activity;
181
182 END;
183
184 PROCEDURE Update_Msg_Context (
185 p_entity_code IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
186 ,p_entity_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
187 ,p_header_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
188 ,p_line_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
189 ,p_order_source_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
190 ,p_orig_sys_document_ref IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
191 ,p_orig_sys_document_line_ref IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
192 ,p_source_document_type_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
193 ,p_source_document_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
194 ,p_source_document_line_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
195 ,p_attribute_code IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
196 ,p_constraint_id IN NUMBER DEFAULT FND_API.G_MISS_NUM
197 ) IS
198 --
199 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
200 --
201 Begin
202
203 if p_entity_id <> FND_API.G_MISS_NUM then
204 G_msg_context_tbl(G_msg_context_count).ENTITY_ID := p_entity_id;
205 end if;
206 if p_header_id <> FND_API.G_MISS_NUM then
207 G_msg_context_tbl(G_msg_context_count).HEADER_ID := p_header_id;
208 end if;
209 if p_line_id <> FND_API.G_MISS_NUM then
210 G_msg_context_tbl(G_msg_context_count).LINE_ID := p_line_id;
211 end if;
212 if p_order_source_id <> FND_API.G_MISS_NUM then
213 G_msg_context_tbl(G_msg_context_count).ORDER_SOURCE_ID := p_order_source_id;
214 end if;
215 if p_orig_sys_document_ref <> FND_API.G_MISS_CHAR then
216 G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_REF := p_orig_sys_document_ref;
217 end if;
218 if p_orig_sys_document_line_ref <> FND_API.G_MISS_CHAR then
219 G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_LINE_REF := p_orig_sys_document_line_ref;
220 end if;
221 if p_source_document_type_id <> FND_API.G_MISS_NUM then
222 G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_TYPE_ID := p_source_document_type_id;
223 end if;
224 if p_source_document_id <> FND_API.G_MISS_NUM then
225 G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_ID := p_source_document_id;
226 end if;
227 if p_source_document_line_id <> FND_API.G_MISS_NUM then
228 G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_LINE_ID := p_source_document_line_id;
229 end if;
230 if p_attribute_code <> FND_API.G_MISS_CHAR then
231 G_msg_context_tbl(G_msg_context_count).ATTRIBUTE_CODE := p_attribute_code;
232 end if;
233 if p_constraint_id <> FND_API.G_MISS_NUM then
234 G_msg_context_tbl(G_msg_context_count).CONSTRAINT_ID := p_constraint_id;
235 end if;
236
237 End Update_Msg_Context;
238
239 PROCEDURE Reset_Msg_Context (p_entity_code IN VARCHAR2)
240 IS
241 --
242 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
243 --
244 BEGIN
245 if G_msg_context_count > 0 then
246 if G_msg_context_tbl.EXISTS(G_msg_context_count) AND
247 G_msg_context_tbl(G_msg_context_count).ENTITY_CODE = p_entity_code then
248 G_msg_context_tbl.delete(G_msg_context_count) ;
249 G_msg_context_count := G_msg_context_count - 1;
250 end if;
251 end if;
252 END Reset_Msg_Context;
253
254 FUNCTION Count_Msg RETURN NUMBER
255 IS
256 --
257 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
258 --
259 BEGIN
260
261 RETURN G_msg_Count;
262
263 END Count_Msg;
264
265 PROCEDURE Count_And_Get
266 ( p_encoded IN VARCHAR2 := FND_API.G_TRUE ,
267 p_count OUT NOCOPY NUMBER ,
268
269 p_data OUT NOCOPY VARCHAR2
270
271 )
272 IS
273 l_msg_count NUMBER;
274 --
275 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
276 --
277 BEGIN
278
279 l_msg_count := Count_Msg;
280
281 IF l_msg_count = 1 THEN
282
283 p_data := Get ( p_msg_index => G_FIRST ,
284 p_encoded => p_encoded );
285
286 Reset;
287
288 END IF;
289
290 p_count := l_msg_count ;
291
292 END Count_And_Get;
293
294
295 PROCEDURE Add(p_context_flag IN VARCHAR2 DEFAULT 'Y',
296 p_msg_type IN VARCHAR2 DEFAULT NULL)
297 IS
298 l_type VARCHAR2(30);
299 l_app_id VARCHAR2(30);
300 l_message_name VARCHAR2(30);
301 --
302 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
303 --
304 BEGIN
305
306 IF p_msg_type IS NOT NULL THEN
307 l_type := p_msg_type;
308 END IF;
309 G_msg_count := G_msg_count + 1;
310 Extend;
311
312 G_msg_tbl.Message(G_msg_count) := FND_MESSAGE.GET_ENCODED;
313
314 IF p_context_flag = 'Y' THEN
315
316 BEGIN
317
318 fnd_message.parse_encoded(G_msg_tbl.Message(G_msg_count),
319 l_app_id,
320 l_message_name);
321
322 IF l_type IS NULL THEN
323 Select type
324 Into l_type
325 from fnd_new_messages a,
326 fnd_application b
327 where a.application_id = b.application_id
328 and a.language_code = USERENV('LANG')
329 and a.message_name = l_message_name
330 and b.application_short_name = l_app_id;
331 END IF;
332
333 EXCEPTION
334
335 WHEN OTHERS THEN
336
337 l_type := 'ERROR';
338
339 END;
340
341 END IF;
342
343 IF G_msg_context_tbl.COUNT >0 THEN
344
345 G_msg_tbl.ENTITY_CODE(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ENTITY_CODE;
346 G_msg_tbl.ENTITY_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).ENTITY_ID;
347 G_msg_tbl.HEADER_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).HEADER_ID;
348 G_msg_tbl.LINE_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).LINE_ID;
349 G_msg_tbl.ORDER_SOURCE_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).ORDER_SOURCE_ID;
350 G_msg_tbl.ORIG_SYS_DOCUMENT_REF(G_msg_count):= G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_REF;
351 G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF(G_msg_count):= G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_LINE_REF;
352 G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_TYPE_ID;
353 G_msg_tbl.SOURCE_DOCUMENT_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_ID;
354 G_msg_tbl.SOURCE_DOCUMENT_LINE_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_LINE_ID;
355 G_msg_tbl.ATTRIBUTE_CODE(G_msg_count):= G_msg_context_tbl(G_msg_context_count).ATTRIBUTE_CODE;
356 G_msg_tbl.CONSTRAINT_ID(G_msg_count):= G_msg_context_tbl(G_msg_context_count).CONSTRAINT_ID;
357 G_msg_tbl.PROCESS_ACTIVITY(G_msg_count):= G_msg_context_tbl(G_msg_context_count).PROCESS_ACTIVITY;
358 G_msg_tbl.TYPE(G_msg_count) := l_type;
359 G_msg_tbl.message(G_msg_count) := Get(G_msg_count, 'F');
360
361 ELSE
362 IF l_debug_level > 0 THEN
363 oe_debug_pub.add( 'NO CONTEXT , ADD TO MSG TBL' ) ;
364 END IF;
365 G_msg_tbl.ENTITY_CODE(G_msg_count) := NULL;
366 G_msg_tbl.ENTITY_ID(G_msg_count) := NULL;
367 G_msg_tbl.HEADER_ID(G_msg_count) := NULL;
368 G_msg_tbl.LINE_ID(G_msg_count) := NULL;
369 G_msg_tbl.ORDER_SOURCE_ID(G_msg_count) := NULL;
370 G_msg_tbl.ORIG_SYS_DOCUMENT_REF(G_msg_count) := NULL;
371 G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF(G_msg_count) := NULL;
372 G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID(G_msg_count) := NULL;
373 G_msg_tbl.SOURCE_DOCUMENT_ID(G_msg_count) := NULL;
374 G_msg_tbl.SOURCE_DOCUMENT_LINE_ID(G_msg_count) := NULL;
375 G_msg_tbl.ATTRIBUTE_CODE(G_msg_count) := NULL;
376 G_msg_tbl.CONSTRAINT_ID(G_msg_count) := NULL;
377 G_msg_tbl.PROCESS_ACTIVITY(G_msg_count) := NULL;
378 G_msg_tbl.TYPE(G_msg_count) := l_type;
379 G_msg_tbl.message(G_msg_count) := Get(G_msg_count, 'F');
380 END IF;
381
382 END Add;
383
384 PROCEDURE Add_Text(p_message_text IN VARCHAR2
385 ,p_type IN VARCHAR2 DEFAULT 'ERROR'
386 ,p_context_flag IN VARCHAR2 DEFAULT 'Y')
387 IS
388 --
389 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
390 --
391 BEGIN
392
393 G_msg_count := G_msg_count + 1;
394 extend;
395 G_msg_tbl.Message_text(G_msg_count) := p_message_text;
396
397 IF p_context_flag = 'Y' AND G_msg_context_count > 0 then
398 G_msg_tbl.ENTITY_CODE(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ENTITY_CODE;
399 G_msg_tbl.ENTITY_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ENTITY_ID;
400 G_msg_tbl.HEADER_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).HEADER_ID;
401 G_msg_tbl.LINE_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).LINE_ID;
402 G_msg_tbl.ORDER_SOURCE_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ORDER_SOURCE_ID;
403 G_msg_tbl.ORIG_SYS_DOCUMENT_REF(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_REF;
404 G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ORIG_SYS_DOCUMENT_LINE_REF;
405 G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_TYPE_ID;
406 G_msg_tbl.SOURCE_DOCUMENT_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_ID;
407 G_msg_tbl.SOURCE_DOCUMENT_LINE_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).SOURCE_DOCUMENT_LINE_ID;
408 G_msg_tbl.ATTRIBUTE_CODE(G_msg_count) := G_msg_context_tbl(G_msg_context_count).ATTRIBUTE_CODE;
409 G_msg_tbl.CONSTRAINT_ID(G_msg_count) := G_msg_context_tbl(G_msg_context_count).CONSTRAINT_ID;
410 G_msg_tbl.PROCESS_ACTIVITY(G_msg_count) := G_msg_context_tbl(G_msg_context_count).PROCESS_ACTIVITY;
411 G_msg_tbl.TYPE(G_msg_count) := p_type;
412
413 ELSE
414 G_msg_tbl.ENTITY_CODE(G_msg_count) := NULL;
415 G_msg_tbl.ENTITY_ID(G_msg_count) := NULL;
416 G_msg_tbl.HEADER_ID(G_msg_count) := NULL;
417 G_msg_tbl.LINE_ID(G_msg_count) := NULL;
418 G_msg_tbl.ORDER_SOURCE_ID(G_msg_count) := NULL;
419 G_msg_tbl.ORIG_SYS_DOCUMENT_REF(G_msg_count) := NULL;
420 G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF(G_msg_count) := NULL;
421 G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID(G_msg_count) := NULL;
422 G_msg_tbl.SOURCE_DOCUMENT_ID(G_msg_count) := NULL;
423 G_msg_tbl.SOURCE_DOCUMENT_LINE_ID(G_msg_count) := NULL;
424 G_msg_tbl.ATTRIBUTE_CODE(G_msg_count) := NULL;
425 G_msg_tbl.CONSTRAINT_ID(G_msg_count) := NULL;
426 G_msg_tbl.PROCESS_ACTIVITY(G_msg_count) := NULL;
427 G_msg_tbl.TYPE(G_msg_count) := p_type;
428 END IF;
429
430 END Add_Text;
431
432 PROCEDURE Delete_Msg
433 ( p_msg_index IN NUMBER := NULL
434 )
435 IS
436 l_msg_index NUMBER;
437 --
438 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
439 --
440 BEGIN
441
442 IF p_msg_index IS NULL THEN
443
444 Delete_tbl(p_count => NULL);
445 G_msg_count := 0;
446 G_msg_index := 0;
447
448 ELSE
449
450 IF G_msg_tbl.message.EXISTS(p_msg_index) THEN
451
452 IF p_msg_index <= G_msg_count THEN
453
454 FOR I IN p_msg_index..G_msg_count-1 LOOP
455
456 G_msg_tbl.MESSAGE( I ) := G_msg_tbl.MESSAGE( I + 1 );
457 G_msg_tbl.MESSAGE(I) := G_msg_tbl.MESSAGE_TEXT( I + 1 );
458 G_msg_tbl.ENTITY_CODE(I) := G_msg_tbl.ENTITY_CODE( I + 1 );
459 G_msg_tbl.ENTITY_ID(I) := G_msg_tbl.ENTITY_ID( I + 1 );
460 G_msg_tbl.HEADER_ID(I) := G_msg_tbl.HEADER_ID( I + 1 );
461 G_msg_tbl.LINE_ID(I) := G_msg_tbl.LINE_ID( I + 1 );
462 G_msg_tbl.ORDER_SOURCE_ID(I) := G_msg_tbl.ORDER_SOURCE_ID( I + 1 );
463 G_msg_tbl.ORIG_SYS_DOCUMENT_REF(I) := G_msg_tbl.ORIG_SYS_DOCUMENT_REF( I + 1 );
464 G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF(I) := G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF( I + 1 );
465 G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID(I) := G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID( I + 1 );
466 G_msg_tbl.SOURCE_DOCUMENT_ID(I) := G_msg_tbl.SOURCE_DOCUMENT_ID( I + 1 );
467 G_msg_tbl.SOURCE_DOCUMENT_LINE_ID(I) := G_msg_tbl.SOURCE_DOCUMENT_LINE_ID( I + 1 );
468 G_msg_tbl.ATTRIBUTE_CODE(I) := G_msg_tbl.ATTRIBUTE_CODE( I + 1 );
469 G_msg_tbl.CONSTRAINT_ID(I) := G_msg_tbl.CONSTRAINT_ID( I + 1 );
470 G_msg_tbl.PROCESS_ACTIVITY(I) := G_msg_tbl.PROCESS_ACTIVITY( I + 1 );
471 G_msg_tbl.NOTIFICATION_FLAG(I) := G_msg_tbl.NOTIFICATION_FLAG( I + 1 );
472 G_msg_tbl.TYPE(I) := G_msg_tbl.TYPE( I + 1 );
473
474 END LOOP;
475
476
477 Delete_tbl(G_msg_count);
478 G_msg_count := G_msg_count - 1 ;
479
480 END IF;
481
482 END IF;
483
484 END IF;
485
486 END Delete_Msg;
487
488 PROCEDURE Get
489 ( p_msg_index IN NUMBER := G_NEXT ,
490 p_encoded IN VARCHAR2 := FND_API.G_TRUE ,
491 p_data OUT NOCOPY VARCHAR2 ,
492
493 p_msg_index_out OUT NOCOPY NUMBER
494
495 )
496 IS
497 l_msg_index NUMBER := G_msg_index;
498 --
499 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
500 --
501 BEGIN
502
503 IF p_msg_index = G_NEXT THEN
504 G_msg_index := G_msg_index + 1;
505 ELSIF p_msg_index = G_FIRST THEN
506 G_msg_index := 1;
507 ELSIF p_msg_index = G_PREVIOUS THEN
508 G_msg_index := G_msg_index - 1;
509 ELSIF p_msg_index = G_LAST THEN
510 G_msg_index := G_msg_count ;
511 ELSE
512 G_msg_index := p_msg_index ;
513 END IF;
514
515
516 IF G_msg_tbl.Message_Text(G_msg_index) IS NOT NULL THEN
517
518 p_data := G_msg_tbl.Message_Text(G_msg_index);
519 IF l_debug_level > 0 THEN
520 oe_debug_pub.add( 'ENTERING THE MESSAGE_TEXT NOT NULL' ) ;
521 END IF;
522
523 ELSE
524 IF FND_API.To_Boolean( p_encoded ) THEN
525
526 p_data := G_msg_tbl.Message( G_msg_index );
527 IF l_debug_level > 0 THEN
528 oe_debug_pub.add( 'ENTERING P_ENCODED AS TRUE ' ) ;
529 END IF;
530
531 ELSE
532
533 IF l_debug_level > 0 THEN
534 oe_debug_pub.add( 'ENTERING P_ENCODED AS FALSE ' ) ;
535 END IF;
536 FND_MESSAGE.SET_ENCODED ( G_msg_tbl.Message( G_msg_index ));
537
538 p_data := FND_MESSAGE.GET;
539 IF l_debug_level > 0 THEN
540 oe_debug_pub.add( 'THE MESSAGE IS '||P_DATA ) ;
541 END IF;
542
543 END IF;
544 END IF;
545
546 p_msg_index_out := G_msg_index ;
547
548 EXCEPTION
549
550 WHEN NO_DATA_FOUND THEN
551
552 G_msg_index := l_msg_index;
553
554 p_data := NULL;
555 p_msg_index_out := NULL;
556
557 END Get;
558
559 FUNCTION Get
560 ( p_msg_index IN NUMBER := G_NEXT ,
561 p_encoded IN VARCHAR2 := FND_API.G_TRUE
562 )
563 RETURN VARCHAR2
564 IS
565 l_data VARCHAR2(2000) ;
566 l_msg_index_out NUMBER ;
567 --
568 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
569 --
570 BEGIN
571
572 Get
573 ( p_msg_index ,
574 p_encoded ,
575 l_data ,
576 l_msg_index_out
577 );
578
579 RETURN l_data ;
580
581 END Get;
582
583 -- PROCEDURE Reset
584 --
585 -- Usage Used to reset the message table index used in reading
586 -- messages to point to the top of the message table or
587 -- the botom of the message table.
588 --
589 -- Desc Sets G_msg_index to 0 or G_msg_count+1 depending on
590 -- the reset mode.
591 --
592 -- Parameters p_mode IN NUMBER := G_FIRST Optional
593 -- possible values are :
594 -- G_FIRST resets index to the begining of msg tbl
595 -- G_LAST resets index to the end of msg tbl
596 --
597
598 PROCEDURE Reset ( p_mode IN NUMBER := G_FIRST )
599 IS
600 l_PROCEDURE_name CONSTANT VARCHAR2(15):='Reset';
601 --
602 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
603 --
604 BEGIN
605
606 IF p_mode = G_FIRST THEN
607
608 G_msg_index := 0;
609
610 ELSIF p_mode = G_LAST THEN
611
612 G_msg_index := G_msg_count;
613
614 ELSE
615
616 -- Invalid mode.
617
618 OE_BULK_MSG_PUB.Add_Exc_Msg
619 ( p_pkg_name => G_PKG_NAME ,
620 p_PROCEDURE_name => l_procedure_name ,
621 p_error_text => 'Invalid p_mode: '||p_mode
622 );
623
624 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
625
626 END IF;
627
628 END Reset;
629
630 -- FUNCTION Check_Msg_Level
631 --
632 -- Usage Used by API developers to check if the level of the
633 -- message they want to write to the message table is
634 -- higher or equal to the message level threshold or not.
635 -- If the FUNCTION returns TRUE the developer should go
636 -- ahead and write the message to the message table else
637 -- he/she should skip writing this message.
638 -- Desc Accepts a message level as input fetches the value of
639 -- the message threshold profile option and compares it
640 -- to the input level.
641 -- Return TRUE if the level is equal to or higher than the
642 -- threshold. Otherwise, it returns FALSE.
643 --
644
645 FUNCTION Check_Msg_Level
646 ( p_message_level IN NUMBER := G_MSG_LVL_SUCCESS
647 ) RETURN BOOLEAN
648 IS
649 --
650 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
651 --
652 BEGIN
653
654 IF G_msg_level_threshold = FND_API.G_MISS_NUM THEN
655
656 -- Read the Profile option value.
657
658 G_msg_level_threshold :=
659 TO_NUMBER ( FND_PROFILE.VALUE('FND_AS_MSG_LEVEL_THRESHOLD') );
660
661 IF G_msg_level_threshold IS NULL THEN
662
663 G_msg_level_threshold := G_MSG_LVL_SUCCESS;
664
665 END IF;
666
667 END IF;
668
669 RETURN p_message_level >= G_msg_level_threshold ;
670
671 END; -- Check_Msg_Level
672
673 PROCEDURE Build_Exc_Msg
674 ( p_pkg_name IN VARCHAR2 :=FND_API.G_MISS_CHAR ,
675 p_PROCEDURE_name IN VARCHAR2 :=FND_API.G_MISS_CHAR ,
676 p_error_text IN VARCHAR2 :=FND_API.G_MISS_CHAR
677 )
678 IS
679 l_error_text VARCHAR2(2000) := p_error_text ;
680 --
681 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
682 --
683 BEGIN
684
685 -- If p_error_text is missing use SQLERRM.
686
687 IF p_error_text = FND_API.G_MISS_CHAR THEN
688
689 l_error_text := SUBSTR (SQLERRM , 1 , 2000);
690
691 END IF;
692
693 FND_MESSAGE.SET_NAME('FND','FND_AS_UNEXPECTED_ERROR');
694
695 IF p_pkg_name <> FND_API.G_MISS_CHAR THEN
696 FND_MESSAGE.SET_TOKEN('PKG_NAME',p_pkg_name);
697 END IF;
698
699 IF p_PROCEDURE_name <> FND_API.G_MISS_CHAR THEN
700 FND_MESSAGE.SET_TOKEN('PROCEDURE_NAME',p_procedure_name);
701 END IF;
702
703 IF l_error_text <> FND_API.G_MISS_CHAR THEN
704 FND_MESSAGE.SET_TOKEN('ERROR_TEXT',l_error_text);
705 END IF;
706
707 END; -- Build_Exc_Msg
708
709 PROCEDURE Add_Exc_Msg
710 ( p_pkg_name IN VARCHAR2 :=FND_API.G_MISS_CHAR ,
711 p_PROCEDURE_name IN VARCHAR2 :=FND_API.G_MISS_CHAR ,
712 p_error_text IN VARCHAR2 :=FND_API.G_MISS_CHAR ,
713 p_context_flag IN VARCHAR2 DEFAULT 'Y'
714 )
715 IS
716 --
717 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
718 --
719 BEGIN
720 Build_Exc_Msg
721 ( p_pkg_name ,
722 p_PROCEDURE_name ,
723 p_error_text
724 );
725 Add((p_context_flag));
726 END Add_Exc_Msg ;
727
728 -- PROCEDURE Dump_Msg
729 --
730
731 PROCEDURE Dump_Msg
732 ( p_msg_index IN NUMBER )
733 IS
734 --
735 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
736 --
737 BEGIN
738 OE_DEBUG_PUB.debug_on;
739 IF l_debug_level > 0 THEN
740 oe_debug_pub.add( 'MESSAGE NUMBER : '||P_MSG_INDEX ) ;
741 END IF;
742 IF l_debug_level > 0 THEN
743 oe_debug_pub.add( 'ORDER_SOURCE_ID = '||G_MSG_TBL.ORDER_SOURCE_ID ( P_MSG_INDEX ) ) ;
744 END IF;
745 IF l_debug_level > 0 THEN
746 oe_debug_pub.add( 'ORIG_SYS_DOC_REF = '||G_MSG_TBL.ORIG_SYS_DOCUMENT_REF ( P_MSG_INDEX ) ) ;
747 END IF;
748 IF l_debug_level > 0 THEN
749 oe_debug_pub.add( 'ORIG_SYS_LIN_REF = '||G_MSG_TBL.ORIG_SYS_DOCUMENT_LINE_REF ( P_MSG_INDEX ) ) ;
750 END IF;
751 IF l_debug_level > 0 THEN
752 oe_debug_pub.add( 'SOURCE_DOC_TYPE_ID = '||G_MSG_TBL.SOURCE_DOCUMENT_TYPE_ID ( P_MSG_INDEX ) ) ;
753 END IF;
754 IF l_debug_level > 0 THEN
755 oe_debug_pub.add( 'SOURCE_DOC_ID = '||G_MSG_TBL.SOURCE_DOCUMENT_ID ( P_MSG_INDEX ) ) ;
756 END IF;
757 IF l_debug_level > 0 THEN
758 oe_debug_pub.add( 'SOURCE_LIN_ID = '||G_MSG_TBL.SOURCE_DOCUMENT_LINE_ID ( P_MSG_INDEX ) ) ;
759 END IF;
760 IF l_debug_level > 0 THEN
761 oe_debug_pub.add( 'ATTRIBUTE_CODE = '||G_MSG_TBL.ATTRIBUTE_CODE ( P_MSG_INDEX ) ) ;
762 END IF;
763 IF l_debug_level > 0 THEN
764 oe_debug_pub.add( 'CONSTRAINT_ID = '||G_MSG_TBL.CONSTRAINT_ID ( P_MSG_INDEX ) ) ;
765 END IF;
766 IF l_debug_level > 0 THEN
767 oe_debug_pub.add( 'PROCESS_ACTIVITY = '||G_MSG_TBL.PROCESS_ACTIVITY ( P_MSG_INDEX ) ) ;
768 END IF;
769 OE_DEBUG_PUB.dumpdebug;
770 OE_DEBUG_PUB.debug_off;
771 END Dump_Msg;
772
773 -- PROCEDURE Dump_List
774 --
775 PROCEDURE Dump_List
776 ( p_messages IN BOOLEAN := FALSE
777 )
778 IS
779 --
780 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
781 --
782 BEGIN
783
784 OE_DEBUG_PUB.debug_on;
785 IF l_debug_level > 0 THEN
786 oe_debug_pub.add( 'DUMPING MESSAGE LIST :' ) ;
787 END IF;
788 IF l_debug_level > 0 THEN
789 oe_debug_pub.add( 'G_MSG_TBL.MESSAGE.COUNT = '||G_MSG_TBL.MESSAGE.COUNT ) ;
790 END IF;
791 IF l_debug_level > 0 THEN
792 oe_debug_pub.add( 'G_MSG_COUNT = '||G_MSG_COUNT ) ;
793 END IF;
794 IF l_debug_level > 0 THEN
795 oe_debug_pub.add( 'G_MSG_INDEX = '||G_MSG_INDEX ) ;
796 END IF;
797 OE_DEBUG_PUB.dumpdebug;
798 OE_DEBUG_PUB.debug_off;
799
800 IF p_messages THEN
801
802 FOR I IN 1..G_msg_tbl.Message.COUNT LOOP
803
804 dump_Msg (I);
805
806 END LOOP;
807
808 END IF;
809
810 END Dump_List;
811
812
813 -- PROCEDURE save_messages
814 --
815 -- Usage Used by API developers to save messages in database.
816 -- This PROCEDURE is used to save massages which were created by
817 -- batch programs.
818 --
819 -- Desc Accepts request_id as input and assign the same to all
820 -- messages.
821 --
822 --
823 -- Parameters p_request_id IN NUMBER.
824
825 PROCEDURE save_messages(p_request_id IN NUMBER
826 ,p_message_source_code IN VARCHAR2 DEFAULT 'C')
827 IS
828 l_count_msg NUMBER;
829 --
830 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
831 --
832 begin
833 IF l_debug_level > 0 THEN
834 oe_debug_pub.add( 'ENTER SAVE_MESSAGES' , 1 ) ;
835 END IF;
836 l_count_msg := G_msg_tbl.ENTITY_ID.COUNT;
837
838 FORALL i IN 1..l_count_msg
839 INSERT INTO OE_PROCESSING_MSGS
840 (
841 TRANSACTION_ID
842 , REQUEST_ID
843 , ENTITY_CODE
844 , ENTITY_ID
845 , HEADER_ID
846 , LINE_ID
847 , ORIGINAL_SYS_DOCUMENT_REF
848 , ORIGINAL_SYS_DOCUMENT_LINE_REF
849 , SOURCE_DOCUMENT_ID
850 , SOURCE_DOCUMENT_LINE_ID
851 , ORDER_SOURCE_ID
852 , SOURCE_DOCUMENT_TYPE_ID
853 , ATTRIBUTE_CODE
854 , PROGRAM_UPDATE_DATE
855 , PROGRAM_APPLICATION_ID
856 , PROGRAM_ID
857 , LAST_UPDATE_LOGIN
858 , LAST_UPDATED_BY
859 , LAST_UPDATE_DATE
860 , CREATED_BY
861 , CREATION_DATE
862 , CONSTRAINT_ID
863 , PROCESS_ACTIVITY
864 , NOTIFICATION_FLAG
865 , ENTITY_REF
866 , CHANGE_SEQUENCE
867 , ORIG_SYS_SHIPMENT_REF
868 , TYPE
869 , MESSAGE_SOURCE_CODE
870 , LANGUAGE
871 , MESSAGE_TEXT
872 )
873 VALUES
874 (
875 OE_MSG_ID_S.NEXTVAL
876 , p_request_id
877 , G_msg_tbl.ENTITY_CODE(i)
878 , G_msg_tbl.ENTITY_ID(i)
879 , G_msg_tbl.HEADER_ID(i)
880 , G_msg_tbl.LINE_ID(i)
881 , G_msg_tbl.ORIG_SYS_DOCUMENT_REF(i)
882 , G_msg_tbl.ORIG_SYS_DOCUMENT_LINE_REF(i)
883 , G_msg_tbl.SOURCE_DOCUMENT_ID(i)
884 , G_msg_tbl.SOURCE_DOCUMENT_LINE_ID(i)
885 , G_msg_tbl.ORDER_SOURCE_ID(i)
886 , G_msg_tbl.SOURCE_DOCUMENT_TYPE_ID(i)
887 , G_msg_tbl.ATTRIBUTE_CODE(i)
888 , NULL
889 , 660
890 , NULL
891 , FND_GLOBAL.USER_ID
892 , FND_GLOBAL.USER_ID
893 , sysdate
894 , FND_GLOBAL.USER_ID
895 , sysdate
896 , G_msg_tbl.CONSTRAINT_ID(i)
897 , G_msg_tbl.PROCESS_ACTIVITY(i)
898 , G_msg_tbl.NOTIFICATION_FLAG(i)
899 , G_msg_tbl.ENTITY_REF(i)
900 , G_msg_tbl.change_sequence(i)
901 , G_msg_tbl.ORIG_SYS_SHIPMENT_REF(i)
902 , G_msg_tbl.TYPE(i)
903 , 'C'
904 , USERENV('LANG')
905 , G_msg_tbl.message(i)
906 );
907
908 IF l_debug_level > 0 THEN
909 oe_debug_pub.add( 'EXIT SAVE_MESSAGES' , 1 ) ;
910 END IF;
911 OE_BULK_MSG_PUB.initialize;
912
913 EXCEPTION
914 WHEN OTHERS THEN
915 IF l_debug_level > 0 THEN
916 oe_debug_pub.add( 'OTHERS ERROR , SAVE_MESSAGES' ) ;
917 END IF;
918 IF l_debug_level > 0 THEN
919 oe_debug_pub.add( SUBSTR ( SQLERRM , 1 , 240 ) ) ;
920 END IF;
921 end;
922
923
924 -- PROCEDURE Get_msg_tbl
925 --
926 -- Usage Used by process messages form to retreive messages from stack .
927 --
928 -- Desc This PROCEDURE returns message_table to the caller.
929 -- This PROCEDURE also resolvs message text before returning
930 -- message table to the caller.
931 --
932 --
933 PROCEDURE Get_msg_tbl(x_msg_tbl IN OUT NOCOPY /* file.sql.39 change */ G_MSG_REC_TYPE)
934 IS
935 --
936 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
937 --
938 BEGIN
939
940 FOR i IN G_msg_tbl.Message.FIRST .. G_msg_tbl.Message.LAST LOOP
941
942
943 IF G_msg_tbl.message_text(i) IS NOT NULL THEN
944
945 x_msg_tbl.message(i) := G_msg_tbl.message_text(i);
946
947 ELSE
948
949 x_msg_tbl.message(i) := GET(i,'F');
950
951 END IF;
952
953 x_msg_tbl.entity_code(i) := G_msg_tbl.entity_code(i);
954 x_msg_tbl.entity_id(i) := G_msg_tbl.entity_id(i);
955 x_msg_tbl.header_id(i) := G_msg_tbl.header_id(i);
956 x_msg_tbl.line_id(i) := G_msg_tbl.line_id(i);
957 x_msg_tbl.order_source_id(i) := G_msg_tbl.order_source_id(i);
958 x_msg_tbl.orig_sys_document_ref(i) := G_msg_tbl.orig_sys_document_ref(i);
959 x_msg_tbl.orig_sys_document_line_ref(i) := G_msg_tbl.orig_sys_document_line_ref(i);
960 x_msg_tbl.source_document_type_id(i) := G_msg_tbl.source_document_type_id(i);
961 x_msg_tbl.source_document_id(i) := G_msg_tbl.source_document_id(i);
962 x_msg_tbl.source_document_line_id(i) := G_msg_tbl.source_document_line_id(i);
963 x_msg_tbl.attribute_code(i) := G_msg_tbl.attribute_code(i);
964 x_msg_tbl.constraint_id(i) := G_msg_tbl.constraint_id(i);
965 x_msg_tbl.process_activity(i) := G_msg_tbl.process_activity(i);
966 x_msg_tbl.notification_flag(i) := G_msg_tbl.notification_flag(i);
967 x_msg_tbl.message_text(i) := null;
968 x_msg_tbl.type(i) := G_msg_tbl.type(i);
969
970
971 END LOOP;
972
973
974 END;
975
976
977 PROCEDURE Transfer_Msg_Stack
978 ( p_msg_index IN NUMBER DEFAULT NULL
979 )
980 IS
981 l_count NUMBER;
982 l_message VARCHAR2(2000);
983 --
984 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
985 --
986 BEGIN
987
988 IF p_msg_index IS NOT NULL THEN
989
990 l_message := fnd_msg_pub.get(p_msg_index,'F');
991 add_text(l_message);
992
993 ELSE
994
995 l_count := fnd_msg_pub.count_msg;
996
997 FOR i in 1..l_count LOOP
998
999 l_message := fnd_msg_pub.get(i,'F');
1000 add_text(l_message);
1001
1002
1003 END LOOP;
1004
1005 END IF; -- p_msg_index
1006
1007 END Transfer_Msg_Stack;
1008
1009 END OE_BULK_MSG_PUB ;