38: p_old_line_rec IN OE_ORDER_PUB.Line_Rec_Type,
39: x_return_status OUT NOCOPY VARCHAR2)
40:
41: IS
42: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
43: l_msg_count NUMBER;
44: l_msg_data VARCHAR2(2000);
45: l_result Varchar2(30);
46: l_scheduling_level_code VARCHAR2(30) := NULL;
43: l_msg_count NUMBER;
44: l_msg_data VARCHAR2(2000);
45: l_result Varchar2(30);
46: l_scheduling_level_code VARCHAR2(30) := NULL;
47: l_out_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
48: l_type_code VARCHAR2(30);
49: l_org_id NUMBER;
50: l_bill_seq_id NUMBER;
51: l_make_buy NUMBER;
61: -- If the quantity on the line is missing or null and if
62: -- the user is trying to performing scheduling, it is an error
63:
64: IF ((p_old_line_rec.ordered_quantity is null OR
65: p_old_line_rec.ordered_quantity = FND_API.G_MISS_NUM) AND
66: (p_line_rec.ordered_quantity is null OR
67: p_line_rec.ordered_quantity = FND_API.G_MISS_NUM)) THEN
68:
69: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_QUANTITY');
63:
64: IF ((p_old_line_rec.ordered_quantity is null OR
65: p_old_line_rec.ordered_quantity = FND_API.G_MISS_NUM) AND
66: (p_line_rec.ordered_quantity is null OR
67: p_line_rec.ordered_quantity = FND_API.G_MISS_NUM)) THEN
68:
69: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_QUANTITY');
70: OE_MSG_PUB.Add;
71: l_return_status := FND_API.G_RET_STS_ERROR;
67: p_line_rec.ordered_quantity = FND_API.G_MISS_NUM)) THEN
68:
69: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_QUANTITY');
70: OE_MSG_PUB.Add;
71: l_return_status := FND_API.G_RET_STS_ERROR;
72: END IF;
73:
74: -- If the quantity on the line is zero(which is different from
75: -- missing) and if the user is trying to performing scheduling,
75: -- missing) and if the user is trying to performing scheduling,
76: -- it is an error
77:
78: IF (((p_old_line_rec.ordered_quantity is null OR
79: p_old_line_rec.ordered_quantity = FND_API.G_MISS_NUM OR
80: p_old_line_rec.ordered_quantity = 0) AND
81: p_line_rec.ordered_quantity = 0) AND
82: (nvl(p_line_rec.cancelled_flag,'N') = 'N')) THEN
83:
88:
89: IF l_debug_level > 0 THEN
90: oe_debug_pub.add( 'E2' , 1 ) ;
91: END IF;
92: l_return_status := FND_API.G_RET_STS_ERROR;
93: END IF;
94:
95: END IF;
96:
96:
97: -- If the line is shipped, scheduling is not allowed.
98:
99: IF (p_line_rec.shipped_quantity is not null) AND
100: (p_line_rec.shipped_quantity <> FND_API.G_MISS_NUM) THEN
101:
102: IF p_line_rec.schedule_action_code is not null THEN
103:
104: -- The line is cancelled. Cannot perform scheduling
109:
110: IF l_debug_level > 0 THEN
111: oe_debug_pub.add( 'OE_SCH_LINE_SHIPPED' , 1 ) ;
112: END IF;
113: l_return_status := FND_API.G_RET_STS_ERROR;
114:
115: END IF;
116: END IF;
117:
130:
131: IF l_debug_level > 0 THEN
132: oe_debug_pub.add( 'E4' , 1 ) ;
133: END IF;
134: l_return_status := FND_API.G_RET_STS_ERROR;
135: END IF;
136:
137: -- after changing reserved qty, trying to unschedule or unreserve
138: -- dose not make sense.
143: (p_line_rec.reserved_quantity is not null) THEN
144:
145: FND_MESSAGE.SET_NAME('ONT','OE_SCH_RES_QTY_CHG_NOT_ALLOWED');
146: OE_MSG_PUB.Add;
147: l_return_status := FND_API.G_RET_STS_ERROR;
148: IF l_debug_level > 0 THEN
149: oe_debug_pub.add( 'E5' , 1 ) ;
150: END IF;
151: END IF;
167:
168: FND_MESSAGE.SET_NAME('ONT','OE_SCH_RES_MORE_ORD_QTY');
169: OE_MSG_PUB.Add;
170:
171: l_return_status := FND_API.G_RET_STS_ERROR;
172: IF l_debug_level > 0 THEN
173: oe_debug_pub.add( 'E6' , 1 ) ;
174: END IF;
175: END IF;
180: -- and if the user is trying to performing scheduling,
181: -- it is an error
182:
183: IF (p_line_rec.order_quantity_uom is null OR
184: p_line_rec.order_quantity_uom = FND_API.G_MISS_CHAR) THEN
185:
186: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_UOM');
187: OE_MSG_PUB.Add;
188:
185:
186: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_UOM');
187: OE_MSG_PUB.Add;
188:
189: l_return_status := FND_API.G_RET_STS_ERROR;
190: IF l_debug_level > 0 THEN
191: oe_debug_pub.add( 'E7' , 1 ) ;
192: END IF;
193: END IF;
199: oe_debug_pub.add( 'CHECKING THE ITEM....' , 1 ) ;
200: END IF;
201:
202: IF (p_line_rec.inventory_item_id is null OR
203: p_line_rec.inventory_item_id = FND_API.G_MISS_NUM) THEN
204:
205: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_ITEM');
206: OE_MSG_PUB.Add;
207:
204:
205: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_ITEM');
206: OE_MSG_PUB.Add;
207:
208: l_return_status := FND_API.G_RET_STS_ERROR;
209: END IF;
210:
211: -- If the request_date on the line is missing or null and
212: -- if the user is trying to performing scheduling,
215: IF l_debug_level > 0 THEN
216: oe_debug_pub.add( 'CHECKING THE REQUEST DATE....' , 1 ) ;
217: END IF;
218: IF (p_line_rec.request_date is null OR
219: p_line_rec.request_date = FND_API.G_MISS_DATE) THEN
220:
221: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_REQUEST_DATE');
222: OE_MSG_PUB.Add;
223: l_return_status := FND_API.G_RET_STS_ERROR;
219: p_line_rec.request_date = FND_API.G_MISS_DATE) THEN
220:
221: FND_MESSAGE.SET_NAME('ONT','OE_SCH_MISSING_REQUEST_DATE');
222: OE_MSG_PUB.Add;
223: l_return_status := FND_API.G_RET_STS_ERROR;
224: END IF;
225:
226: -- If the line belongs to a set, you cannot unschedule the line
227: IF l_debug_level > 0 THEN
227: IF l_debug_level > 0 THEN
228: oe_debug_pub.add( 'CHECKING FOR SET VALIDATIONS....' , 1 ) ;
229: END IF;
230: IF ((p_line_rec.ship_set_id is not null AND
231: p_line_rec.ship_set_id <> FND_API.G_MISS_NUM) AND
232: (p_line_rec.schedule_action_code =
233: OE_ORDER_SCH_UTIL.OESCH_ACT_UNDEMAND OR
234: p_line_rec.schedule_action_code =
235: OE_ORDER_SCH_UTIL.OESCH_ACT_UNSCHEDULE))
237:
238: FND_MESSAGE.SET_NAME('ONT','OE_SCH_OE_ORDER_FAILED');
239: OE_MSG_PUB.Add;
240:
241: l_return_status := FND_API.G_RET_STS_ERROR;
242: END IF;
243:
244: IF l_debug_level > 0 THEN
245: oe_debug_pub.add( 'CHECKING FOR HOLDS....' , 1 ) ;
266: END IF;
267:
268: OE_Holds_PUB.Check_Holds
269: ( p_api_version => 1.0
270: , p_init_msg_list => FND_API.G_FALSE
271: , p_commit => FND_API.G_FALSE
272: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
273: , x_return_status => l_out_return_status
274: , x_msg_count => l_msg_count
267:
268: OE_Holds_PUB.Check_Holds
269: ( p_api_version => 1.0
270: , p_init_msg_list => FND_API.G_FALSE
271: , p_commit => FND_API.G_FALSE
272: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
273: , x_return_status => l_out_return_status
274: , x_msg_count => l_msg_count
275: , x_msg_data => l_msg_data
268: OE_Holds_PUB.Check_Holds
269: ( p_api_version => 1.0
270: , p_init_msg_list => FND_API.G_FALSE
271: , p_commit => FND_API.G_FALSE
272: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
273: , x_return_status => l_out_return_status
274: , x_msg_count => l_msg_count
275: , x_msg_data => l_msg_data
276: , p_line_id => p_line_rec.line_id
283: IF l_debug_level > 0 THEN
284: oe_debug_pub.add( 'AFTER CALLING CHECK HOLDS: ' || L_OUT_RETURN_STATUS , 1 ) ;
285: END IF;
286:
287: IF (l_out_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
288: IF l_out_return_status = FND_API.G_RET_STS_ERROR THEN
289: RAISE FND_API.G_EXC_ERROR;
290: ELSE
291: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
284: oe_debug_pub.add( 'AFTER CALLING CHECK HOLDS: ' || L_OUT_RETURN_STATUS , 1 ) ;
285: END IF;
286:
287: IF (l_out_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
288: IF l_out_return_status = FND_API.G_RET_STS_ERROR THEN
289: RAISE FND_API.G_EXC_ERROR;
290: ELSE
291: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
292: END IF;
285: END IF;
286:
287: IF (l_out_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
288: IF l_out_return_status = FND_API.G_RET_STS_ERROR THEN
289: RAISE FND_API.G_EXC_ERROR;
290: ELSE
291: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
292: END IF;
293: END IF;
287: IF (l_out_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
288: IF l_out_return_status = FND_API.G_RET_STS_ERROR THEN
289: RAISE FND_API.G_EXC_ERROR;
290: ELSE
291: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
292: END IF;
293: END IF;
294:
295: IF (l_result = FND_API.G_TRUE) THEN
291: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
292: END IF;
293: END IF;
294:
295: IF (l_result = FND_API.G_TRUE) THEN
296: FND_MESSAGE.SET_NAME('ONT','OE_SCH_LINE_ON_HOLD');
297: OE_MSG_PUB.Add;
298: l_return_status := FND_API.G_RET_STS_ERROR;
299: END IF;
294:
295: IF (l_result = FND_API.G_TRUE) THEN
296: FND_MESSAGE.SET_NAME('ONT','OE_SCH_LINE_ON_HOLD');
297: OE_MSG_PUB.Add;
298: l_return_status := FND_API.G_RET_STS_ERROR;
299: END IF;
300:
301: END IF;
302:
333: FND_MESSAGE.SET_TOKEN('ORDER_TYPE',
334: nvl(oe_order_sch_util.sch_cached_line_type,
335: oe_order_sch_util.sch_cached_order_type));
336: OE_MSG_PUB.Add;
337: l_return_status := FND_API.G_RET_STS_ERROR;
338: END IF;
339: ELSIF l_scheduling_level_code = OE_ORDER_SCH_UTIL.SCH_LEVEL_TWO THEN
340: -- Changes for Bug-2497354
341: -- Changed the IF condition for bug 2681047
339: ELSIF l_scheduling_level_code = OE_ORDER_SCH_UTIL.SCH_LEVEL_TWO THEN
340: -- Changes for Bug-2497354
341: -- Changed the IF condition for bug 2681047
342: IF p_line_rec.reserved_quantity > 0 AND
343: p_line_rec.reserved_quantity <> FND_API.G_MISS_NUM AND
344: p_line_rec.reserved_quantity IS NOT NULL THEN
345:
346: FND_MESSAGE.SET_NAME('ONT','OE_SCH_ACTION_NOT_ALLOWED');
347: FND_MESSAGE.SET_TOKEN('ACTION',
350: IF l_debug_level > 0 THEN
351: oe_debug_pub.add( 'RESERVED QUANTITY IS GREATER THAN ZERO' ) ;
352: END IF;
353: OE_MSG_PUB.Add;
354: l_return_status := FND_API.G_RET_STS_ERROR;
355: END IF;
356:
357: IF p_line_rec.schedule_action_code =
358: OE_ORDER_SCH_UTIL.OESCH_ACT_RESERVE THEN
363: FND_MESSAGE.SET_TOKEN('ORDER_TYPE',
364: nvl(oe_order_sch_util.sch_cached_line_type,
365: oe_order_sch_util.sch_cached_order_type));
366: OE_MSG_PUB.Add;
367: l_return_status := FND_API.G_RET_STS_ERROR;
368: END IF;
369: END IF;
370: END IF;
371:
415: FND_MESSAGE.SET_NAME('ONT','OE_BOM_NO_BILL_IN_VAL_ORG');
416: FND_MESSAGE.SET_TOKEN('ITEM',nvl(p_line_rec.ordered_item,p_line_rec.inventory_item_id));
417: FND_MESSAGE.SET_TOKEN('ORG',l_org_id);
418: OE_MSG_PUB.Add;
419: l_return_status := FND_API.G_RET_STS_ERROR;
420:
421: WHEN OTHERS THEN
422: Null;
423: END;
480:
481: Validate_Group_Request(p_group_req_rec => p_group_req_rec,
482: x_return_status => l_return_status);
483:
484: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
485: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
487: RAISE FND_API.G_EXC_ERROR;
488: END IF;
481: Validate_Group_Request(p_group_req_rec => p_group_req_rec,
482: x_return_status => l_return_status);
483:
484: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
485: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
487: RAISE FND_API.G_EXC_ERROR;
488: END IF;
489:
482: x_return_status => l_return_status);
483:
484: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
485: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
487: RAISE FND_API.G_EXC_ERROR;
488: END IF;
489:
490: IF (p_group_req_rec.entity_type =
483:
484: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
485: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
487: RAISE FND_API.G_EXC_ERROR;
488: END IF;
489:
490: IF (p_group_req_rec.entity_type =
491: OE_ORDER_SCH_UTIL.OESCH_ENTITY_ATO_CONFIG)
530:
531: x_atp_tbl := l_atp_tbl;
532: END IF;
533:
534: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
535: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
536: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
537: RAISE FND_API.G_EXC_ERROR;
538: END IF;
531: x_atp_tbl := l_atp_tbl;
532: END IF;
533:
534: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
535: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
536: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
537: RAISE FND_API.G_EXC_ERROR;
538: END IF;
539:
532: END IF;
533:
534: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
535: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
536: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
537: RAISE FND_API.G_EXC_ERROR;
538: END IF;
539:
540: x_return_status := FND_API.G_RET_STS_SUCCESS;
533:
534: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
535: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
536: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
537: RAISE FND_API.G_EXC_ERROR;
538: END IF;
539:
540: x_return_status := FND_API.G_RET_STS_SUCCESS;
541:
536: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
537: RAISE FND_API.G_EXC_ERROR;
538: END IF;
539:
540: x_return_status := FND_API.G_RET_STS_SUCCESS;
541:
542: IF l_debug_level > 0 THEN
543: oe_debug_pub.add( 'EXITING GROUP SCHEDULE' , 1 ) ;
544: END IF;
544: END IF;
545:
546: EXCEPTION
547:
548: WHEN FND_API.G_EXC_ERROR THEN
549:
550: x_return_status := FND_API.G_RET_STS_ERROR;
551:
552: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
546: EXCEPTION
547:
548: WHEN FND_API.G_EXC_ERROR THEN
549:
550: x_return_status := FND_API.G_RET_STS_ERROR;
551:
552: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
553:
554: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
548: WHEN FND_API.G_EXC_ERROR THEN
549:
550: x_return_status := FND_API.G_RET_STS_ERROR;
551:
552: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
553:
554: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
555:
556: WHEN OTHERS THEN
550: x_return_status := FND_API.G_RET_STS_ERROR;
551:
552: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
553:
554: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
555:
556: WHEN OTHERS THEN
557:
558: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
554: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
555:
556: WHEN OTHERS THEN
557:
558: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
559:
560: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
561: THEN
562: OE_MSG_PUB.Add_Exc_Msg
916: IF l_debug_level > 0 THEN
917: oe_debug_pub.add( 'SO: AFTER CALLING GROUP_SCHEDULE' || L_RETURN_STATUS , 1 ) ;
918: END IF;
919:
920: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
921: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
922: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
923: RAISE FND_API.G_EXC_ERROR;
924: END IF;
917: oe_debug_pub.add( 'SO: AFTER CALLING GROUP_SCHEDULE' || L_RETURN_STATUS , 1 ) ;
918: END IF;
919:
920: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
921: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
922: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
923: RAISE FND_API.G_EXC_ERROR;
924: END IF;
925:
918: END IF;
919:
920: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
921: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
922: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
923: RAISE FND_API.G_EXC_ERROR;
924: END IF;
925:
926: FOR J IN 1..l_out_atp_tbl.count
919:
920: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
921: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
922: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
923: RAISE FND_API.G_EXC_ERROR;
924: END IF;
925:
926: FOR J IN 1..l_out_atp_tbl.count
927: LOOP
949: END IF;
950:
951: OE_ORDER_SCH_UTIL.Schedule_line
952: ( p_old_line_rec => l_old_line_rec
953: ,p_write_to_db => FND_API.G_TRUE
954: ,p_x_line_rec => l_line_rec
955: ,x_atp_tbl => l_out_atp_tbl
956: ,x_return_status => l_return_status);
957:
958: IF l_debug_level > 0 THEN
959: oe_debug_pub.add( 'GRP:AFTER CALLING SCHEDULE LINE: ' || L_RETURN_STATUS , 1 ) ;
960: END IF;
961:
962: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
963: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
964: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
965: RAISE FND_API.G_EXC_ERROR;
966: END IF;
959: oe_debug_pub.add( 'GRP:AFTER CALLING SCHEDULE LINE: ' || L_RETURN_STATUS , 1 ) ;
960: END IF;
961:
962: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
963: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
964: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
965: RAISE FND_API.G_EXC_ERROR;
966: END IF;
967:
960: END IF;
961:
962: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
963: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
964: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
965: RAISE FND_API.G_EXC_ERROR;
966: END IF;
967:
968: -- Load the ATP table which could have more records than 1 since
961:
962: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
963: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
964: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
965: RAISE FND_API.G_EXC_ERROR;
966: END IF;
967:
968: -- Load the ATP table which could have more records than 1 since
969: -- included items got scheduled.
982: null;
983:
984: EXCEPTION
985:
986: WHEN FND_API.G_EXC_ERROR THEN
987:
988: -- We do not want to error our the whole order if a line
989: -- did not schedule.
990:
990:
991: ROLLBACK TO SCHEDULE_ORDER;
992: null;
993:
994: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
995:
996: ROLLBACK TO SCHEDULE_ORDER;
997: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
998:
993:
994: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
995:
996: ROLLBACK TO SCHEDULE_ORDER;
997: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
998:
999: WHEN OTHERS THEN
1000:
1001: ROLLBACK TO SCHEDULE_ORDER;
998:
999: WHEN OTHERS THEN
1000:
1001: ROLLBACK TO SCHEDULE_ORDER;
1002: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1003:
1004: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1005: THEN
1006: OE_MSG_PUB.Add_Exc_Msg
1021: END IF;
1022: IF l_debug_level > 0 THEN
1023: oe_debug_pub.add( 'EXITING OE_GRP_SCH_UTIL.SCHEDULE_ORDER' , 1 ) ;
1024: END IF;
1025: x_return_status := FND_API.G_RET_STS_SUCCESS;
1026:
1027: /* Bug :2222360 */
1028: IF p_sch_action = OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK THEN
1029: IF l_debug_level > 0 THEN
1036: END IF;
1037:
1038: EXCEPTION
1039:
1040: WHEN FND_API.G_EXC_ERROR THEN
1041:
1042: x_return_status := FND_API.G_RET_STS_ERROR;
1043:
1044: oe_msg_pub.count_and_get
1038: EXCEPTION
1039:
1040: WHEN FND_API.G_EXC_ERROR THEN
1041:
1042: x_return_status := FND_API.G_RET_STS_ERROR;
1043:
1044: oe_msg_pub.count_and_get
1045: ( p_count => x_msg_count
1046: ,p_data => x_msg_data
1055: (x_return_status => l_return_status);
1056: END IF;
1057:
1058:
1059: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1060:
1061: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1062:
1063: oe_msg_pub.count_and_get
1057:
1058:
1059: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1060:
1061: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1062:
1063: oe_msg_pub.count_and_get
1064: ( p_count => x_msg_count
1065: ,p_data => x_msg_data
1076: END IF;
1077:
1078: WHEN OTHERS THEN
1079:
1080: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1081:
1082: /* Bug :2222360 */
1083: IF p_sch_action = OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK THEN
1084: IF l_debug_level > 0 THEN
1202: -- an error.
1203:
1204: FND_MESSAGE.SET_NAME('ONT','OE_SCH_ATO_WHSE_REQD');
1205: OE_MSG_PUB.Add;
1206: RAISE FND_API.G_EXC_ERROR;
1207:
1208: END IF;
1209:
1210: IF (p_group_req_rec.action = OE_ORDER_SCH_UTIL.OESCH_ACT_RESERVE) OR
1212: THEN
1213: -- This action is not allowed on an ATO configuration.
1214: FND_MESSAGE.SET_NAME('ONT','OE_SCH_RES_NO_CONFIG');
1215: OE_MSG_PUB.Add;
1216: RAISE FND_API.G_EXC_ERROR;
1217:
1218: END IF; /* If action was reserve or unreserve */
1219:
1220: IF (p_group_req_rec.action = OE_ORDER_SCH_UTIL.OESCH_ACT_UNSCHEDULE)
1230: AND item_type_code = 'CONFIG';
1231:
1232: FND_MESSAGE.SET_NAME('ONT','OE_SCH_UNSCH_CONFIG_EXISTS');
1233: OE_MSG_PUB.Add;
1234: RAISE FND_API.G_EXC_ERROR;
1235:
1236: EXCEPTION
1237: WHEN NO_DATA_FOUND THEN
1238: null;
1275: IF l_debug_level > 0 THEN
1276: oe_debug_pub.add( 'AFTER CALLING VALIDATE_WAREHOUSE: ' || L_RETURN_STATUS , 1 ) ;
1277: END IF;
1278:
1279: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1281: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1282: RAISE FND_API.G_EXC_ERROR;
1283: END IF;
1276: oe_debug_pub.add( 'AFTER CALLING VALIDATE_WAREHOUSE: ' || L_RETURN_STATUS , 1 ) ;
1277: END IF;
1278:
1279: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1281: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1282: RAISE FND_API.G_EXC_ERROR;
1283: END IF;
1284: END IF;
1277: END IF;
1278:
1279: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1281: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1282: RAISE FND_API.G_EXC_ERROR;
1283: END IF;
1284: END IF;
1285:
1278:
1279: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1281: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1282: RAISE FND_API.G_EXC_ERROR;
1283: END IF;
1284: END IF;
1285:
1286: IF l_debug_level > 0 THEN
1447: Validate_line(p_line_rec => l_line_tbl(I),
1448: p_old_line_rec => l_old_line_tbl(I),
1449: x_return_status => l_return_status);
1450:
1451: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1452: IF l_debug_level > 0 THEN
1453: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1454: END IF;
1455: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1451: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1452: IF l_debug_level > 0 THEN
1453: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1454: END IF;
1455: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1456: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1457: RAISE FND_API.G_EXC_ERROR;
1458: IF l_debug_level > 0 THEN
1459: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1452: IF l_debug_level > 0 THEN
1453: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1454: END IF;
1455: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1456: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1457: RAISE FND_API.G_EXC_ERROR;
1458: IF l_debug_level > 0 THEN
1459: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1460: END IF;
1453: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1454: END IF;
1455: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1456: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1457: RAISE FND_API.G_EXC_ERROR;
1458: IF l_debug_level > 0 THEN
1459: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
1460: END IF;
1461: END IF;
1475: END IF;
1476:
1477: x_atp_tbl := l_atp_tbl;
1478:
1479: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1480: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1481: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1482: RAISE FND_API.G_EXC_ERROR;
1483: END IF;
1476:
1477: x_atp_tbl := l_atp_tbl;
1478:
1479: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1480: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1481: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1482: RAISE FND_API.G_EXC_ERROR;
1483: END IF;
1484:
1477: x_atp_tbl := l_atp_tbl;
1478:
1479: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1480: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1481: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1482: RAISE FND_API.G_EXC_ERROR;
1483: END IF;
1484:
1485: IF l_debug_level > 0 THEN
1478:
1479: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1480: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1481: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1482: RAISE FND_API.G_EXC_ERROR;
1483: END IF;
1484:
1485: IF l_debug_level > 0 THEN
1486: oe_debug_pub.add( 'EXITING SCHEDULE_ATO' , 1 ) ;
1487: END IF;
1488:
1489: EXCEPTION
1490:
1491: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1492:
1493: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1494:
1495: WHEN FND_API.G_EXC_ERROR THEN
1489: EXCEPTION
1490:
1491: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1492:
1493: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1494:
1495: WHEN FND_API.G_EXC_ERROR THEN
1496:
1497: x_return_status := FND_API.G_RET_STS_ERROR;
1491: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1492:
1493: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1494:
1495: WHEN FND_API.G_EXC_ERROR THEN
1496:
1497: x_return_status := FND_API.G_RET_STS_ERROR;
1498:
1499: WHEN OTHERS THEN
1493: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1494:
1495: WHEN FND_API.G_EXC_ERROR THEN
1496:
1497: x_return_status := FND_API.G_RET_STS_ERROR;
1498:
1499: WHEN OTHERS THEN
1500:
1501: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1505: , 'Schedule_ATO'
1506: );
1507: END IF;
1508:
1509: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1510:
1511: END Schedule_ATO;
1512:
1513: /* ---------------------------------------------------------------
1525: null;
1526:
1527: EXCEPTION
1528:
1529: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1530:
1531: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1532:
1533: WHEN OTHERS THEN
1527: EXCEPTION
1528:
1529: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1530:
1531: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1532:
1533: WHEN OTHERS THEN
1534:
1535: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1539: , 'Schedule_SMC'
1540: );
1541: END IF;
1542:
1543: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1544:
1545: END Schedule_SMC;
1546:
1547: /* ---------------------------------------------------------------
1563: K NUMBER := 0;
1564: J NUMBER := 0;
1565: orig_count NUMBER;
1566: l_sales_order_id NUMBER;
1567: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1568: l_old_recursion_mode VARCHAR2(1);
1569: --
1570: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1571: --
1633: (p_header_id => l_sales_order_id,
1634: p_line_id => x_line_tbl(J).line_id,
1635: p_org_id => x_line_tbl(J).ship_from_org_id);
1636: END IF;
1637: IF x_line_tbl(J).reserved_quantity = FND_API.G_MISS_NUM
1638: OR x_line_tbl(J).reserved_quantity IS NULL THEN
1639: x_line_tbl(J).reserved_quantity := 0;
1640: END IF;
1641:
1666: IF l_debug_level > 0 THEN
1667: oe_debug_pub.add( 'AFTER CALLING PROCESS_INCLUDED_ITEMS ' , 1 ) ;
1668: END IF;
1669:
1670: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1673: RAISE FND_API.G_EXC_ERROR;
1674: END IF;
1667: oe_debug_pub.add( 'AFTER CALLING PROCESS_INCLUDED_ITEMS ' , 1 ) ;
1668: END IF;
1669:
1670: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1673: RAISE FND_API.G_EXC_ERROR;
1674: END IF;
1675:
1668: END IF;
1669:
1670: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1673: RAISE FND_API.G_EXC_ERROR;
1674: END IF;
1675:
1676: OE_Config_Util.query_included_items(
1669:
1670: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1673: RAISE FND_API.G_EXC_ERROR;
1674: END IF;
1675:
1676: OE_Config_Util.query_included_items(
1677: p_line_id => x_line_tbl(J).line_id,
1692: (p_header_id => l_sales_order_id,
1693: p_line_id => x_line_tbl(J).line_id,
1694: p_org_id => x_line_tbl(J).ship_from_org_id);
1695: END IF;
1696: IF x_line_tbl(J).reserved_quantity = FND_API.G_MISS_NUM
1697: OR x_line_tbl(J).reserved_quantity IS NULL THEN
1698: x_line_tbl(J).reserved_quantity := 0;
1699: END IF;
1700: END LOOP; -- Merge loop
1716:
1717:
1718: EXCEPTION
1719:
1720: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1721:
1722: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1723:
1724: WHEN OTHERS THEN
1718: EXCEPTION
1719:
1720: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1721:
1722: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1723:
1724: WHEN OTHERS THEN
1725:
1726: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1730: , 'Query_Set_Lines'
1731: );
1732: END IF;
1733:
1734: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1735:
1736: END Query_Set_Lines;
1737:
1738: /* ---------------------------------------------------------------
1747: --
1748: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1749: --
1750: BEGIN
1751: x_return_status := FND_API.G_RET_STS_SUCCESS;
1752: END Validate_Set_Attributes;
1753:
1754: /* ---------------------------------------------------------------
1755: Procedure : Schedule_Set
1831: AND item_type_code = 'CONFIG';
1832:
1833: FND_MESSAGE.SET_NAME('ONT','OE_SCH_UNSCH_CONFIG_EXISTS');
1834: OE_MSG_PUB.Add;
1835: RAISE FND_API.G_EXC_ERROR;
1836:
1837: EXCEPTION
1838: WHEN NO_DATA_FOUND THEN
1839: null;
1839: null;
1840: WHEN TOO_MANY_ROWS THEN
1841: FND_MESSAGE.SET_NAME('ONT','OE_SCH_UNSCH_CONFIG_EXISTS');
1842: OE_MSG_PUB.Add;
1843: RAISE FND_API.G_EXC_ERROR;
1844: END;
1845:
1846: END IF; /* If action was unschedule */
1847:
2024: Validate_line(p_line_rec => l_line_tbl(I),
2025: p_old_line_rec => l_old_line_tbl(I),
2026: x_return_status => l_return_status);
2027:
2028: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2029: IF l_debug_level > 0 THEN
2030: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2031: END IF;
2032: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2028: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2029: IF l_debug_level > 0 THEN
2030: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2031: END IF;
2032: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2033: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2034: RAISE FND_API.G_EXC_ERROR;
2035: IF l_debug_level > 0 THEN
2036: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2029: IF l_debug_level > 0 THEN
2030: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2031: END IF;
2032: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2033: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2034: RAISE FND_API.G_EXC_ERROR;
2035: IF l_debug_level > 0 THEN
2036: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2037: END IF;
2030: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE UN EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2031: END IF;
2032: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2033: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2034: RAISE FND_API.G_EXC_ERROR;
2035: IF l_debug_level > 0 THEN
2036: oe_debug_pub.add( 'ATO: AFTER VALIDATE LINE EXP ERROR' || L_LINE_TBL ( I ) .LINE_ID , 1 ) ;
2037: END IF;
2038: END IF;
2037: END IF;
2038: END IF;
2039:
2040: END LOOP;
2041: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2042: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2043: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2044: RAISE FND_API.G_EXC_ERROR;
2045: END IF;
2038: END IF;
2039:
2040: END LOOP;
2041: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2042: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2043: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2044: RAISE FND_API.G_EXC_ERROR;
2045: END IF;
2046:
2039:
2040: END LOOP;
2041: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2042: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2043: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2044: RAISE FND_API.G_EXC_ERROR;
2045: END IF;
2046:
2047: IF l_debug_level > 0 THEN
2040: END LOOP;
2041: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2042: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2043: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2044: RAISE FND_API.G_EXC_ERROR;
2045: END IF;
2046:
2047: IF l_debug_level > 0 THEN
2048: oe_debug_pub.add( 'CALLING PROCESS_SET_OF_LINES' , 1 ) ;
2057: oe_debug_pub.add( 'AFTER CALLING PROCESS_SET_OF_LINES' , 1 ) ;
2058: END IF;
2059:
2060: x_atp_tbl := l_atp_tbl;
2061: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2062: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2063: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2064: RAISE FND_API.G_EXC_ERROR;
2065: END IF;
2058: END IF;
2059:
2060: x_atp_tbl := l_atp_tbl;
2061: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2062: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2063: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2064: RAISE FND_API.G_EXC_ERROR;
2065: END IF;
2066:
2059:
2060: x_atp_tbl := l_atp_tbl;
2061: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2062: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2063: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2064: RAISE FND_API.G_EXC_ERROR;
2065: END IF;
2066:
2067: IF l_set_id is not null THEN
2060: x_atp_tbl := l_atp_tbl;
2061: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2062: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2063: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2064: RAISE FND_API.G_EXC_ERROR;
2065: END IF;
2066:
2067: IF l_set_id is not null THEN
2068: -- If scheduling set suceeded, then the result of scheduling
2113: oe_debug_pub.add( 'EXITING SCHEDULE_SET' , 1 ) ;
2114: END IF;
2115:
2116: EXCEPTION
2117: WHEN FND_API.G_EXC_ERROR THEN
2118:
2119: x_return_status := FND_API.G_RET_STS_ERROR;
2120:
2121: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2115:
2116: EXCEPTION
2117: WHEN FND_API.G_EXC_ERROR THEN
2118:
2119: x_return_status := FND_API.G_RET_STS_ERROR;
2120:
2121: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2122:
2123: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2117: WHEN FND_API.G_EXC_ERROR THEN
2118:
2119: x_return_status := FND_API.G_RET_STS_ERROR;
2120:
2121: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2122:
2123: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2124:
2125: WHEN OTHERS THEN
2119: x_return_status := FND_API.G_RET_STS_ERROR;
2120:
2121: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2122:
2123: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2124:
2125: WHEN OTHERS THEN
2126:
2127: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2123: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2124:
2125: WHEN OTHERS THEN
2126:
2127: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2128:
2129: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2130: THEN
2131: OE_MSG_PUB.Add_Exc_Msg
2269:
2270: -- To fix the bug 2431390, adding this logic to see if the line attributes
2271: -- matches with set attributes. If they matches then we can bypass scheduling
2272:
2273: x_return_status := FND_API.G_RET_STS_SUCCESS;
2274:
2275: IF p_x_line_tbl(1).arrival_set_id is not null OR
2276: p_x_line_tbl(1).ship_set_id IS NOT NULL THEN
2277: l_set_rec := OE_ORDER_CACHE.Load_Set
2302: IF l_debug_level > 0 THEN
2303: oe_debug_pub.add( 'OLD SHIP DATE ' || P_OLD_LINE_TBL ( 1 ) .SCHEDULE_SHIP_DATE , 2 ) ;
2304: END IF;
2305: IF l_set_rec.ship_from_org_id is null
2306: OR l_set_rec.ship_from_org_id = FND_API.G_MISS_NUM THEN
2307:
2308: IF l_debug_level > 0 THEN
2309: oe_debug_pub.add( 'ONLY SCHEDULED LINE IS GETTING INTO NEW SET' , 2 ) ;
2310: END IF;
2354:
2355: END IF;
2356:
2357: IF ((l_set_rec.ship_from_org_id is not null AND
2358: l_set_rec.ship_from_org_id <> FND_API.G_MISS_NUM) AND
2359: Compare_Set_Attr
2360: (p_set_ship_from_org_id => l_set_rec.ship_from_org_id ,
2361: p_line_ship_from_org_id => p_x_line_tbl(I).ship_from_org_id,
2362: p_set_ship_to_org_id => l_set_rec.ship_to_org_id ,
2366: p_set_arrival_date => l_set_rec.schedule_arrival_date,
2367: p_line_arrival_date => p_x_line_tbl(I).schedule_arrival_date,
2368: p_set_type => l_set_rec.set_type)) OR
2369: ((l_set_rec.ship_from_org_id is null OR
2370: l_set_rec.ship_from_org_id = FND_API.G_MISS_NUM) AND
2371: Compare_Set_Attr
2372: (p_set_ship_from_org_id => p_x_line_tbl(1).ship_from_org_id ,
2373: p_line_ship_from_org_id => p_x_line_tbl(I).ship_from_org_id,
2374: p_set_ship_to_org_id => p_x_line_tbl(1).ship_to_org_id ,
2424: (p_line_rec => p_x_line_tbl(I),
2425: p_old_line_rec => p_old_line_tbl(I),
2426: x_return_status => l_return_status);
2427:
2428: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2429: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2430: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2431: RAISE FND_API.G_EXC_ERROR;
2432: END IF;
2425: p_old_line_rec => p_old_line_tbl(I),
2426: x_return_status => l_return_status);
2427:
2428: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2429: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2430: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2431: RAISE FND_API.G_EXC_ERROR;
2432: END IF;
2433:
2426: x_return_status => l_return_status);
2427:
2428: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2429: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2430: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2431: RAISE FND_API.G_EXC_ERROR;
2432: END IF;
2433:
2434: IF p_x_line_tbl(I).schedule_status_code is not null THEN
2427:
2428: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2429: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2430: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2431: RAISE FND_API.G_EXC_ERROR;
2432: END IF;
2433:
2434: IF p_x_line_tbl(I).schedule_status_code is not null THEN
2435: l_need_reschedule := 'Y';
2468: IF l_debug_level > 0 THEN
2469: oe_debug_pub.add( 'AFTER CALLING PROCESS_INCLUDED_ITEMS ' , 1 ) ;
2470: END IF;
2471:
2472: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2473: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2474: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2475: RAISE FND_API.G_EXC_ERROR;
2476: END IF;
2469: oe_debug_pub.add( 'AFTER CALLING PROCESS_INCLUDED_ITEMS ' , 1 ) ;
2470: END IF;
2471:
2472: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2473: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2474: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2475: RAISE FND_API.G_EXC_ERROR;
2476: END IF;
2477:
2470: END IF;
2471:
2472: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2473: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2474: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2475: RAISE FND_API.G_EXC_ERROR;
2476: END IF;
2477:
2478: OE_Config_Util.Query_Included_Items
2471:
2472: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2473: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2474: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2475: RAISE FND_API.G_EXC_ERROR;
2476: END IF;
2477:
2478: OE_Config_Util.Query_Included_Items
2479: (p_line_id => p_x_line_tbl(I).line_id,
2519: END IF;
2520:
2521: EXCEPTION
2522:
2523: WHEN FND_API.G_EXC_ERROR THEN
2524:
2525: -- We do not want to error our the all lines due to an error
2526: -- in one of the lines. We will just not included the line
2527: -- in the set.
2529: null;
2530:
2531: WHEN OTHERS THEN
2532:
2533: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2534: END;
2535: END LOOP;
2536:
2537: IF l_debug_level > 0 THEN
2563: p_line_id => l_line_tbl(I).line_id,
2564: p_org_id => l_line_tbl(I).ship_from_org_id);
2565: l_old_line_tbl(I).reserved_quantity := l_line_tbl(I).reserved_quantity;
2566: END IF;
2567: IF l_line_tbl(I).reserved_quantity = FND_API.G_MISS_NUM
2568: OR l_line_tbl(I).reserved_quantity IS NULL THEN
2569: l_liNe_tbl(I).reserved_quantity := 0;
2570: END IF;
2571: IF l_old_line_tbl(I).reserved_quantity = FND_API.G_MISS_NUM
2567: IF l_line_tbl(I).reserved_quantity = FND_API.G_MISS_NUM
2568: OR l_line_tbl(I).reserved_quantity IS NULL THEN
2569: l_liNe_tbl(I).reserved_quantity := 0;
2570: END IF;
2571: IF l_old_line_tbl(I).reserved_quantity = FND_API.G_MISS_NUM
2572: OR l_old_line_tbl(I).reserved_quantity IS NULL THEN
2573: l_old_line_tbl(I).reserved_quantity := 0;
2574: END IF;
2575: END LOOP;
2576:
2577:
2578: IF l_line_tbl.count > 0 THEN
2579: Process_set_of_lines(p_old_line_tbl => l_old_line_tbl,
2580: p_write_to_db => FND_API.G_FALSE,
2581: x_atp_tbl => l_atp_tbl,
2582: p_x_line_tbl => l_line_tbl,
2583: p_log_msg => l_log_msg,
2584: x_return_status => x_return_status);
2588: -- Added code to fix bug 1899651.
2589: IF l_debug_level > 0 THEN
2590: oe_debug_pub.add( 'AFTER PROCESS SET_OF_LINES ' || X_RETURN_STATUS , 1 ) ;
2591: END IF;
2592: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2593:
2594: IF l_debug_level > 0 THEN
2595: oe_debug_pub.add( 'WELCOME TO AUTO PUSH GROUP ' || L_LINE_TBL.COUNT , 1 ) ;
2596: END IF;
2678: IF l_debug_level > 0 THEN
2679: oe_debug_pub.add( 'BEFORE CALLING PROCESS SET ' || L_LINE_TBL.COUNT , 1 ) ;
2680: END IF;
2681: Process_set_of_lines(p_old_line_tbl => l_old_line_tbl,
2682: p_write_to_db => FND_API.G_FALSE,
2683: x_atp_tbl => l_atp_tbl,
2684: p_x_line_tbl => l_line_tbl,
2685: x_return_status => x_return_status);
2686:
2683: x_atp_tbl => l_atp_tbl,
2684: p_x_line_tbl => l_line_tbl,
2685: x_return_status => x_return_status);
2686:
2687: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2688:
2689:
2690: OE_Set_Util.Update_Set
2691: (p_Set_Id => nvl(l_line_tbl(1).arrival_set_id,
2724: oe_debug_pub.add( 'EXITING SCHEDULE_SET_OF_LINES' , 1 ) ;
2725: END IF;
2726:
2727: EXCEPTION
2728: WHEN FND_API.G_EXC_ERROR THEN
2729:
2730: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2731: x_return_status := FND_API.G_RET_STS_ERROR;
2732:
2727: EXCEPTION
2728: WHEN FND_API.G_EXC_ERROR THEN
2729:
2730: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2731: x_return_status := FND_API.G_RET_STS_ERROR;
2732:
2733: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2734:
2735: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2729:
2730: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2731: x_return_status := FND_API.G_RET_STS_ERROR;
2732:
2733: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2734:
2735: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2736: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2737:
2731: x_return_status := FND_API.G_RET_STS_ERROR;
2732:
2733: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2734:
2735: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2736: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2737:
2738: WHEN OTHERS THEN
2739:
2736: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2737:
2738: WHEN OTHERS THEN
2739:
2740: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2741: OE_ORDER_SCH_UTIL.OESCH_PERFORM_GRP_SCHEDULING := 'Y';
2742:
2743: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2744: THEN
2757:
2758: Procedure Process_set_of_lines
2759: ( p_old_line_tbl IN OE_ORDER_PUB.line_tbl_type
2760: := OE_ORDER_PUB.G_MISS_LINE_TBL,
2761: p_write_to_db IN VARCHAR2 := FND_API.G_TRUE,
2762: x_atp_tbl OUT NOCOPY OE_ATP.Atp_Tbl_Type,
2763:
2764: p_x_line_tbl IN OUT NOCOPY OE_ORDER_PUB.line_tbl_type,
2765: p_log_msg IN VARCHAR2 := 'Y',
2775: l_out_atp_table OE_ATP.ATP_Tbl_Type;
2776: l_atp_supply_demand MRP_ATP_PUB.ATP_Supply_Demand_Typ;
2777: l_atp_period MRP_ATP_PUB.ATP_Period_Typ;
2778: l_atp_details MRP_ATP_PUB.ATP_Details_Typ;
2779: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2780: l_msg_data VARCHAR2(2000);
2781: l_msg_count NUMBER;
2782: mrp_msg_data VARCHAR2(200);
2783: l_session_id NUMBER := 0;
2806: TYPE char1 IS TABLE OF VARCHAR2(1) index by Binary_integer;
2807: l_re_reserve_flag char1;
2808: l_reservable_type NUMBER;
2809: -- added by fabdi 03/May/2001
2810: l_process_flag VARCHAR2(1) := FND_API.G_FALSE;
2811: -- end fabdi
2812: l_sales_order_id NUMBER;
2813: l_x_error_code NUMBER;
2814: l_lock_records VARCHAR2(1);
2848: ( p_line_rec => l_old_line_tbl(J)
2849: , p_quantity_to_unreserve => l_old_line_tbl(J).reserved_quantity
2850: , x_return_status => l_return_status); */ -- INVCONV TO COPMPILE
2851:
2852: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2853: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2854: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2855: RAISE FND_API.G_EXC_ERROR;
2856: END IF;
2849: , p_quantity_to_unreserve => l_old_line_tbl(J).reserved_quantity
2850: , x_return_status => l_return_status); */ -- INVCONV TO COPMPILE
2851:
2852: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2853: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2854: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2855: RAISE FND_API.G_EXC_ERROR;
2856: END IF;
2857: ELSE
2850: , x_return_status => l_return_status); */ -- INVCONV TO COPMPILE
2851:
2852: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2853: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2854: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2855: RAISE FND_API.G_EXC_ERROR;
2856: END IF;
2857: ELSE
2858: -- Added for Bug-2319081
2851:
2852: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2853: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2854: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2855: RAISE FND_API.G_EXC_ERROR;
2856: END IF;
2857: ELSE
2858: -- Added for Bug-2319081
2859: IF l_line_tbl(J).schedule_action_code =
2929: END IF;
2930: END IF;
2931:
2932:
2933: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2934: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2935: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2936: RAISE FND_API.G_EXC_ERROR;
2937: END IF;
2930: END IF;
2931:
2932:
2933: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2934: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2935: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2936: RAISE FND_API.G_EXC_ERROR;
2937: END IF;
2938:
2931:
2932:
2933: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2934: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2935: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2936: RAISE FND_API.G_EXC_ERROR;
2937: END IF;
2938:
2939: END LOOP;
2932:
2933: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2934: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2935: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2936: RAISE FND_API.G_EXC_ERROR;
2937: END IF;
2938:
2939: END LOOP;
2940: l_out_line_tbl := l_line_tbl;
3006: IF l_debug_level > 0 THEN
3007: oe_debug_pub.add( 'AFTER CALLING MRPS ATP API: ' || L_RETURN_STATUS , 1 ) ;
3008: END IF;
3009:
3010: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3011: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3012: END IF;
3013:
3014: IF l_debug_level > 0 THEN
3007: oe_debug_pub.add( 'AFTER CALLING MRPS ATP API: ' || L_RETURN_STATUS , 1 ) ;
3008: END IF;
3009:
3010: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3011: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3012: END IF;
3013:
3014: IF l_debug_level > 0 THEN
3015: oe_debug_pub.add( 'GRP1: CALLING LOAD_RESULTS' , 1 ) ;
3025: oe_debug_pub.add( 'GRP1: AFTER CALLING LOAD_RESULTS: ' || L_RETURN_STATUS , 1 ) ;
3026: END IF;
3027:
3028: x_atp_tbl := l_out_atp_table;
3029: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3030: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3031: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3032: RAISE FND_API.G_EXC_ERROR;
3033: END IF;
3026: END IF;
3027:
3028: x_atp_tbl := l_out_atp_table;
3029: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3030: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3031: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3032: RAISE FND_API.G_EXC_ERROR;
3033: END IF;
3034: END IF; -- MRP count.
3027:
3028: x_atp_tbl := l_out_atp_table;
3029: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3030: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3031: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3032: RAISE FND_API.G_EXC_ERROR;
3033: END IF;
3034: END IF; -- MRP count.
3035:
3028: x_atp_tbl := l_out_atp_table;
3029: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3030: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3031: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3032: RAISE FND_API.G_EXC_ERROR;
3033: END IF;
3034: END IF; -- MRP count.
3035:
3036: -- Code has been moved up to fix bug 2408551.
3047: IF NOT OE_GLOBALS.Equal(l_schedule_action_code,
3048: OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK) AND
3049: NOT OE_GLOBALS.Equal(l_schedule_action_code,
3050: OE_ORDER_SCH_UTIL.OESCH_ACT_UNRESERVE) AND
3051: p_write_to_db = FND_API.G_TRUE THEN
3052:
3053: -- Turning off Perform Scheduling Flag Before calling
3054: -- this procedure since this procedure is calling Process Order
3055: -- which in turn will call scheduling if this flag is not turned off.
3101: OE_ORDER_SCH_UTIL.Update_line_record
3102: ( p_line_tbl => l_old_line_tbl1
3103: , p_x_new_line_tbl => l_out_line_tbl1
3104: , p_write_to_db => p_write_to_db
3105: , p_recursive_call => FND_API.G_FALSE
3106: , x_return_status => l_return_status);
3107:
3108: IF l_debug_level > 0 THEN
3109: oe_debug_pub.add( 'AFTER CALLING UPDATE_LINE_RECORD: ' || L_RETURN_STATUS , 1 ) ;
3108: IF l_debug_level > 0 THEN
3109: oe_debug_pub.add( 'AFTER CALLING UPDATE_LINE_RECORD: ' || L_RETURN_STATUS , 1 ) ;
3110: END IF;
3111:
3112: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3113: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3114: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3115: RAISE FND_API.G_EXC_ERROR;
3116: END IF;
3109: oe_debug_pub.add( 'AFTER CALLING UPDATE_LINE_RECORD: ' || L_RETURN_STATUS , 1 ) ;
3110: END IF;
3111:
3112: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3113: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3114: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3115: RAISE FND_API.G_EXC_ERROR;
3116: END IF;
3117:
3110: END IF;
3111:
3112: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3113: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3114: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3115: RAISE FND_API.G_EXC_ERROR;
3116: END IF;
3117:
3118: -- Do not process delayed requests if this was a recursive
3111:
3112: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3113: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3114: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3115: RAISE FND_API.G_EXC_ERROR;
3116: END IF;
3117:
3118: -- Do not process delayed requests if this was a recursive
3119: -- call (e.g. from oe_line_util.pre_write_process)
3126: , p_old_line_tbl => l_old_line_tbl1
3127: , x_return_status => l_return_status
3128: );
3129:
3130: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3131: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3132: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3133: RAISE FND_API.G_EXC_ERROR;
3134: END IF;
3127: , x_return_status => l_return_status
3128: );
3129:
3130: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3131: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3132: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3133: RAISE FND_API.G_EXC_ERROR;
3134: END IF;
3135:
3128: );
3129:
3130: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3131: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3132: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3133: RAISE FND_API.G_EXC_ERROR;
3134: END IF;
3135:
3136:
3129:
3130: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3131: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3132: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3133: RAISE FND_API.G_EXC_ERROR;
3134: END IF;
3135:
3136:
3137: END IF;
3238: Nvl(l_re_reserve_flag(j),'N') = 'Y')
3239: THEN
3240: --newsub check if item is under lot/revision/serial control
3241: IF l_line_tbl(j).subinventory is not null
3242: AND l_line_tbl(j).subinventory <> FND_API.G_MISS_CHAR THEN
3243: BEGIN
3244: SELECT revision_qty_control_code, lot_control_code,
3245: serial_number_control_code
3246: INTO l_revision_code, l_lot_code, l_serial_code
3249: AND organization_id = l_line_tbl(j).ship_from_org_id;
3250:
3251: EXCEPTION
3252: WHEN OTHERS THEN
3253: l_return_status := FND_API.G_RET_STS_ERROR;
3254: fnd_message.set_name('ONT', 'OE_INVALID_ITEM_WHSE');
3255: OE_MSG_PUB.Add;
3256: END;
3257:
3261: fnd_message.set_name('ONT', 'OE_SUBINV_NOT_ALLOWED');
3262: OE_MSG_PUB.Add;
3263: IF l_line_tbl(j).schedule_action_code =
3264: OE_ORDER_SCH_UTIL.OESCH_ACT_RESERVE THEN
3265: l_return_status := FND_API.G_RET_STS_ERROR;
3266: RAISE FND_API.G_EXC_ERROR;
3267: ELSE
3268: -- We should not fail the transaction, if we are
3269: -- not able to reserve the line.
3262: OE_MSG_PUB.Add;
3263: IF l_line_tbl(j).schedule_action_code =
3264: OE_ORDER_SCH_UTIL.OESCH_ACT_RESERVE THEN
3265: l_return_status := FND_API.G_RET_STS_ERROR;
3266: RAISE FND_API.G_EXC_ERROR;
3267: ELSE
3268: -- We should not fail the transaction, if we are
3269: -- not able to reserve the line.
3270: l_line_tbl(j).reserved_quantity := null;
3267: ELSE
3268: -- We should not fail the transaction, if we are
3269: -- not able to reserve the line.
3270: l_line_tbl(j).reserved_quantity := null;
3271: l_return_status := FND_API.G_RET_STS_SUCCESS;
3272: GOTO NO_RESERVATION;
3273: END IF;
3274: END IF;
3275: END IF;
3294: -- Call INV with action = RESERVE
3295:
3296: inv_reservation_pub.create_reservation
3297: ( p_api_version_number => 1.0
3298: , p_init_msg_lst => FND_API.G_TRUE
3299: , x_return_status => l_return_status
3300: , x_msg_count => l_msg_count
3301: , x_msg_data => l_msg_data
3302: , p_rsv_rec => l_reservation_rec
3301: , x_msg_data => l_msg_data
3302: , p_rsv_rec => l_reservation_rec
3303: , p_serial_number => l_dummy_sn
3304: , x_serial_number => l_dummy_sn
3305: , p_partial_reservation_flag => FND_API.G_FALSE
3306: , p_force_reservation_flag => FND_API.G_FALSE
3307: , p_validation_flag => FND_API.G_TRUE
3308: , x_quantity_reserved => l_quantity_reserved
3309: , x_reservation_id => l_rsv_id
3302: , p_rsv_rec => l_reservation_rec
3303: , p_serial_number => l_dummy_sn
3304: , x_serial_number => l_dummy_sn
3305: , p_partial_reservation_flag => FND_API.G_FALSE
3306: , p_force_reservation_flag => FND_API.G_FALSE
3307: , p_validation_flag => FND_API.G_TRUE
3308: , x_quantity_reserved => l_quantity_reserved
3309: , x_reservation_id => l_rsv_id
3310: );
3303: , p_serial_number => l_dummy_sn
3304: , x_serial_number => l_dummy_sn
3305: , p_partial_reservation_flag => FND_API.G_FALSE
3306: , p_force_reservation_flag => FND_API.G_FALSE
3307: , p_validation_flag => FND_API.G_TRUE
3308: , x_quantity_reserved => l_quantity_reserved
3309: , x_reservation_id => l_rsv_id
3310: );
3311:
3315:
3316: -- Bug No:2097933
3317: -- If the Reservation was succesfull we set
3318: -- the package variable to "Y".
3319: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
3320: OE_ORDER_SCH_UTIL.OESCH_PERFORMED_RESERVATION := 'Y';
3321: END IF;
3322:
3323: IF l_debug_level > 0 THEN
3323: IF l_debug_level > 0 THEN
3324: oe_debug_pub.add( L_MSG_DATA , 1 ) ;
3325: END IF;
3326:
3327: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3328: l_line_tbl(j).reserved_quantity := null;
3329: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3330: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3331: IF l_msg_data is not null THEN
3325: END IF;
3326:
3327: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3328: l_line_tbl(j).reserved_quantity := null;
3329: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3330: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3331: IF l_msg_data is not null THEN
3332: fnd_message.set_encoded(l_msg_data);
3333: l_buffer := fnd_message.get;
3326:
3327: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3328: l_line_tbl(j).reserved_quantity := null;
3329: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3330: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3331: IF l_msg_data is not null THEN
3332: fnd_message.set_encoded(l_msg_data);
3333: l_buffer := fnd_message.get;
3334: oe_msg_pub.add_text(p_message_text => l_buffer);
3338:
3339: IF l_line_tbl(j).schedule_action_code =
3340: OE_ORDER_SCH_UTIL.OESCH_ACT_RESERVE
3341: THEN
3342: RAISE FND_API.G_EXC_ERROR;
3343:
3344: ELSE
3345:
3346:
3345:
3346:
3347: -- We should not fail the transaction, if we are
3348: -- not able to reserve the line.
3349: l_return_status := FND_API.G_RET_STS_SUCCESS;
3350:
3351: END IF;
3352:
3353: END IF; -- return status
3368: OE_ORDER_SCH_UTIL.OESCH_ACT_RESCHEDULE
3369: AND NOT OE_GLOBALS.Equal(l_line_tbl(j).schedule_ship_date,
3370: l_old_line_tbl(j).schedule_ship_date)
3371: AND l_old_line_tbl(j).reserved_quantity > 0
3372: AND l_old_line_tbl(j).reserved_quantity <> FND_API.G_MISS_NUM
3373: AND Nvl(l_re_reserve_flag(j),'N') = 'N'
3374: THEN
3375:
3376:
3373: AND Nvl(l_re_reserve_flag(j),'N') = 'N'
3374: THEN
3375:
3376:
3377: l_query_rsv_rec.reservation_id := fnd_api.g_miss_num;
3378:
3379: l_sales_order_id
3380: := OE_ORDER_SCH_UTIL.Get_mtl_sales_order_id(l_old_line_tbl(j).header_id);
3381: l_query_rsv_rec.demand_source_header_id := l_sales_order_id;
3391: END IF;
3392:
3393: inv_reservation_pub.query_reservation
3394: ( p_api_version_number => 1.0
3395: , p_init_msg_lst => fnd_api.g_true
3396: , x_return_status => l_return_status
3397: , x_msg_count => l_msg_count
3398: , x_msg_data => l_msg_data
3399: , p_query_input => l_query_rsv_rec
3407: IF l_debug_level > 0 THEN
3408: oe_debug_pub.add( 'AFTER CALLING INVS QUERY_RESERVATION: ' || L_RETURN_STATUS , 1 ) ;
3409: END IF;
3410:
3411: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3413: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3414: RAISE FND_API.G_EXC_ERROR;
3415: END IF;
3408: oe_debug_pub.add( 'AFTER CALLING INVS QUERY_RESERVATION: ' || L_RETURN_STATUS , 1 ) ;
3409: END IF;
3410:
3411: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3413: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3414: RAISE FND_API.G_EXC_ERROR;
3415: END IF;
3416:
3409: END IF;
3410:
3411: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3413: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3414: RAISE FND_API.G_EXC_ERROR;
3415: END IF;
3416:
3417: IF l_debug_level > 0 THEN
3410:
3411: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3412: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3413: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3414: RAISE FND_API.G_EXC_ERROR;
3415: END IF;
3416:
3417: IF l_debug_level > 0 THEN
3418: oe_debug_pub.add( 'RESERVATION RECORD COUNT IS: ' || L_RSV_TBL.COUNT , 1 ) ;
3428: oe_debug_pub.add( 'RSCH: CALLING INVS UPDATE RESERVATION ' , 1 ) ;
3429: END IF;
3430: inv_reservation_pub.update_reservation
3431: ( p_api_version_number => 1.0
3432: , p_init_msg_lst => fnd_api.g_true
3433: , x_return_status => l_return_status
3434: , x_msg_count => l_msg_count
3435: , x_msg_data => l_msg_data
3436: , p_original_rsv_rec => l_rsv_tbl(M)
3436: , p_original_rsv_rec => l_rsv_tbl(M)
3437: , p_to_rsv_rec => l_reservation_rec
3438: , p_original_serial_number => l_dummy_sn -- no serial contorl
3439: , p_to_serial_number => l_dummy_sn -- no serial control
3440: , p_validation_flag => fnd_api.g_true
3441: );
3442:
3443: IF l_debug_level > 0 THEN
3444: oe_debug_pub.add( 'AFTER CALLING INVS UPDATE_RESERVATION: ' || L_RETURN_STATUS , 1 ) ;
3443: IF l_debug_level > 0 THEN
3444: oe_debug_pub.add( 'AFTER CALLING INVS UPDATE_RESERVATION: ' || L_RETURN_STATUS , 1 ) ;
3445: END IF;
3446:
3447: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3448: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3449: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3450: IF l_msg_data is not null THEN
3451: fnd_message.set_encoded(l_msg_data);
3444: oe_debug_pub.add( 'AFTER CALLING INVS UPDATE_RESERVATION: ' || L_RETURN_STATUS , 1 ) ;
3445: END IF;
3446:
3447: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3448: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3449: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3450: IF l_msg_data is not null THEN
3451: fnd_message.set_encoded(l_msg_data);
3452: l_buffer := fnd_message.get;
3445: END IF;
3446:
3447: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3448: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3449: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3450: IF l_msg_data is not null THEN
3451: fnd_message.set_encoded(l_msg_data);
3452: l_buffer := fnd_message.get;
3453: oe_msg_pub.add_text(p_message_text => l_buffer);
3454: IF l_debug_level > 0 THEN
3455: oe_debug_pub.add( 'ERROR : '|| L_BUFFER , 1 ) ;
3456: END IF;
3457: END IF;
3458: RAISE FND_API.G_EXC_ERROR;
3459: END IF;
3460: END LOOP;
3461:
3462: END IF;
3498: x_avail_to_reserve => l_avail_to_reserve); */
3499: -- added fabdi 03/May/2001
3500: IF NOT INV_GMI_RSV_BRANCH.Process_Branch(p_organization_id => l_out_atp_table(K).ship_from_org_id)
3501: THEN
3502: l_process_flag := FND_API.G_FALSE;
3503: ELSE
3504: l_process_flag := FND_API.G_TRUE;
3505: END IF;
3506: IF l_process_flag = FND_API.G_TRUE
3500: IF NOT INV_GMI_RSV_BRANCH.Process_Branch(p_organization_id => l_out_atp_table(K).ship_from_org_id)
3501: THEN
3502: l_process_flag := FND_API.G_FALSE;
3503: ELSE
3504: l_process_flag := FND_API.G_TRUE;
3505: END IF;
3506: IF l_process_flag = FND_API.G_TRUE
3507: THEN
3508:
3502: l_process_flag := FND_API.G_FALSE;
3503: ELSE
3504: l_process_flag := FND_API.G_TRUE;
3505: END IF;
3506: IF l_process_flag = FND_API.G_TRUE
3507: THEN
3508:
3509: l_out_atp_table(K).on_hand_qty := l_on_hand_qty;
3510: l_out_atp_table(K).available_to_reserve := l_avail_to_reserve;
3571: IF NOT OE_GLOBALS.Equal(l_schedule_action_code,
3572: OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK) AND
3573: NOT OE_GLOBALS.Equal(l_schedule_action_code,
3574: OE_ORDER_SCH_UTIL.OESCH_ACT_UNRESERVE) AND
3575: p_write_to_db = FND_API.G_TRUE THEN
3576:
3577: -- Turning off Perform Scheduling Flag Before calling
3578: -- this procedure since this procedure is calling Process Order
3579: -- which in turn will call scheduling if this flag is not turned off.
3619: OE_ORDER_SCH_UTIL.Update_line_record
3620: ( p_line_tbl => l_old_line_tbl1
3621: , p_x_new_line_tbl => l_out_line_tbl1
3622: , p_write_to_db => p_write_to_db
3623: , p_recursive_call => FND_API.G_FALSE
3624: , x_return_status => l_return_status);
3625:
3626: oe_debug_pub.add('After Calling Update_line_record: ' ||
3627: l_return_status,1);
3625:
3626: oe_debug_pub.add('After Calling Update_line_record: ' ||
3627: l_return_status,1);
3628:
3629: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3630: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3631: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3632: RAISE FND_API.G_EXC_ERROR;
3633: END IF;
3626: oe_debug_pub.add('After Calling Update_line_record: ' ||
3627: l_return_status,1);
3628:
3629: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3630: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3631: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3632: RAISE FND_API.G_EXC_ERROR;
3633: END IF;
3634:
3627: l_return_status,1);
3628:
3629: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3630: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3631: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3632: RAISE FND_API.G_EXC_ERROR;
3633: END IF;
3634:
3635: -- Do not process delayed requests if this was a recursive
3628:
3629: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3630: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3631: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3632: RAISE FND_API.G_EXC_ERROR;
3633: END IF;
3634:
3635: -- Do not process delayed requests if this was a recursive
3636: -- call (e.g. from oe_line_util.pre_write_process)
3643: , p_old_line_tbl => l_old_line_tbl1
3644: , x_return_status => l_return_status
3645: );
3646:
3647: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3649: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3650: RAISE FND_API.G_EXC_ERROR;
3651: END IF;
3644: , x_return_status => l_return_status
3645: );
3646:
3647: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3649: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3650: RAISE FND_API.G_EXC_ERROR;
3651: END IF;
3652:
3645: );
3646:
3647: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3649: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3650: RAISE FND_API.G_EXC_ERROR;
3651: END IF;
3652:
3653:
3646:
3647: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3649: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3650: RAISE FND_API.G_EXC_ERROR;
3651: END IF;
3652:
3653:
3654: END IF;
3680: oe_debug_pub.add( 'EXITING PROCESS_SET_OF_LINES WITH: ' || L_RETURN_STATUS , 1 ) ;
3681: END IF;
3682:
3683: EXCEPTION
3684: WHEN FND_API.G_EXC_ERROR THEN
3685:
3686: IF p_log_msg = 'Y' THEN
3687: FND_MESSAGE.SET_NAME('ONT','OE_SCH_GROUP_MEMBER_FAILED');
3688: OE_MSG_PUB.Add;
3687: FND_MESSAGE.SET_NAME('ONT','OE_SCH_GROUP_MEMBER_FAILED');
3688: OE_MSG_PUB.Add;
3689: END IF;
3690:
3691: x_return_status := FND_API.G_RET_STS_ERROR;
3692: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3693:
3694: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3695:
3688: OE_MSG_PUB.Add;
3689: END IF;
3690:
3691: x_return_status := FND_API.G_RET_STS_ERROR;
3692: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3693:
3694: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3695:
3696: WHEN OTHERS THEN
3690:
3691: x_return_status := FND_API.G_RET_STS_ERROR;
3692: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3693:
3694: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3695:
3696: WHEN OTHERS THEN
3697:
3698: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3694: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3695:
3696: WHEN OTHERS THEN
3697:
3698: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3699:
3700: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3701: THEN
3702: OE_MSG_PUB.Add_Exc_Msg
3786: -- RETURN l_line_tbl;
3787:
3788: EXCEPTION
3789:
3790: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3791:
3792: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3793:
3794: WHEN OTHERS THEN
3788: EXCEPTION
3789:
3790: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3791:
3792: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3793:
3794: WHEN OTHERS THEN
3795:
3796: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3800: , 'Query_Rows'
3801: );
3802: END IF;
3803:
3804: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3805:
3806: END Query_Lines;
3807:
3808: /* ---------------------------------------------------------------
3843: -- the group.
3844:
3845: FND_MESSAGE.SET_NAME('ONT','OE_SCH_CANNOT_UNSCH_SET');
3846: OE_MSG_PUB.Add;
3847: l_return_status := FND_API.G_RET_STS_ERROR;
3848:
3849: END IF;
3850: END IF;
3851:
3888: AND ORGANIZATION_ID = p_ship_from_org_id;
3889:
3890: END LOOP;
3891:
3892: x_return_status := FND_API.G_RET_STS_SUCCESS;
3893:
3894: EXCEPTION
3895: WHEN NO_DATA_FOUND THEN
3896: x_return_status := FND_API.G_RET_STS_ERROR;
3892: x_return_status := FND_API.G_RET_STS_SUCCESS;
3893:
3894: EXCEPTION
3895: WHEN NO_DATA_FOUND THEN
3896: x_return_status := FND_API.G_RET_STS_ERROR;
3897:
3898: FND_MESSAGE.SET_NAME('ONT','OE_SCH_GRP_WHSE_INVALID');
3899: OE_MSG_PUB.Add;
3900:
3898: FND_MESSAGE.SET_NAME('ONT','OE_SCH_GRP_WHSE_INVALID');
3899: OE_MSG_PUB.Add;
3900:
3901: WHEN OTHERS THEN
3902: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3903:
3904: FND_MESSAGE.SET_NAME('ONT','OE_SCH_GRP_WHSE_INVALID');
3905: FND_MESSAGE.SET_TOKEN('LINE',l_line_number);
3906: OE_MSG_PUB.Add;
3946: option_count NUMBER;
3947: l_option_exists NUMBER; -- Bug-2287767
3948: l_option_search NUMBER; -- Bug-2287767
3949: I NUMBER;
3950: l_out_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
3951:
3952: processed_arrival_set number_arr;
3953: processed_ship_set number_arr;
3954: processed_pto_model number_arr;
4277: x_atp_tbl(atp_count) := l_out_atp_tbl(J);
4278: atp_count := atp_count + 1;
4279: END LOOP;
4280:
4281: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4282: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4283: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4284: l_out_return_status := FND_API.G_RET_STS_ERROR;
4285: ROLLBACK TO SCH_LINE;
4278: atp_count := atp_count + 1;
4279: END LOOP;
4280:
4281: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4282: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4283: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4284: l_out_return_status := FND_API.G_RET_STS_ERROR;
4285: ROLLBACK TO SCH_LINE;
4286: END IF;
4279: END LOOP;
4280:
4281: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4282: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4283: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4284: l_out_return_status := FND_API.G_RET_STS_ERROR;
4285: ROLLBACK TO SCH_LINE;
4286: END IF;
4287:
4280:
4281: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4282: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4283: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4284: l_out_return_status := FND_API.G_RET_STS_ERROR;
4285: ROLLBACK TO SCH_LINE;
4286: END IF;
4287:
4288:
4311: END IF;
4312:
4313: OE_ORDER_SCH_UTIL.Schedule_line
4314: ( p_old_line_rec => l_old_line_rec
4315: ,p_write_to_db => FND_API.G_TRUE
4316: ,p_x_line_rec => l_line_rec
4317: ,x_atp_tbl => l_out_atp_tbl
4318: ,x_return_status => l_return_status);
4319:
4316: ,p_x_line_rec => l_line_rec
4317: ,x_atp_tbl => l_out_atp_tbl
4318: ,x_return_status => l_return_status);
4319:
4320: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4321: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4322: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4323: l_out_return_status := FND_API.G_RET_STS_ERROR;
4324: ROLLBACK TO SCH_LINE;
4317: ,x_atp_tbl => l_out_atp_tbl
4318: ,x_return_status => l_return_status);
4319:
4320: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4321: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4322: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4323: l_out_return_status := FND_API.G_RET_STS_ERROR;
4324: ROLLBACK TO SCH_LINE;
4325: END IF;
4318: ,x_return_status => l_return_status);
4319:
4320: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4321: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4322: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4323: l_out_return_status := FND_API.G_RET_STS_ERROR;
4324: ROLLBACK TO SCH_LINE;
4325: END IF;
4326:
4319:
4320: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4321: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4322: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
4323: l_out_return_status := FND_API.G_RET_STS_ERROR;
4324: ROLLBACK TO SCH_LINE;
4325: END IF;
4326:
4327: IF l_debug_level > 0 THEN
4347: null;
4348:
4349: EXCEPTION
4350:
4351: WHEN FND_API.G_EXC_ERROR THEN
4352:
4353: -- The line did not get scheduled, which is ok, since an error
4354: -- message would have captured the error.
4355: ROLLBACK TO SCH_LINE;
4360:
4361: -- Set return status.
4362:
4363: /*
4364: IF l_out_return_status = FND_API.G_RET_STS_ERROR THEN
4365: RAISE FND_API.G_EXC_ERROR;
4366: END IF;
4367: */
4368:
4361: -- Set return status.
4362:
4363: /*
4364: IF l_out_return_status = FND_API.G_RET_STS_ERROR THEN
4365: RAISE FND_API.G_EXC_ERROR;
4366: END IF;
4367: */
4368:
4369: -- x_return_status := l_out_return_status;
4370: -- Returning success, even if there were errors (unexpected errors will
4371: -- be raised and taken care of). This is because we do not want to rollback
4372: -- since the successful lines should get committed.
4373:
4374: x_return_status := FND_API.G_RET_STS_SUCCESS;
4375:
4376: -- Get message count and data
4377:
4378: oe_msg_pub.count_and_get
4395: END IF;
4396:
4397: EXCEPTION
4398:
4399: WHEN FND_API.G_EXC_ERROR THEN
4400:
4401: x_return_status := FND_API.G_RET_STS_ERROR;
4402:
4403: /* Bug :2222360 */
4397: EXCEPTION
4398:
4399: WHEN FND_API.G_EXC_ERROR THEN
4400:
4401: x_return_status := FND_API.G_RET_STS_ERROR;
4402:
4403: /* Bug :2222360 */
4404: IF p_action = OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK THEN
4405: IF l_debug_level > 0 THEN
4419: ( p_count => x_msg_count
4420: , p_data => x_msg_data
4421: );
4422:
4423: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4424:
4425: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4426:
4427: /* Bug :2222360 */
4421: );
4422:
4423: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4424:
4425: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4426:
4427: /* Bug :2222360 */
4428: IF p_action = OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK THEN
4429: IF l_debug_level > 0 THEN
4444: );
4445:
4446: WHEN OTHERS THEN
4447:
4448: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4449:
4450: /* Bug :2222360 */
4451: IF p_action = OE_ORDER_SCH_UTIL.OESCH_ACT_ATP_CHECK THEN
4452: IF l_debug_level > 0 THEN