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