12: -----------------------------------------------------------------------*/
13:
14: PROCEDURE Header
15: ( p_control_rec IN OE_BLANKET_PUB.Control_Rec_Type
16: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
17: , p_x_header_rec IN OUT NOCOPY OE_Blanket_PUB.header_Rec_Type
18: , p_x_old_header_rec IN OUT NOCOPY OE_Blanket_PUB.header_Rec_Type
19: , x_return_status OUT NOCOPY VARCHAR2
20: )
25: --
26: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
27: --
28: BEGIN
29: x_return_status := FND_API.G_RET_STS_SUCCESS;
30: IF l_debug_level > 0 THEN
31: oe_debug_pub.add( 'INSIDE BLANKET HEADER' ,1 ) ;
32: END IF;
33:
37: oe_blanket_util.query_header( p_header_id =>
38: p_x_header_rec.header_id,
39: x_header_rec => p_x_old_header_rec,
40: x_return_status => l_return_status);
41: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
42: x_return_status := l_return_status;
43: END IF;
44: l_old_header_rec := p_x_old_header_rec;
45: END IF;
76: , x_result => l_sec_result
77: , x_return_status => l_return_status
78: );
79:
80: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
81: x_return_status := l_return_status;
82: END IF;
83:
84: IF l_sec_result = OE_PC_GLOBALS.YES THEN
81: x_return_status := l_return_status;
82: END IF;
83:
84: IF l_sec_result = OE_PC_GLOBALS.YES THEN
85: RAISE FND_API.G_EXC_ERROR;
86: END IF;
87:
88: END IF;
89:
96: oe_blanket_util.validate_attributes( p_x_header_Rec => p_x_header_rec,
97: p_old_header_rec => l_old_header_rec,
98: p_validation_level => p_validation_level,
99: x_return_status => l_return_status);
100: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
101: x_return_status := l_return_status;
102: END IF;
103: END IF;
104:
108: IF p_x_header_rec.operation = oe_globals.g_opr_create THEN
109: oe_blanket_util.default_attributes (
110: p_x_header_Rec => p_x_header_rec,
111: x_return_status => l_return_status);
112: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
113: x_return_status := l_return_status;
114: END IF;
115:
116: END IF;
134: , x_result => l_sec_result
135: , x_return_status => l_return_status
136: );
137:
138: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
139: x_return_status := l_return_status;
140: END IF;
141:
142: IF l_sec_result = OE_PC_GLOBALS.YES THEN
139: x_return_status := l_return_status;
140: END IF;
141:
142: IF l_sec_result = OE_PC_GLOBALS.YES THEN
143: RAISE FND_API.G_EXC_ERROR;
144: END IF;
145:
146: END IF;
147:
151: IF p_control_rec.validate_entity THEN
152: oe_blanket_util.Validate_entity ( p_header_rec => p_x_header_rec,
153: p_old_header_rec => l_old_header_rec,
154: x_return_status => l_return_status);
155: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
156: x_return_status := l_return_status;
157: END IF;
158: END IF;
159:
160:
161: -- Write the record into database
162:
163: IF p_control_rec.write_to_db AND
164: x_return_status = FND_API.G_RET_STS_SUCCESS THEN
165:
166: IF p_x_header_rec.operation = oe_globals.g_opr_update THEN
167: oe_blanket_util.update_row (p_header_rec => p_x_header_rec,
168: x_return_status => l_return_status);
165:
166: IF p_x_header_rec.operation = oe_globals.g_opr_update THEN
167: oe_blanket_util.update_row (p_header_rec => p_x_header_rec,
168: x_return_status => l_return_status);
169: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
170: x_return_status := l_return_status;
171: END IF;
172:
173: ELSIF p_x_header_rec.operation = oe_globals.g_opr_create THEN
172:
173: ELSIF p_x_header_rec.operation = oe_globals.g_opr_create THEN
174: oe_blanket_util.insert_row (p_header_rec => p_x_header_rec,
175: x_return_status => l_return_status);
176: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
177: x_return_status := l_return_status;
178: END IF;
179:
180: -- hashraf start of pack J
180: -- hashraf start of pack J
181: ELSIF p_x_header_rec.operation = oe_globals.g_opr_delete THEN
182: oe_blanket_util.delete_row (p_header_id => p_x_header_rec.header_id,
183: x_return_status => l_return_status);
184: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
185: x_return_status := l_return_status;
186: END IF;
187:
188: -- hashraf end of Pack J
194: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
195:
196: EXCEPTION
197:
198: WHEN FND_API.G_EXC_ERROR THEN
199: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
200: if l_debug_level > 0 then
201: oe_debug_pub.add('delete request1',2);
202: end if;
201: oe_debug_pub.add('delete request1',2);
202: end if;
203: OE_Delayed_Requests_Pvt.Clear_Request
204: (x_return_status => l_return_status);
205: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
206: x_return_status := l_return_status;
207: END IF;
208: END IF;
209:
207: END IF;
208: END IF;
209:
210: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
211: p_x_header_rec.return_status := FND_API.G_RET_STS_ERROR;
212: x_return_status := FND_API.G_RET_STS_ERROR;
213:
214: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
215: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
208: END IF;
209:
210: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
211: p_x_header_rec.return_status := FND_API.G_RET_STS_ERROR;
212: x_return_status := FND_API.G_RET_STS_ERROR;
213:
214: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
215: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
216: if l_debug_level > 0 then
210: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
211: p_x_header_rec.return_status := FND_API.G_RET_STS_ERROR;
212: x_return_status := FND_API.G_RET_STS_ERROR;
213:
214: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
215: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
216: if l_debug_level > 0 then
217: oe_debug_pub.add('delete request1',2);
218: end if;
217: oe_debug_pub.add('delete request1',2);
218: end if;
219: OE_Delayed_Requests_Pvt.Clear_Request
220: (x_return_status => l_return_status);
221: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
222: x_return_status := l_return_status;
223: END IF;
224: END IF;
225:
223: END IF;
224: END IF;
225:
226: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
227: p_x_header_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
228: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229:
230: WHEN OTHERS THEN
231: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
224: END IF;
225:
226: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
227: p_x_header_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
228: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229:
230: WHEN OTHERS THEN
231: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
232: if l_debug_level > 0 then
233: oe_debug_pub.add('delete request1',2);
234: end if;
235: OE_Delayed_Requests_Pvt.Clear_Request
236: (x_return_status => l_return_status);
237: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
238: x_return_status := l_return_status;
239: END IF;
240: END IF;
241:
239: END IF;
240: END IF;
241:
242: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
243: p_x_header_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
244: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
245: END Header;
246:
247:
240: END IF;
241:
242: OE_MSG_PUB.reset_msg_context('BLANKET_HEADER');
243: p_x_header_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
244: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
245: END Header;
246:
247:
248:
249: /*---------------------------------------------------------------------- */
250:
251: PROCEDURE Lines
252: ( p_control_rec IN oe_blanket_pub.Control_Rec_Type
253: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
254: , p_x_line_tbl IN OUT NOCOPY OE_Blanket_PUB.line_tbl_Type
255: , p_x_old_line_tbl IN OUT NOCOPY OE_Blanket_PUB.line_tbl_Type
256: , x_return_status OUT NOCOPY VARCHAR2
257: )
264: --
265: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
266: --
267: BEGIN
268: x_return_status := FND_API.G_RET_STS_SUCCESS;
269:
270: I := p_x_line_tbl.first;
271: WHILE I is not null
272: LOOP
301: oe_blanket_util.validate_attributes( p_x_line_Rec => l_line_rec,
302: p_old_line_rec => l_old_line_rec,
303: p_validation_level => p_validation_level,
304: x_return_status => l_return_status);
305: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
306: x_return_status := l_return_status;
307: END IF;
308: END IF;
309:
326: , x_result => l_sec_result
327: , x_return_status => l_return_status
328: );
329:
330: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
331: x_return_status := l_return_status;
332: END IF;
333:
334: IF l_sec_result = OE_PC_GLOBALS.YES THEN
331: x_return_status := l_return_status;
332: END IF;
333:
334: IF l_sec_result = OE_PC_GLOBALS.YES THEN
335: RAISE FND_API.G_EXC_ERROR;
336: END IF;
337:
338: END IF;
339:
345: oe_blanket_util.default_attributes (
346: p_x_line_rec => l_line_rec,
347: p_default_from_header => p_control_rec.default_from_header,
348: x_return_status => l_return_status);
349: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
350: x_return_status := l_return_status;
351: END IF;
352:
353: END IF;
371: , x_result => l_sec_result
372: , x_return_status => l_return_status
373: );
374:
375: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
376: x_return_status := l_return_status;
377: END IF;
378:
379: IF l_sec_result = OE_PC_GLOBALS.YES THEN
376: x_return_status := l_return_status;
377: END IF;
378:
379: IF l_sec_result = OE_PC_GLOBALS.YES THEN
380: RAISE FND_API.G_EXC_ERROR;
381: END IF;
382:
383: END IF;
384:
389:
390: oe_blanket_util.Validate_entity ( p_line_rec => l_line_rec,
391: p_old_line_rec => l_old_line_rec,
392: x_return_status => l_return_status);
393: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
394: x_return_status := l_return_status;
395: END IF;
396:
397: END IF;
399:
400: -- Write the records into database
401:
402: IF p_control_rec.write_to_db AND
403: x_return_status = FND_API.G_RET_STS_SUCCESS THEN
404:
405: IF l_line_rec.operation = oe_globals.g_opr_update THEN
406: oe_blanket_util.update_row (p_line_rec => l_line_rec,
407: x_return_status => l_return_status);
404:
405: IF l_line_rec.operation = oe_globals.g_opr_update THEN
406: oe_blanket_util.update_row (p_line_rec => l_line_rec,
407: x_return_status => l_return_status);
408: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
409: x_return_status := l_return_status;
410: END IF;
411:
412: ELSIF l_line_rec.operation = oe_globals.g_opr_create THEN
413:
414:
415: oe_blanket_util.insert_row (p_line_rec => l_line_rec,
416: x_return_status => l_return_status);
417: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
418: x_return_status := l_return_status;
419: END IF;
420:
421: -- hashraf start of Pack J
423:
424:
425: oe_blanket_util.delete_row (p_line_id => l_line_rec.line_id,
426: x_return_status => l_return_status);
427: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
428: x_return_status := l_return_status;
429: END IF;
430: -- hashraf end of Pack J
431:
449:
450:
451: EXCEPTION
452:
453: WHEN FND_API.G_EXC_ERROR THEN
454: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
455: if l_debug_level > 0 then
456: oe_debug_pub.add('delete request1',2);
457: end if;
456: oe_debug_pub.add('delete request1',2);
457: end if;
458: OE_Delayed_Requests_Pvt.Clear_Request
459: (x_return_status => l_return_status);
460: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
461: x_return_status := l_return_status;
462: END IF;
463:
464: END IF;
463:
464: END IF;
465:
466: OE_MSG_PUB.reset_msg_context('BLANKET_LINE');
467: x_return_status := FND_API.G_RET_STS_ERROR;
468:
469:
470: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
471: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
466: OE_MSG_PUB.reset_msg_context('BLANKET_LINE');
467: x_return_status := FND_API.G_RET_STS_ERROR;
468:
469:
470: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
471: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
472: if l_debug_level > 0 then
473: oe_debug_pub.add('delete request1',2);
474: end if;
473: oe_debug_pub.add('delete request1',2);
474: end if;
475: OE_Delayed_Requests_Pvt.Clear_Request
476: (x_return_status => l_return_status);
477: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
478: x_return_status := l_return_status;
479: END IF;
480:
481: END IF;
480:
481: END IF;
482:
483: OE_MSG_PUB.reset_msg_context('BLANKET_LINE');
484: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
485:
486:
487: WHEN OTHERS THEN
488: IF NOT (OE_GLOBALS.G_UI_FLAG) THEN
490: oe_debug_pub.add('delete request1',2);
491: end if;
492: OE_Delayed_Requests_Pvt.Clear_Request
493: (x_return_status => l_return_status);
494: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
495: x_return_status := l_return_status;
496: END IF;
497:
498: END IF;
497:
498: END IF;
499:
500: OE_MSG_PUB.reset_msg_context('BLANKET_LINE');
501: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
502:
503:
504: END Lines;
505:
523: PROCEDURE Process_Blanket
524: ( p_org_id IN NUMBER := NULL --MOAC
525: , p_operating_unit IN VARCHAR2 := NULL -- MOAC
526: , p_api_version_number IN NUMBER := 1.0
527: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
528: , x_return_status OUT NOCOPY VARCHAR2
529: , x_msg_count OUT NOCOPY NUMBER
530: , x_msg_data OUT NOCOPY VARCHAR2
531: , p_header_rec IN oe_blanket_pub.header_Rec_type :=
557: --
558: BEGIN
559: NULL;
560:
561: x_return_status := FND_API.G_RET_STS_SUCCESS;
562: G_BATCH_MODE := TRUE;
563:
564: SAVEPOINT Process_Blanket;
565:
582: , p_x_old_header_rec => l_old_header_Rec
583: , x_return_status => l_return_status
584: );
585:
586: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
587: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
588: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
589: RAISE FND_API.G_EXC_ERROR;
590: END IF;
583: , x_return_status => l_return_status
584: );
585:
586: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
587: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
588: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
589: RAISE FND_API.G_EXC_ERROR;
590: END IF;
591: x_header_rec := l_header_rec;
584: );
585:
586: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
587: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
588: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
589: RAISE FND_API.G_EXC_ERROR;
590: END IF;
591: x_header_rec := l_header_rec;
592:
585:
586: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
587: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
588: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
589: RAISE FND_API.G_EXC_ERROR;
590: END IF;
591: x_header_rec := l_header_rec;
592:
593: END IF;
623: , p_x_old_line_tbl => l_old_line_tbl
624: , x_return_status => l_return_status
625: );
626:
627: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
628:
629: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
630: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
631:
625: );
626:
627: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
628:
629: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
630: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
631:
632: RAISE FND_API.G_EXC_ERROR;
633: END IF;
626:
627: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
628:
629: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
630: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
631:
632: RAISE FND_API.G_EXC_ERROR;
633: END IF;
634: if l_debug_level > 0 then
628:
629: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
630: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
631:
632: RAISE FND_API.G_EXC_ERROR;
633: END IF;
634: if l_debug_level > 0 then
635: oe_debug_pub.add('after lines processing', 2);
636: end if;
640: -- Process Object level requests
641:
642: oe_blanket_util.Process_Object( x_return_status => l_return_status);
643:
644: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
645: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
647: RAISE FND_API.G_EXC_ERROR;
648: END IF;
641:
642: oe_blanket_util.Process_Object( x_return_status => l_return_status);
643:
644: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
645: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
647: RAISE FND_API.G_EXC_ERROR;
648: END IF;
649:
642: oe_blanket_util.Process_Object( x_return_status => l_return_status);
643:
644: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
645: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
647: RAISE FND_API.G_EXC_ERROR;
648: END IF;
649:
650:
643:
644: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
645: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
646: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
647: RAISE FND_API.G_EXC_ERROR;
648: END IF;
649:
650:
651: OE_MSG_PUB.Count_And_Get
658: oe_debug_pub.ADD('Exiting OE_BLANKET_PUB.PROCESS_BLANKET', 1);
659: end if;
660: EXCEPTION
661:
662: WHEN FND_API.G_EXC_ERROR THEN
663:
664: if l_debug_level > 0 then
665: oe_debug_pub.add('BO: Exiting Process Blanket with Error', 2);
666: end if;
663:
664: if l_debug_level > 0 then
665: oe_debug_pub.add('BO: Exiting Process Blanket with Error', 2);
666: end if;
667: x_return_status := FND_API.G_RET_STS_ERROR;
668:
669: ROLLBACK TO SAVEPOINT Process_blanket;
670:
671:
675: ( p_count => x_msg_count
676: , p_data => x_msg_data
677: );
678:
679: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
680:
681: if l_debug_level > 0 then
682: oe_debug_pub.add('bO: Exiting Process Blanket with Unexpected Error', 2);
683: end if;
680:
681: if l_debug_level > 0 then
682: oe_debug_pub.add('bO: Exiting Process Blanket with Unexpected Error', 2);
683: end if;
684: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
685:
686: ROLLBACK TO SAVEPOINT Process_Blanket;
687:
688:
697: if l_debug_level > 0 then
698: oe_debug_pub.add('bO: Exiting Process Blanket with others Error', 2);
699: end if;
700:
701: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
702:
703: ROLLBACK TO SAVEPOINT Process_Blanket;
704:
705: