24: -- Pre-reqs :
25: --
26: -- Standard IN Parameters :
27: -- p_api_version IN NUMBER Required
28: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
29: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
30: -- Standard OUT Parameters :
31: -- x_return_status OUT VARCHAR2 Required
32: -- x_msg_count OUT NUMBER Required
25: --
26: -- Standard IN Parameters :
27: -- p_api_version IN NUMBER Required
28: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
29: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
30: -- Standard OUT Parameters :
31: -- x_return_status OUT VARCHAR2 Required
32: -- x_msg_count OUT NUMBER Required
33: -- x_msg_data OUT VARCHAR2 Required
52: --------------------------------------------------------------------------------------------
53:
54: PROCEDURE List_Extra_Nodes(
55: p_api_version IN NUMBER,
56: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
57: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
58: x_return_status OUT NOCOPY VARCHAR2,
59: x_msg_count OUT NOCOPY NUMBER,
60: x_msg_data OUT NOCOPY VARCHAR2,
53:
54: PROCEDURE List_Extra_Nodes(
55: p_api_version IN NUMBER,
56: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
57: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
58: x_return_status OUT NOCOPY VARCHAR2,
59: x_msg_count OUT NOCOPY NUMBER,
60: x_msg_data OUT NOCOPY VARCHAR2,
61: p_uc_header_id IN NUMBER,
143: --
144: BEGIN
145:
146: -- Standard call to check for call compatibility
147: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
148: G_PKG_NAME) THEN
149: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
150: END IF;
151:
145:
146: -- Standard call to check for call compatibility
147: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
148: G_PKG_NAME) THEN
149: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
150: END IF;
151:
152: -- Initialize message list if p_init_msg_list is set to TRUE
153: IF FND_API.To_Boolean(p_init_msg_list) THEN
149: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
150: END IF;
151:
152: -- Initialize message list if p_init_msg_list is set to TRUE
153: IF FND_API.To_Boolean(p_init_msg_list) THEN
154: FND_MSG_PUB.Initialize;
155: END IF;
156:
157: -- Initialize API return status to success
154: FND_MSG_PUB.Initialize;
155: END IF;
156:
157: -- Initialize API return status to success
158: x_return_status := FND_API.G_RET_STS_SUCCESS;
159:
160: -- Begin Processing
161: x_evaluation_status := FND_API.G_TRUE;
162:
157: -- Initialize API return status to success
158: x_return_status := FND_API.G_RET_STS_SUCCESS;
159:
160: -- Begin Processing
161: x_evaluation_status := FND_API.G_TRUE;
162:
163:
164: --Call procedure to validate the uc header id
165: IF (p_csi_instance_id IS NOT NULL AND
172: FND_MESSAGE.set_name('AHL', 'AHL_UC_HEADER_ID_INVALID');
173: FND_MESSAGE.set_token('UC_HEADER_ID', p_uc_header_id);
174: FND_MSG_PUB.add;
175: CLOSE get_uc_header_rec_csr;
176: RAISE FND_API.G_EXC_ERROR;
177: END IF;
178: CLOSE get_uc_header_rec_csr;
179: END IF;
180:
229: p_x_error_table(p_x_error_table.LAST+1) := FND_MESSAGE.get;
230: ELSE
231: p_x_error_table(0) := FND_MESSAGE.get;
232: END IF;
233: x_evaluation_status := FND_API.G_FALSE;
234:
235: END LOOP;
236: CLOSE get_extra_nodes_csr;
237:
237:
238: -- Check Error Message stack.
239: x_msg_count := FND_MSG_PUB.count_msg;
240: IF x_msg_count > 0 THEN
241: RAISE FND_API.G_EXC_ERROR;
242: END IF;
243:
244: -- Standard call to get message count and if count is 1, get message info
245: FND_MSG_PUB.Count_And_Get
244: -- Standard call to get message count and if count is 1, get message info
245: FND_MSG_PUB.Count_And_Get
246: ( p_count => x_msg_count,
247: p_data => x_msg_data,
248: p_encoded => fnd_api.g_false
249: );
250:
251: EXCEPTION
252: WHEN FND_API.G_EXC_ERROR THEN
248: p_encoded => fnd_api.g_false
249: );
250:
251: EXCEPTION
252: WHEN FND_API.G_EXC_ERROR THEN
253: x_return_status := FND_API.G_RET_STS_ERROR;
254: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
255: p_data => x_msg_data,
256: p_encoded => fnd_api.g_false);
249: );
250:
251: EXCEPTION
252: WHEN FND_API.G_EXC_ERROR THEN
253: x_return_status := FND_API.G_RET_STS_ERROR;
254: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
255: p_data => x_msg_data,
256: p_encoded => fnd_api.g_false);
257: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
252: WHEN FND_API.G_EXC_ERROR THEN
253: x_return_status := FND_API.G_RET_STS_ERROR;
254: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
255: p_data => x_msg_data,
256: p_encoded => fnd_api.g_false);
257: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
258: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
260: p_data => x_msg_data,
253: x_return_status := FND_API.G_RET_STS_ERROR;
254: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
255: p_data => x_msg_data,
256: p_encoded => fnd_api.g_false);
257: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
258: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
260: p_data => x_msg_data,
261: p_encoded => fnd_api.g_false);
254: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
255: p_data => x_msg_data,
256: p_encoded => fnd_api.g_false);
257: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
258: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
260: p_data => x_msg_data,
261: p_encoded => fnd_api.g_false);
262: WHEN OTHERS THEN
257: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
258: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
260: p_data => x_msg_data,
261: p_encoded => fnd_api.g_false);
262: WHEN OTHERS THEN
263: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
264: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
265: p_procedure_name => l_api_name,
259: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
260: p_data => x_msg_data,
261: p_encoded => fnd_api.g_false);
262: WHEN OTHERS THEN
263: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
264: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
265: p_procedure_name => l_api_name,
266: p_error_text => SQLERRM);
267:
266: p_error_text => SQLERRM);
267:
268: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
269: p_data => x_msg_data,
270: p_encoded => fnd_api.g_false);
271:
272: END List_Extra_Nodes;
273:
274: --------------------------------------------------------------------------------------------
280: -- Pre-reqs :
281: --
282: -- Standard IN Parameters :
283: -- p_api_version IN NUMBER Required
284: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
285: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
286: -- Standard OUT Parameters :
287: -- x_return_status OUT VARCHAR2 Required
288: -- x_msg_count OUT NUMBER Required
281: --
282: -- Standard IN Parameters :
283: -- p_api_version IN NUMBER Required
284: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
285: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
286: -- Standard OUT Parameters :
287: -- x_return_status OUT VARCHAR2 Required
288: -- x_msg_count OUT NUMBER Required
289: -- x_msg_data OUT VARCHAR2 Required
292: -- p_uc_header_id IN Required
293: -- The header id of the unit configuration
294: -- x_evaluation_status OUT VARCHAR2
295: -- The flag which indicates whether the unit configuration
296: -- has any extra nodes and returns FND_API.G_TRUE ot FND_API.G_FALSE accordingly.
297: -- History:
298: -- 05/19/03 SBethi CREATED
299: --
300: -- Version :
304: --------------------------------------------------------------------------------------------
305:
306: PROCEDURE Check_Extra_Nodes(
307: p_api_version IN NUMBER,
308: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
309: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
310: x_return_status OUT NOCOPY VARCHAR2,
311: x_msg_count OUT NOCOPY NUMBER,
312: x_msg_data OUT NOCOPY VARCHAR2,
305:
306: PROCEDURE Check_Extra_Nodes(
307: p_api_version IN NUMBER,
308: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
309: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
310: x_return_status OUT NOCOPY VARCHAR2,
311: x_msg_count OUT NOCOPY NUMBER,
312: x_msg_data OUT NOCOPY VARCHAR2,
313: p_uc_header_id IN NUMBER,
345: BEGIN
346:
347:
348: -- Standard call to check for call compatibility
349: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
350: G_PKG_NAME) THEN
351: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
352: END IF;
353:
347:
348: -- Standard call to check for call compatibility
349: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
350: G_PKG_NAME) THEN
351: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
352: END IF;
353:
354: -- Initialize message list if p_init_msg_list is set to TRUE
355: IF FND_API.To_Boolean(p_init_msg_list) THEN
351: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
352: END IF;
353:
354: -- Initialize message list if p_init_msg_list is set to TRUE
355: IF FND_API.To_Boolean(p_init_msg_list) THEN
356: FND_MSG_PUB.Initialize;
357: END IF;
358:
359: -- Initialize API return status to success
356: FND_MSG_PUB.Initialize;
357: END IF;
358:
359: -- Initialize API return status to success
360: x_return_status := FND_API.G_RET_STS_SUCCESS;
361:
362: -- Begin Processing
363: --Call procedure to validate the uc header id
364: OPEN get_uc_header_rec_csr(p_uc_header_id);
367: FND_MESSAGE.set_name('AHL', 'AHL_UC_HEADER_ID_INVALID');
368: FND_MESSAGE.set_token('UC_HEADER_ID', p_uc_header_id);
369: FND_MSG_PUB.add;
370: CLOSE get_uc_header_rec_csr;
371: RAISE FND_API.G_EXC_ERROR;
372: END IF;
373: CLOSE get_uc_header_rec_csr;
374:
375:
375:
376: OPEN get_extra_nodes_csr(l_top_instance_id);
377: FETCH get_extra_nodes_csr INTO l_dummy;
378: IF (get_extra_nodes_csr%FOUND) THEN
379: x_evaluation_status := FND_API.G_FALSE;
380: ELSE
381: x_evaluation_status := FND_API.G_TRUE;
382: END IF;
383: CLOSE get_extra_nodes_csr;
377: FETCH get_extra_nodes_csr INTO l_dummy;
378: IF (get_extra_nodes_csr%FOUND) THEN
379: x_evaluation_status := FND_API.G_FALSE;
380: ELSE
381: x_evaluation_status := FND_API.G_TRUE;
382: END IF;
383: CLOSE get_extra_nodes_csr;
384: --Completed Processing
385:
385:
386: -- Check Error Message stack.
387: x_msg_count := FND_MSG_PUB.count_msg;
388: IF x_msg_count > 0 THEN
389: RAISE FND_API.G_EXC_ERROR;
390: END IF;
391:
392: -- Standard call to get message count and if count is 1, get message info
393: FND_MSG_PUB.Count_And_Get
392: -- Standard call to get message count and if count is 1, get message info
393: FND_MSG_PUB.Count_And_Get
394: ( p_count => x_msg_count,
395: p_data => x_msg_data,
396: p_encoded => fnd_api.g_false
397: );
398: EXCEPTION
399: WHEN FND_API.G_EXC_ERROR THEN
400: x_return_status := FND_API.G_RET_STS_ERROR;
395: p_data => x_msg_data,
396: p_encoded => fnd_api.g_false
397: );
398: EXCEPTION
399: WHEN FND_API.G_EXC_ERROR THEN
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
396: p_encoded => fnd_api.g_false
397: );
398: EXCEPTION
399: WHEN FND_API.G_EXC_ERROR THEN
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
399: WHEN FND_API.G_EXC_ERROR THEN
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
406: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
407: p_data => x_msg_data,
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
406: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
407: p_data => x_msg_data,
408: p_encoded => fnd_api.g_false);
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
406: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
407: p_data => x_msg_data,
408: p_encoded => fnd_api.g_false);
409: WHEN OTHERS THEN
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
406: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
407: p_data => x_msg_data,
408: p_encoded => fnd_api.g_false);
409: WHEN OTHERS THEN
410: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
411: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
412: p_procedure_name => l_api_name,
406: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
407: p_data => x_msg_data,
408: p_encoded => fnd_api.g_false);
409: WHEN OTHERS THEN
410: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
411: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
412: p_procedure_name => l_api_name,
413: p_error_text => SQLERRM);
414:
413: p_error_text => SQLERRM);
414:
415: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
416: p_data => x_msg_data,
417: p_encoded => fnd_api.g_false);
418: END Check_Extra_Nodes;
419:
420: --------------------------------------------------------------------------------------------
421: -- Start of Comments --
427: -- Pre-reqs :
428: --
429: -- Standard IN Parameters :
430: -- p_api_version IN NUMBER Required
431: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
432: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
433: -- Standard OUT Parameters :
434: -- x_return_status OUT VARCHAR2 Required
435: -- x_msg_count OUT NUMBER Required
428: --
429: -- Standard IN Parameters :
430: -- p_api_version IN NUMBER Required
431: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
432: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
433: -- Standard OUT Parameters :
434: -- x_return_status OUT VARCHAR2 Required
435: -- x_msg_count OUT NUMBER Required
436: -- x_msg_data OUT VARCHAR2 Required
439: -- p_uc_header_id IN Required
440: -- The header id of the unit configuration
441: -- x_evaluation_status OUT VARCHAR2
442: -- The flag which indicates whether the unit configuration
443: -- has any missing positions and returns FND_API.G_TRUE ot FND_API.G_FALSE accordingly.
444: -- History:
445: -- 05/19/03 SBethi CREATED
446: --
447: -- Version :
451: --------------------------------------------------------------------------------------------
452:
453: PROCEDURE Check_Missing_Positions(
454: p_api_version IN NUMBER,
455: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
456: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
457: x_return_status OUT NOCOPY VARCHAR2,
458: x_msg_count OUT NOCOPY NUMBER,
459: x_msg_data OUT NOCOPY VARCHAR2,
452:
453: PROCEDURE Check_Missing_Positions(
454: p_api_version IN NUMBER,
455: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
456: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
457: x_return_status OUT NOCOPY VARCHAR2,
458: x_msg_count OUT NOCOPY NUMBER,
459: x_msg_data OUT NOCOPY VARCHAR2,
460: p_uc_header_id IN NUMBER,
535: BEGIN
536:
537:
538: -- Standard call to check for call compatibility
539: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
540: G_PKG_NAME) THEN
541: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
542: END IF;
543:
537:
538: -- Standard call to check for call compatibility
539: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
540: G_PKG_NAME) THEN
541: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
542: END IF;
543:
544: -- Initialize message list if p_init_msg_list is set to TRUE
545: IF FND_API.To_Boolean(p_init_msg_list) THEN
541: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
542: END IF;
543:
544: -- Initialize message list if p_init_msg_list is set to TRUE
545: IF FND_API.To_Boolean(p_init_msg_list) THEN
546: FND_MSG_PUB.Initialize;
547: END IF;
548:
549: -- Initialize API return status to success
546: FND_MSG_PUB.Initialize;
547: END IF;
548:
549: -- Initialize API return status to success
550: x_return_status := FND_API.G_RET_STS_SUCCESS;
551: x_evaluation_status := FND_API.G_TRUE;
552:
553: -- Begin Processing
554: --Call procedure to validate the uc header id
547: END IF;
548:
549: -- Initialize API return status to success
550: x_return_status := FND_API.G_RET_STS_SUCCESS;
551: x_evaluation_status := FND_API.G_TRUE;
552:
553: -- Begin Processing
554: --Call procedure to validate the uc header id
555: OPEN get_uc_header_rec_csr(p_uc_header_id);
558: FND_MESSAGE.set_name('AHL', 'AHL_UC_HEADER_ID_INVALID');
559: FND_MESSAGE.set_token('UC_HEADER_ID', p_uc_header_id);
560: FND_MSG_PUB.add;
561: CLOSE get_uc_header_rec_csr;
562: RAISE FND_API.G_EXC_ERROR;
563: END IF;
564: CLOSE get_uc_header_rec_csr;
565:
566: OPEN get_unit_tree_csr(l_top_instance_id);
586: FETCH check_mand_child_missing_csr INTO l_dummy;
587:
588: --If found, then there are missing positions
589: IF (check_mand_child_missing_csr%FOUND) THEN
590: x_evaluation_status := FND_API.G_FALSE;
591: EXIT l_unit_tree_loop;
592: END IF;
593: CLOSE check_mand_child_missing_csr;
594:
599:
600: -- Check Error Message stack.
601: x_msg_count := FND_MSG_PUB.count_msg;
602: IF x_msg_count > 0 THEN
603: RAISE FND_API.G_EXC_ERROR;
604: END IF;
605:
606: -- Standard call to get message count and if count is 1, get message info
607: FND_MSG_PUB.Count_And_Get
606: -- Standard call to get message count and if count is 1, get message info
607: FND_MSG_PUB.Count_And_Get
608: ( p_count => x_msg_count,
609: p_data => x_msg_data,
610: p_encoded => fnd_api.g_false
611: );
612:
613:
614: EXCEPTION
611: );
612:
613:
614: EXCEPTION
615: WHEN FND_API.G_EXC_ERROR THEN
616: x_return_status := FND_API.G_RET_STS_ERROR;
617: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
618: p_data => x_msg_data,
619: p_encoded => fnd_api.g_false);
612:
613:
614: EXCEPTION
615: WHEN FND_API.G_EXC_ERROR THEN
616: x_return_status := FND_API.G_RET_STS_ERROR;
617: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
618: p_data => x_msg_data,
619: p_encoded => fnd_api.g_false);
620:
615: WHEN FND_API.G_EXC_ERROR THEN
616: x_return_status := FND_API.G_RET_STS_ERROR;
617: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
618: p_data => x_msg_data,
619: p_encoded => fnd_api.g_false);
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
617: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
618: p_data => x_msg_data,
619: p_encoded => fnd_api.g_false);
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
624: p_data => x_msg_data,
625: p_encoded => fnd_api.g_false);
618: p_data => x_msg_data,
619: p_encoded => fnd_api.g_false);
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
624: p_data => x_msg_data,
625: p_encoded => fnd_api.g_false);
626:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
624: p_data => x_msg_data,
625: p_encoded => fnd_api.g_false);
626:
627: WHEN OTHERS THEN
628: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
629: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
624: p_data => x_msg_data,
625: p_encoded => fnd_api.g_false);
626:
627: WHEN OTHERS THEN
628: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
629: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
630: p_procedure_name => l_api_name,
631: p_error_text => SQLERRM);
632:
631: p_error_text => SQLERRM);
632:
633: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
634: p_data => x_msg_data,
635: p_encoded => fnd_api.g_false);
636:
637: END Check_Missing_Positions;
638:
639: --------------------------------------------------------------------------------------------
645: -- Pre-reqs :
646: --
647: -- Standard IN Parameters :
648: -- p_api_version IN NUMBER Required
649: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
650: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
651: -- Standard OUT Parameters :
652: -- x_return_status OUT VARCHAR2 Required
653: -- x_msg_count OUT NUMBER Required
646: --
647: -- Standard IN Parameters :
648: -- p_api_version IN NUMBER Required
649: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
650: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
651: -- Standard OUT Parameters :
652: -- x_return_status OUT VARCHAR2 Required
653: -- x_msg_count OUT NUMBER Required
654: -- x_msg_data OUT VARCHAR2 Required
668: --------------------------------------------------------------------------------------------
669:
670: PROCEDURE List_Missing_Positions(
671: p_api_version IN NUMBER,
672: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
673: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
674: x_return_status OUT NOCOPY VARCHAR2,
675: x_msg_count OUT NOCOPY NUMBER,
676: x_msg_data OUT NOCOPY VARCHAR2,
669:
670: PROCEDURE List_Missing_Positions(
671: p_api_version IN NUMBER,
672: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
673: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
674: x_return_status OUT NOCOPY VARCHAR2,
675: x_msg_count OUT NOCOPY NUMBER,
676: x_msg_data OUT NOCOPY VARCHAR2,
677: p_uc_header_id IN NUMBER,
766:
767: BEGIN
768:
769: -- Standard call to check for call compatibility
770: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
771: G_PKG_NAME) THEN
772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
773: END IF;
774:
768:
769: -- Standard call to check for call compatibility
770: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
771: G_PKG_NAME) THEN
772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
773: END IF;
774:
775: -- Initialize message list if p_init_msg_list is set to TRUE
776: IF FND_API.To_Boolean(p_init_msg_list) THEN
772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
773: END IF;
774:
775: -- Initialize message list if p_init_msg_list is set to TRUE
776: IF FND_API.To_Boolean(p_init_msg_list) THEN
777: FND_MSG_PUB.Initialize;
778: END IF;
779:
780: -- Initialize API return status to success
777: FND_MSG_PUB.Initialize;
778: END IF;
779:
780: -- Initialize API return status to success
781: x_return_status := FND_API.G_RET_STS_SUCCESS;
782: --Setting output parameters
783: x_evaluation_status := FND_API.G_TRUE;
784:
785: -- Begin Processing
779:
780: -- Initialize API return status to success
781: x_return_status := FND_API.G_RET_STS_SUCCESS;
782: --Setting output parameters
783: x_evaluation_status := FND_API.G_TRUE;
784:
785: -- Begin Processing
786: IF (p_csi_instance_id IS NOT NULL AND
787: p_uc_header_id IS NULL) THEN
794: FND_MESSAGE.set_name('AHL', 'AHL_UC_HEADER_ID_INVALID');
795: FND_MESSAGE.set_token('UC_HEADER_ID', p_uc_header_id);
796: FND_MSG_PUB.add;
797: CLOSE get_uc_header_rec_csr;
798: RAISE FND_API.G_EXC_ERROR;
799: END IF;
800: CLOSE get_uc_header_rec_csr;
801: END IF;
802:
841: ELSE
842: p_x_error_table(0) := FND_MESSAGE.get;
843: END IF;
844:
845: x_evaluation_status := FND_API.G_FALSE;
846:
847: --Now fetch the mandatory descendents of the mandatory position
848: OPEN get_mand_pos_desc_csr(l_miss_rel_id);
849: LOOP
882:
883: -- Check Error Message stack.
884: x_msg_count := FND_MSG_PUB.count_msg;
885: IF x_msg_count > 0 THEN
886: RAISE FND_API.G_EXC_ERROR;
887: END IF;
888:
889: -- Standard call to get message count and if count is 1, get message info
890: FND_MSG_PUB.Count_And_Get
889: -- Standard call to get message count and if count is 1, get message info
890: FND_MSG_PUB.Count_And_Get
891: ( p_count => x_msg_count,
892: p_data => x_msg_data,
893: p_encoded => fnd_api.g_false
894: );
895:
896:
897: EXCEPTION
894: );
895:
896:
897: EXCEPTION
898: WHEN FND_API.G_EXC_ERROR THEN
899: x_return_status := FND_API.G_RET_STS_ERROR;
900: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
901: p_data => x_msg_data,
902: p_encoded => fnd_api.g_false);
895:
896:
897: EXCEPTION
898: WHEN FND_API.G_EXC_ERROR THEN
899: x_return_status := FND_API.G_RET_STS_ERROR;
900: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
901: p_data => x_msg_data,
902: p_encoded => fnd_api.g_false);
903: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
898: WHEN FND_API.G_EXC_ERROR THEN
899: x_return_status := FND_API.G_RET_STS_ERROR;
900: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
901: p_data => x_msg_data,
902: p_encoded => fnd_api.g_false);
903: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
904: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
906: p_data => x_msg_data,
899: x_return_status := FND_API.G_RET_STS_ERROR;
900: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
901: p_data => x_msg_data,
902: p_encoded => fnd_api.g_false);
903: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
904: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
906: p_data => x_msg_data,
907: p_encoded => fnd_api.g_false);
900: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
901: p_data => x_msg_data,
902: p_encoded => fnd_api.g_false);
903: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
904: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
906: p_data => x_msg_data,
907: p_encoded => fnd_api.g_false);
908: WHEN OTHERS THEN
903: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
904: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
906: p_data => x_msg_data,
907: p_encoded => fnd_api.g_false);
908: WHEN OTHERS THEN
909: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
910: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
911: p_procedure_name => l_api_name,
905: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
906: p_data => x_msg_data,
907: p_encoded => fnd_api.g_false);
908: WHEN OTHERS THEN
909: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
910: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
911: p_procedure_name => l_api_name,
912: p_error_text => SQLERRM);
913:
912: p_error_text => SQLERRM);
913:
914: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
915: p_data => x_msg_data,
916: p_encoded => fnd_api.g_false);
917: END List_Missing_Positions;
918:
919: -- SATHAPLI::FP OGMA Issue# 105 - Non-Serialized Item Maintenance, 05-Dec-2007
920: -- This procedure adds a Quantity specific message to the Error Table.
1090: -- Pre-reqs
1091: --
1092: -- Standard IN Parameters :
1093: -- p_api_version IN NUMBER Required
1094: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
1095: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1096: -- Standard OUT Parameters :
1097: -- x_return_status OUT VARCHAR2 Required
1098: -- x_msg_count OUT NUMBER Required
1091: --
1092: -- Standard IN Parameters :
1093: -- p_api_version IN NUMBER Required
1094: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
1095: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1096: -- Standard OUT Parameters :
1097: -- x_return_status OUT VARCHAR2 Required
1098: -- x_msg_count OUT NUMBER Required
1099: -- x_msg_data OUT VARCHAR2 Required
1117: --------------------------------------------------------------------------------------------
1118:
1119: PROCEDURE Validate_Position_Quantities(
1120: p_api_version IN NUMBER,
1121: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1122: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1123: x_return_status OUT NOCOPY VARCHAR2,
1124: x_msg_count OUT NOCOPY NUMBER,
1125: x_msg_data OUT NOCOPY VARCHAR2,
1118:
1119: PROCEDURE Validate_Position_Quantities(
1120: p_api_version IN NUMBER,
1121: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1122: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1123: x_return_status OUT NOCOPY VARCHAR2,
1124: x_msg_count OUT NOCOPY NUMBER,
1125: x_msg_data OUT NOCOPY VARCHAR2,
1126: p_uc_header_id IN NUMBER,
1238: ', p_uc_header_id = ' || p_uc_header_id ||
1239: ', p_x_error_table.COUNT = ' || p_x_error_table.COUNT);
1240: END IF;
1241: -- Standard call to check for call compatibility
1242: IF NOT FND_API.Compatible_API_Call(L_API_VERSION, p_api_version, L_API_NAME,
1243: G_PKG_NAME) THEN
1244: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1245: END IF;
1246:
1240: END IF;
1241: -- Standard call to check for call compatibility
1242: IF NOT FND_API.Compatible_API_Call(L_API_VERSION, p_api_version, L_API_NAME,
1243: G_PKG_NAME) THEN
1244: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1245: END IF;
1246:
1247: -- Initialize message list if p_init_msg_list is set to TRUE
1248: IF FND_API.To_Boolean(p_init_msg_list) THEN
1244: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1245: END IF;
1246:
1247: -- Initialize message list if p_init_msg_list is set to TRUE
1248: IF FND_API.To_Boolean(p_init_msg_list) THEN
1249: FND_MSG_PUB.Initialize;
1250: END IF;
1251:
1252: -- Initialize API return status to success
1249: FND_MSG_PUB.Initialize;
1250: END IF;
1251:
1252: -- Initialize API return status to success
1253: x_return_status := FND_API.G_RET_STS_SUCCESS;
1254:
1255: -- Begin Processing
1256: x_evaluation_status := FND_API.G_TRUE;
1257:
1252: -- Initialize API return status to success
1253: x_return_status := FND_API.G_RET_STS_SUCCESS;
1254:
1255: -- Begin Processing
1256: x_evaluation_status := FND_API.G_TRUE;
1257:
1258: -- Call procedure to validate the uc header id
1259: IF (p_csi_instance_id IS NOT NULL AND p_uc_header_id IS NULL) THEN
1260: l_top_instance_id := p_csi_instance_id;
1265: FND_MESSAGE.set_name('AHL', 'AHL_UC_HEADER_ID_INVALID');
1266: FND_MESSAGE.set_token('UC_HEADER_ID', p_uc_header_id);
1267: FND_MSG_PUB.add;
1268: CLOSE get_uc_header_rec_csr;
1269: RAISE FND_API.G_EXC_ERROR;
1270: END IF;
1271: CLOSE get_uc_header_rec_csr;
1272: END IF;
1273:
1327: Add_Qty_Message(p_position_ref_code => l_pos_dtls_rec.position_ref_code,
1328: p_inst_qty => l_pos_dtls_rec.Inst_qty,
1329: p_qty_less_flag => 'N', -- Quantity is more
1330: p_x_error_table => p_x_error_table);
1331: x_evaluation_status := FND_API.G_FALSE;
1332:
1333: ELSE
1334: -- Instance Quantity is less than Position Quantity
1335: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1365: Add_Qty_Message(p_position_ref_code => l_pos_dtls_rec.position_ref_code,
1366: p_inst_qty => l_pos_dtls_rec.Inst_qty,
1367: p_qty_less_flag => 'Y', -- Quantity is less
1368: p_x_error_table => p_x_error_table);
1369: x_evaluation_status := FND_API.G_FALSE;
1370: END IF; -- l_parent_rule_tbl entry is +ve or -ve
1371: END IF; -- Inst_qty checks
1372: END IF; -- l_rel_id IS NOT NULL
1373: END LOOP; -- All leaf non-extra nodes
1377:
1378: -- Check Error Message stack.
1379: x_msg_count := FND_MSG_PUB.count_msg;
1380: IF x_msg_count > 0 THEN
1381: RAISE FND_API.G_EXC_ERROR;
1382: END IF;
1383:
1384: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1385: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.end',
1390: -- Standard call to get message count and if count is 1, get message info
1391: FND_MSG_PUB.Count_And_Get
1392: ( p_count => x_msg_count,
1393: p_data => x_msg_data,
1394: p_encoded => fnd_api.g_false
1395: );
1396:
1397: EXCEPTION
1398: WHEN FND_API.G_EXC_ERROR THEN
1394: p_encoded => fnd_api.g_false
1395: );
1396:
1397: EXCEPTION
1398: WHEN FND_API.G_EXC_ERROR THEN
1399: x_return_status := FND_API.G_RET_STS_ERROR;
1400: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1401: p_data => x_msg_data,
1402: p_encoded => fnd_api.g_false);
1395: );
1396:
1397: EXCEPTION
1398: WHEN FND_API.G_EXC_ERROR THEN
1399: x_return_status := FND_API.G_RET_STS_ERROR;
1400: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1401: p_data => x_msg_data,
1402: p_encoded => fnd_api.g_false);
1403: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1398: WHEN FND_API.G_EXC_ERROR THEN
1399: x_return_status := FND_API.G_RET_STS_ERROR;
1400: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1401: p_data => x_msg_data,
1402: p_encoded => fnd_api.g_false);
1403: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1404: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1405: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1406: p_data => x_msg_data,
1399: x_return_status := FND_API.G_RET_STS_ERROR;
1400: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1401: p_data => x_msg_data,
1402: p_encoded => fnd_api.g_false);
1403: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1404: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1405: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1406: p_data => x_msg_data,
1407: p_encoded => fnd_api.g_false);
1400: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1401: p_data => x_msg_data,
1402: p_encoded => fnd_api.g_false);
1403: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1404: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1405: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1406: p_data => x_msg_data,
1407: p_encoded => fnd_api.g_false);
1408: WHEN OTHERS THEN
1403: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1404: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1405: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1406: p_data => x_msg_data,
1407: p_encoded => fnd_api.g_false);
1408: WHEN OTHERS THEN
1409: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1410: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
1411: p_procedure_name => l_api_name,
1405: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1406: p_data => x_msg_data,
1407: p_encoded => fnd_api.g_false);
1408: WHEN OTHERS THEN
1409: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1410: FND_MSG_PUB.add_exc_msg( p_pkg_name => G_PKG_NAME,
1411: p_procedure_name => l_api_name,
1412: p_error_text => SQLERRM);
1413:
1412: p_error_text => SQLERRM);
1413:
1414: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1415: p_data => x_msg_data,
1416: p_encoded => fnd_api.g_false);
1417: END Validate_Position_Quantities;
1418:
1419: --------------------------------------------------------------------------------------------
1420: -- Start of Comments --
1431: -- Pre-reqs
1432: --
1433: -- Standard IN Parameters :
1434: -- p_api_version IN NUMBER Required
1435: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
1436: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1437: -- Standard OUT Parameters :
1438: -- x_return_status OUT VARCHAR2 Required
1439: -- x_msg_count OUT NUMBER Required
1432: --
1433: -- Standard IN Parameters :
1434: -- p_api_version IN NUMBER Required
1435: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
1436: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1437: -- Standard OUT Parameters :
1438: -- x_return_status OUT VARCHAR2 Required
1439: -- x_msg_count OUT NUMBER Required
1440: -- x_msg_data OUT VARCHAR2 Required
1454: --------------------------------------------------------------------------------------------
1455:
1456: PROCEDURE Check_Position_Quantities(
1457: p_api_version IN NUMBER,
1458: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1459: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1460: x_return_status OUT NOCOPY VARCHAR2,
1461: x_msg_count OUT NOCOPY NUMBER,
1462: x_msg_data OUT NOCOPY VARCHAR2,
1455:
1456: PROCEDURE Check_Position_Quantities(
1457: p_api_version IN NUMBER,
1458: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1459: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1460: x_return_status OUT NOCOPY VARCHAR2,
1461: x_msg_count OUT NOCOPY NUMBER,
1462: x_msg_data OUT NOCOPY VARCHAR2,
1463: p_uc_header_id IN NUMBER,
1571: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.begin',
1572: 'At the start of the procedure, p_uc_header_id = ' || p_uc_header_id);
1573: END IF;
1574: -- Standard call to check for call compatibility
1575: IF NOT FND_API.Compatible_API_Call(L_API_VERSION, p_api_version, L_API_NAME,
1576: G_PKG_NAME) THEN
1577: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1578: END IF;
1579:
1573: END IF;
1574: -- Standard call to check for call compatibility
1575: IF NOT FND_API.Compatible_API_Call(L_API_VERSION, p_api_version, L_API_NAME,
1576: G_PKG_NAME) THEN
1577: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1578: END IF;
1579:
1580: -- Initialize message list if p_init_msg_list is set to TRUE
1581: IF FND_API.To_Boolean(p_init_msg_list) THEN
1577: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1578: END IF;
1579:
1580: -- Initialize message list if p_init_msg_list is set to TRUE
1581: IF FND_API.To_Boolean(p_init_msg_list) THEN
1582: FND_MSG_PUB.Initialize;
1583: END IF;
1584:
1585: -- Initialize API return status to success
1582: FND_MSG_PUB.Initialize;
1583: END IF;
1584:
1585: -- Initialize API return status to success
1586: x_return_status := FND_API.G_RET_STS_SUCCESS;
1587:
1588: -- Begin Processing
1589: x_evaluation_status := FND_API.G_TRUE;
1590:
1585: -- Initialize API return status to success
1586: x_return_status := FND_API.G_RET_STS_SUCCESS;
1587:
1588: -- Begin Processing
1589: x_evaluation_status := FND_API.G_TRUE;
1590:
1591: -- Call procedure to validate the uc header id
1592: OPEN get_uc_header_rec_csr;
1593: FETCH get_uc_header_rec_csr INTO l_top_instance_id;
1595: FND_MESSAGE.set_name('AHL', 'AHL_UC_HEADER_ID_INVALID');
1596: FND_MESSAGE.set_token('UC_HEADER_ID', p_uc_header_id);
1597: FND_MSG_PUB.add;
1598: CLOSE get_uc_header_rec_csr;
1599: RAISE FND_API.G_EXC_ERROR;
1600: END IF;
1601: CLOSE get_uc_header_rec_csr;
1602:
1603: OPEN get_unit_tree_csr(l_top_instance_id);
1652: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1653: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY,
1654: 'Exiting Early: Instance Qty (' || l_pos_dtls_rec.Inst_qty || ') > Position Quantity (' || l_pos_dtls_rec.Itm_qty || ')');
1655: END IF;
1656: x_evaluation_status := FND_API.G_FALSE;
1657: EXIT; -- No need to process remaining instances
1658: ELSE
1659: -- Instance Quantity is less than Position Quantity
1660: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1684: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1685: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY,
1686: 'Early Exit: Quantity Rule Does not Exist. So throwing error.');
1687: END IF;
1688: x_evaluation_status := FND_API.G_FALSE;
1689: EXIT; -- No need to process remaining instances
1690: END IF; -- l_parent_rule_tbl entry is +ve or -ve
1691: END IF; -- Inst_qty checks
1692: END IF; -- l_rel_id IS NOT NULL
1697:
1698: -- Check Error Message stack.
1699: x_msg_count := FND_MSG_PUB.count_msg;
1700: IF x_msg_count > 0 THEN
1701: RAISE FND_API.G_EXC_ERROR;
1702: END IF;
1703:
1704: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1705: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.end',
1709: -- Standard call to get message count and if count is 1, get message info
1710: FND_MSG_PUB.Count_And_Get
1711: ( p_count => x_msg_count,
1712: p_data => x_msg_data,
1713: p_encoded => fnd_api.g_false
1714: );
1715:
1716: EXCEPTION
1717: WHEN FND_API.G_EXC_ERROR THEN
1713: p_encoded => fnd_api.g_false
1714: );
1715:
1716: EXCEPTION
1717: WHEN FND_API.G_EXC_ERROR THEN
1718: x_return_status := FND_API.G_RET_STS_ERROR;
1719: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1720: p_data => x_msg_data,
1721: p_encoded => fnd_api.g_false);
1714: );
1715:
1716: EXCEPTION
1717: WHEN FND_API.G_EXC_ERROR THEN
1718: x_return_status := FND_API.G_RET_STS_ERROR;
1719: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1720: p_data => x_msg_data,
1721: p_encoded => fnd_api.g_false);
1722: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1717: WHEN FND_API.G_EXC_ERROR THEN
1718: x_return_status := FND_API.G_RET_STS_ERROR;
1719: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1720: p_data => x_msg_data,
1721: p_encoded => fnd_api.g_false);
1722: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1723: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1724: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1725: p_data => x_msg_data,
1718: x_return_status := FND_API.G_RET_STS_ERROR;
1719: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1720: p_data => x_msg_data,
1721: p_encoded => fnd_api.g_false);
1722: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1723: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1724: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1725: p_data => x_msg_data,
1726: p_encoded => fnd_api.g_false);
1719: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1720: p_data => x_msg_data,
1721: p_encoded => fnd_api.g_false);
1722: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1723: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1724: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1725: p_data => x_msg_data,
1726: p_encoded => fnd_api.g_false);
1727: WHEN OTHERS THEN
1722: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1723: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1724: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1725: p_data => x_msg_data,
1726: p_encoded => fnd_api.g_false);
1727: WHEN OTHERS THEN
1728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1729: FND_MSG_PUB.add_exc_msg(p_pkg_name => G_PKG_NAME,
1730: p_procedure_name => l_api_name,
1724: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1725: p_data => x_msg_data,
1726: p_encoded => fnd_api.g_false);
1727: WHEN OTHERS THEN
1728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1729: FND_MSG_PUB.add_exc_msg(p_pkg_name => G_PKG_NAME,
1730: p_procedure_name => l_api_name,
1731: p_error_text => SQLERRM);
1732:
1731: p_error_text => SQLERRM);
1732:
1733: FND_MSG_PUB.count_and_get(p_count => x_msg_count,
1734: p_data => x_msg_data,
1735: p_encoded => fnd_api.g_false);
1736: END Check_Position_Quantities;
1737:
1738: END AHL_UC_POS_NECES_PVT;