35: -- Create a quantity tree, if it does not exist, in memory based on the input
36: -- and return the tree id
37: PROCEDURE create_tree
38: ( p_api_version_number IN NUMBER
39: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
40: , x_return_status OUT NOCOPY VARCHAR2
41: , x_msg_count OUT NOCOPY NUMBER
42: , x_msg_data OUT NOCOPY VARCHAR2
43: , p_organization_id IN NUMBER
58: , x_tree_id OUT NOCOPY INTEGER
59: ) IS
60: l_api_version_number CONSTANT NUMBER := 1.0;
61: l_api_name CONSTANT VARCHAR2(30) := 'Create_Tree';
62: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
63: BEGIN
64: -- Standard call to check for call compatibility
65: IF NOT fnd_api.compatible_api_call(l_api_version_number
66: , p_api_version_number
61: l_api_name CONSTANT VARCHAR2(30) := 'Create_Tree';
62: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
63: BEGIN
64: -- Standard call to check for call compatibility
65: IF NOT fnd_api.compatible_api_call(l_api_version_number
66: , p_api_version_number
67: , l_api_name
68: , G_PKG_NAME
69: ) THEN
66: , p_api_version_number
67: , l_api_name
68: , G_PKG_NAME
69: ) THEN
70: RAISE fnd_api.g_exc_unexpected_error;
71: END IF;
72:
73: -- Initialize message list.
74: IF fnd_api.to_boolean(p_init_msg_lst) THEN
70: RAISE fnd_api.g_exc_unexpected_error;
71: END IF;
72:
73: -- Initialize message list.
74: IF fnd_api.to_boolean(p_init_msg_lst) THEN
75: fnd_msg_pub.initialize;
76: END IF;
77:
78: inv_quantity_tree_pvt.create_tree
77:
78: inv_quantity_tree_pvt.create_tree
79: (
80: p_api_version_number => 1.0
81: , p_init_msg_lst => fnd_api.g_false
82: , x_return_status => l_return_status
83: , x_msg_count => x_msg_count
84: , x_msg_data => x_msg_data
85: , p_organization_id => p_organization_id
99: , p_onhand_source => p_onhand_source
100: , x_tree_id => x_tree_id
101: );
102:
103: IF l_return_status = fnd_api.g_ret_sts_error THEN
104: RAISE fnd_api.g_exc_error;
105: END IF ;
106:
107: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
100: , x_tree_id => x_tree_id
101: );
102:
103: IF l_return_status = fnd_api.g_ret_sts_error THEN
104: RAISE fnd_api.g_exc_error;
105: END IF ;
106:
107: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
108: RAISE fnd_api.g_exc_unexpected_error;
103: IF l_return_status = fnd_api.g_ret_sts_error THEN
104: RAISE fnd_api.g_exc_error;
105: END IF ;
106:
107: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
108: RAISE fnd_api.g_exc_unexpected_error;
109: END IF;
110:
111: x_return_status := l_return_status;
104: RAISE fnd_api.g_exc_error;
105: END IF ;
106:
107: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
108: RAISE fnd_api.g_exc_unexpected_error;
109: END IF;
110:
111: x_return_status := l_return_status;
112:
111: x_return_status := l_return_status;
112:
113: EXCEPTION
114:
115: WHEN fnd_api.g_exc_error THEN
116: x_return_status := fnd_api.g_ret_sts_error;
117:
118: -- Get message count and data
119: fnd_msg_pub.count_and_get
112:
113: EXCEPTION
114:
115: WHEN fnd_api.g_exc_error THEN
116: x_return_status := fnd_api.g_ret_sts_error;
117:
118: -- Get message count and data
119: fnd_msg_pub.count_and_get
120: ( p_count => x_msg_count
120: ( p_count => x_msg_count
121: , p_data => x_msg_data
122: );
123:
124: WHEN fnd_api.g_exc_unexpected_error THEN
125: x_return_status := fnd_api.g_ret_sts_unexp_error ;
126:
127: -- Get message count and data
128: fnd_msg_pub.count_and_get
121: , p_data => x_msg_data
122: );
123:
124: WHEN fnd_api.g_exc_unexpected_error THEN
125: x_return_status := fnd_api.g_ret_sts_unexp_error ;
126:
127: -- Get message count and data
128: fnd_msg_pub.count_and_get
129: ( p_count => x_msg_count
130: , p_data => x_msg_data
131: );
132:
133: WHEN OTHERS THEN
134: x_return_status := fnd_api.g_ret_sts_unexp_error ;
135:
136: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
137: THEN
138: fnd_msg_pub.add_exc_msg
155: -- Query a quantity tree for quantity information at the level
156: -- specified by the input
157: PROCEDURE query_tree
158: ( p_api_version_number IN NUMBER
159: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
160: , x_return_status OUT NOCOPY VARCHAR2
161: , x_msg_count OUT NOCOPY NUMBER
162: , x_msg_data OUT NOCOPY VARCHAR2
163: , p_tree_id IN INTEGER
221:
222: -- invConv changes begin
223: PROCEDURE query_tree
224: ( p_api_version_number IN NUMBER
225: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
226: , x_return_status OUT NOCOPY VARCHAR2
227: , x_msg_count OUT NOCOPY NUMBER
228: , x_msg_data OUT NOCOPY VARCHAR2
229: , p_tree_id IN INTEGER
249: , p_transfer_locator_id IN NUMBER DEFAULT NULL
250: ) IS
251: l_api_version_number CONSTANT NUMBER := 1.0;
252: l_api_name CONSTANT VARCHAR2(30) := 'Query_Tree';
253: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
254: BEGIN
255: -- Standard call to check for call compatibility
256: IF NOT fnd_api.compatible_api_call(l_api_version_number
257: , p_api_version_number
252: l_api_name CONSTANT VARCHAR2(30) := 'Query_Tree';
253: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
254: BEGIN
255: -- Standard call to check for call compatibility
256: IF NOT fnd_api.compatible_api_call(l_api_version_number
257: , p_api_version_number
258: , l_api_name
259: , G_PKG_NAME
260: ) THEN
257: , p_api_version_number
258: , l_api_name
259: , G_PKG_NAME
260: ) THEN
261: RAISE fnd_api.g_exc_unexpected_error;
262: END IF;
263:
264: -- Initialize message list.
265: IF fnd_api.to_boolean(p_init_msg_lst) THEN
261: RAISE fnd_api.g_exc_unexpected_error;
262: END IF;
263:
264: -- Initialize message list.
265: IF fnd_api.to_boolean(p_init_msg_lst) THEN
266: fnd_msg_pub.initialize;
267: END IF;
268:
269: inv_quantity_tree_pvt.query_tree
268:
269: inv_quantity_tree_pvt.query_tree
270: (
271: p_api_version_number => 1.0
272: , p_init_msg_lst => fnd_api.g_false
273: , x_return_status => l_return_status
274: , x_msg_count => x_msg_count
275: , x_msg_data => x_msg_data
276: , p_tree_id => p_tree_id
295: , p_lpn_id => p_lpn_id
296: , p_transfer_locator_id => p_transfer_locator_id
297: );
298:
299: IF l_return_status = fnd_api.g_ret_sts_error THEN
300: RAISE fnd_api.g_exc_error;
301: END IF ;
302:
303: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
296: , p_transfer_locator_id => p_transfer_locator_id
297: );
298:
299: IF l_return_status = fnd_api.g_ret_sts_error THEN
300: RAISE fnd_api.g_exc_error;
301: END IF ;
302:
303: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
304: RAISE fnd_api.g_exc_unexpected_error;
299: IF l_return_status = fnd_api.g_ret_sts_error THEN
300: RAISE fnd_api.g_exc_error;
301: END IF ;
302:
303: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
304: RAISE fnd_api.g_exc_unexpected_error;
305: END IF;
306:
307: x_return_status := l_return_status;
300: RAISE fnd_api.g_exc_error;
301: END IF ;
302:
303: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
304: RAISE fnd_api.g_exc_unexpected_error;
305: END IF;
306:
307: x_return_status := l_return_status;
308:
307: x_return_status := l_return_status;
308:
309: EXCEPTION
310:
311: WHEN fnd_api.g_exc_error THEN
312: x_return_status := fnd_api.g_ret_sts_error;
313:
314: -- Get message count and data
315: fnd_msg_pub.count_and_get
308:
309: EXCEPTION
310:
311: WHEN fnd_api.g_exc_error THEN
312: x_return_status := fnd_api.g_ret_sts_error;
313:
314: -- Get message count and data
315: fnd_msg_pub.count_and_get
316: ( p_count => x_msg_count
316: ( p_count => x_msg_count
317: , p_data => x_msg_data
318: );
319:
320: WHEN fnd_api.g_exc_unexpected_error THEN
321: x_return_status := fnd_api.g_ret_sts_unexp_error ;
322:
323: -- Get message count and data
324: fnd_msg_pub.count_and_get
317: , p_data => x_msg_data
318: );
319:
320: WHEN fnd_api.g_exc_unexpected_error THEN
321: x_return_status := fnd_api.g_ret_sts_unexp_error ;
322:
323: -- Get message count and data
324: fnd_msg_pub.count_and_get
325: ( p_count => x_msg_count
326: , p_data => x_msg_data
327: );
328:
329: WHEN OTHERS THEN
330: x_return_status := fnd_api.g_ret_sts_unexp_error ;
331:
332: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
333: THEN
334: fnd_msg_pub.add_exc_msg
351: -- Update quantity at the level specified by the input and
352: -- return the quantities at the level after the update
353: PROCEDURE update_quantities
354: ( p_api_version_number IN NUMBER
355: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
356: , x_return_status OUT NOCOPY VARCHAR2
357: , x_msg_count OUT NOCOPY NUMBER
358: , x_msg_data OUT NOCOPY VARCHAR2
359: , p_tree_id IN INTEGER
425:
426: -- invConv changes begin : overload
427: PROCEDURE update_quantities
428: ( p_api_version_number IN NUMBER
429: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
430: , x_return_status OUT NOCOPY VARCHAR2
431: , x_msg_count OUT NOCOPY NUMBER
432: , x_msg_data OUT NOCOPY VARCHAR2
433: , p_tree_id IN INTEGER
457: , p_transfer_locator_id IN NUMBER DEFAULT NULL
458: ) IS
459: l_api_version_number CONSTANT NUMBER := 1.0;
460: l_api_name CONSTANT VARCHAR2(30) := 'Update_Quantities';
461: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
462: BEGIN
463: -- Standard call to check for call compatibility
464: IF NOT fnd_api.compatible_api_call(l_api_version_number
465: , p_api_version_number
460: l_api_name CONSTANT VARCHAR2(30) := 'Update_Quantities';
461: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
462: BEGIN
463: -- Standard call to check for call compatibility
464: IF NOT fnd_api.compatible_api_call(l_api_version_number
465: , p_api_version_number
466: , l_api_name
467: , G_PKG_NAME
468: ) THEN
465: , p_api_version_number
466: , l_api_name
467: , G_PKG_NAME
468: ) THEN
469: RAISE fnd_api.g_exc_unexpected_error;
470: END IF;
471:
472: -- Initialize message list.
473: IF fnd_api.to_boolean(p_init_msg_lst) THEN
469: RAISE fnd_api.g_exc_unexpected_error;
470: END IF;
471:
472: -- Initialize message list.
473: IF fnd_api.to_boolean(p_init_msg_lst) THEN
474: fnd_msg_pub.initialize;
475: END IF;
476:
477: inv_quantity_tree_pvt.update_quantities
476:
477: inv_quantity_tree_pvt.update_quantities
478: (
479: p_api_version_number => 1.0
480: , p_init_msg_lst => fnd_api.g_false
481: , x_return_status => l_return_status
482: , x_msg_count => x_msg_count
483: , x_msg_data => x_msg_data
484: , p_tree_id => p_tree_id
507: , p_lpn_id => p_lpn_id
508: , p_transfer_locator_id => p_transfer_locator_id
509: );
510:
511: IF l_return_status = fnd_api.g_ret_sts_error THEN
512: RAISE fnd_api.g_exc_error;
513: END IF ;
514:
515: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
508: , p_transfer_locator_id => p_transfer_locator_id
509: );
510:
511: IF l_return_status = fnd_api.g_ret_sts_error THEN
512: RAISE fnd_api.g_exc_error;
513: END IF ;
514:
515: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
516: RAISE fnd_api.g_exc_unexpected_error;
511: IF l_return_status = fnd_api.g_ret_sts_error THEN
512: RAISE fnd_api.g_exc_error;
513: END IF ;
514:
515: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
516: RAISE fnd_api.g_exc_unexpected_error;
517: END IF;
518:
519: x_return_status := l_return_status;
512: RAISE fnd_api.g_exc_error;
513: END IF ;
514:
515: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
516: RAISE fnd_api.g_exc_unexpected_error;
517: END IF;
518:
519: x_return_status := l_return_status;
520:
519: x_return_status := l_return_status;
520:
521: EXCEPTION
522:
523: WHEN fnd_api.g_exc_error THEN
524: x_return_status := fnd_api.g_ret_sts_error;
525:
526: -- Get message count and data
527: fnd_msg_pub.count_and_get
520:
521: EXCEPTION
522:
523: WHEN fnd_api.g_exc_error THEN
524: x_return_status := fnd_api.g_ret_sts_error;
525:
526: -- Get message count and data
527: fnd_msg_pub.count_and_get
528: ( p_count => x_msg_count
528: ( p_count => x_msg_count
529: , p_data => x_msg_data
530: );
531:
532: WHEN fnd_api.g_exc_unexpected_error THEN
533: x_return_status := fnd_api.g_ret_sts_unexp_error ;
534:
535: -- Get message count and data
536: fnd_msg_pub.count_and_get
529: , p_data => x_msg_data
530: );
531:
532: WHEN fnd_api.g_exc_unexpected_error THEN
533: x_return_status := fnd_api.g_ret_sts_unexp_error ;
534:
535: -- Get message count and data
536: fnd_msg_pub.count_and_get
537: ( p_count => x_msg_count
538: , p_data => x_msg_data
539: );
540:
541: WHEN OTHERS THEN
542: x_return_status := fnd_api.g_ret_sts_unexp_error ;
543:
544: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
545: THEN
546: fnd_msg_pub.add_exc_msg
565: -- x_no_violation = true if no violation has found
566: -- , otherwise = false
567: PROCEDURE do_check
568: ( p_api_version_number IN NUMBER
569: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
570: , x_return_status OUT NOCOPY VARCHAR2
571: , x_msg_count OUT NOCOPY NUMBER
572: , x_msg_data OUT NOCOPY VARCHAR2
573: , p_tree_id IN INTEGER
574: , x_no_violation OUT NOCOPY BOOLEAN
575: ) IS
576: l_api_version_number CONSTANT NUMBER := 1.0;
577: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
578: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
579: BEGIN
580: -- Standard call to check for call compatibility
581: IF NOT fnd_api.compatible_api_call(l_api_version_number
582: , p_api_version_number
577: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
578: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
579: BEGIN
580: -- Standard call to check for call compatibility
581: IF NOT fnd_api.compatible_api_call(l_api_version_number
582: , p_api_version_number
583: , l_api_name
584: , G_PKG_NAME
585: ) THEN
582: , p_api_version_number
583: , l_api_name
584: , G_PKG_NAME
585: ) THEN
586: RAISE fnd_api.g_exc_unexpected_error;
587: END IF;
588:
589: -- Initialize message list.
590: IF fnd_api.to_boolean(p_init_msg_lst) THEN
586: RAISE fnd_api.g_exc_unexpected_error;
587: END IF;
588:
589: -- Initialize message list.
590: IF fnd_api.to_boolean(p_init_msg_lst) THEN
591: fnd_msg_pub.initialize;
592: END IF;
593:
594: inv_quantity_tree_pvt.do_check
593:
594: inv_quantity_tree_pvt.do_check
595: (
596: p_api_version_number => 1.0
597: , p_init_msg_lst => fnd_api.g_false
598: , x_return_status => l_return_status
599: , x_msg_count => x_msg_count
600: , x_msg_data => x_msg_data
601: , p_tree_id => p_tree_id
601: , p_tree_id => p_tree_id
602: , x_no_violation => x_no_violation
603: );
604:
605: IF l_return_status = fnd_api.g_ret_sts_error THEN
606: RAISE fnd_api.g_exc_error;
607: END IF ;
608:
609: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
602: , x_no_violation => x_no_violation
603: );
604:
605: IF l_return_status = fnd_api.g_ret_sts_error THEN
606: RAISE fnd_api.g_exc_error;
607: END IF ;
608:
609: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
610: RAISE fnd_api.g_exc_unexpected_error;
605: IF l_return_status = fnd_api.g_ret_sts_error THEN
606: RAISE fnd_api.g_exc_error;
607: END IF ;
608:
609: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
610: RAISE fnd_api.g_exc_unexpected_error;
611: END IF;
612:
613: x_return_status := l_return_status;
606: RAISE fnd_api.g_exc_error;
607: END IF ;
608:
609: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
610: RAISE fnd_api.g_exc_unexpected_error;
611: END IF;
612:
613: x_return_status := l_return_status;
614:
613: x_return_status := l_return_status;
614:
615: EXCEPTION
616:
617: WHEN fnd_api.g_exc_error THEN
618: x_return_status := fnd_api.g_ret_sts_error;
619:
620: -- Get message count and data
621: fnd_msg_pub.count_and_get
614:
615: EXCEPTION
616:
617: WHEN fnd_api.g_exc_error THEN
618: x_return_status := fnd_api.g_ret_sts_error;
619:
620: -- Get message count and data
621: fnd_msg_pub.count_and_get
622: ( p_count => x_msg_count
622: ( p_count => x_msg_count
623: , p_data => x_msg_data
624: );
625:
626: WHEN fnd_api.g_exc_unexpected_error THEN
627: x_return_status := fnd_api.g_ret_sts_unexp_error ;
628:
629: -- Get message count and data
630: fnd_msg_pub.count_and_get
623: , p_data => x_msg_data
624: );
625:
626: WHEN fnd_api.g_exc_unexpected_error THEN
627: x_return_status := fnd_api.g_ret_sts_unexp_error ;
628:
629: -- Get message count and data
630: fnd_msg_pub.count_and_get
631: ( p_count => x_msg_count
632: , p_data => x_msg_data
633: );
634:
635: WHEN OTHERS THEN
636: x_return_status := fnd_api.g_ret_sts_unexp_error ;
637:
638: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
639: THEN
640: fnd_msg_pub.add_exc_msg
659: -- x_no_violation = true if no violation has found
660: -- , otherwise = false
661: PROCEDURE do_check
662: ( p_api_version_number IN NUMBER
663: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
664: , x_return_status OUT NOCOPY VARCHAR2
665: , x_msg_count OUT NOCOPY NUMBER
666: , x_msg_data OUT NOCOPY VARCHAR2
667: , x_no_violation OUT NOCOPY BOOLEAN
667: , x_no_violation OUT NOCOPY BOOLEAN
668: ) IS
669: l_api_version_number CONSTANT NUMBER := 1.0;
670: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
671: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
672: BEGIN
673: -- Standard call to check for call compatibility
674: IF NOT fnd_api.compatible_api_call(l_api_version_number
675: , p_api_version_number
670: l_api_name CONSTANT VARCHAR2(30) := 'Do_Check';
671: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
672: BEGIN
673: -- Standard call to check for call compatibility
674: IF NOT fnd_api.compatible_api_call(l_api_version_number
675: , p_api_version_number
676: , l_api_name
677: , G_PKG_NAME
678: ) THEN
675: , p_api_version_number
676: , l_api_name
677: , G_PKG_NAME
678: ) THEN
679: RAISE fnd_api.g_exc_unexpected_error;
680: END IF;
681:
682: -- Initialize message list.
683: IF fnd_api.to_boolean(p_init_msg_lst) THEN
679: RAISE fnd_api.g_exc_unexpected_error;
680: END IF;
681:
682: -- Initialize message list.
683: IF fnd_api.to_boolean(p_init_msg_lst) THEN
684: fnd_msg_pub.initialize;
685: END IF;
686:
687: inv_quantity_tree_pvt.do_check
686:
687: inv_quantity_tree_pvt.do_check
688: (
689: p_api_version_number => 1.0
690: , p_init_msg_lst => fnd_api.g_false
691: , x_return_status => l_return_status
692: , x_msg_count => x_msg_count
693: , x_msg_data => x_msg_data
694: , x_no_violation => x_no_violation
693: , x_msg_data => x_msg_data
694: , x_no_violation => x_no_violation
695: );
696:
697: IF l_return_status = fnd_api.g_ret_sts_error THEN
698: RAISE fnd_api.g_exc_error;
699: END IF ;
700:
701: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
694: , x_no_violation => x_no_violation
695: );
696:
697: IF l_return_status = fnd_api.g_ret_sts_error THEN
698: RAISE fnd_api.g_exc_error;
699: END IF ;
700:
701: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
702: RAISE fnd_api.g_exc_unexpected_error;
697: IF l_return_status = fnd_api.g_ret_sts_error THEN
698: RAISE fnd_api.g_exc_error;
699: END IF ;
700:
701: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
702: RAISE fnd_api.g_exc_unexpected_error;
703: END IF;
704:
705: x_return_status := l_return_status;
698: RAISE fnd_api.g_exc_error;
699: END IF ;
700:
701: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
702: RAISE fnd_api.g_exc_unexpected_error;
703: END IF;
704:
705: x_return_status := l_return_status;
706:
705: x_return_status := l_return_status;
706:
707: EXCEPTION
708:
709: WHEN fnd_api.g_exc_error THEN
710: x_return_status := fnd_api.g_ret_sts_error;
711:
712: -- Get message count and data
713: fnd_msg_pub.count_and_get
706:
707: EXCEPTION
708:
709: WHEN fnd_api.g_exc_error THEN
710: x_return_status := fnd_api.g_ret_sts_error;
711:
712: -- Get message count and data
713: fnd_msg_pub.count_and_get
714: ( p_count => x_msg_count
714: ( p_count => x_msg_count
715: , p_data => x_msg_data
716: );
717:
718: WHEN fnd_api.g_exc_unexpected_error THEN
719: x_return_status := fnd_api.g_ret_sts_unexp_error ;
720:
721: -- Get message count and data
722: fnd_msg_pub.count_and_get
715: , p_data => x_msg_data
716: );
717:
718: WHEN fnd_api.g_exc_unexpected_error THEN
719: x_return_status := fnd_api.g_ret_sts_unexp_error ;
720:
721: -- Get message count and data
722: fnd_msg_pub.count_and_get
723: ( p_count => x_msg_count
724: , p_data => x_msg_data
725: );
726:
727: WHEN OTHERS THEN
728: x_return_status := fnd_api.g_ret_sts_unexp_error ;
729:
730: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
731: THEN
732: fnd_msg_pub.add_exc_msg
752: -- but have not make corresponding changes to the underlying database
753: -- tables, these changes are lost when you call free_tree.
754: PROCEDURE free_tree
755: ( p_api_version_number IN NUMBER
756: , p_init_msg_lst IN VARCHAR2 DEFAULT fnd_api.g_false
757: , x_return_status OUT NOCOPY VARCHAR2
758: , x_msg_count OUT NOCOPY NUMBER
759: , x_msg_data OUT NOCOPY VARCHAR2
760: , p_tree_id IN INTEGER
760: , p_tree_id IN INTEGER
761: ) IS
762: l_api_version_number CONSTANT NUMBER := 1.0;
763: l_api_name CONSTANT VARCHAR2(30) := 'Free_Tree';
764: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
765: BEGIN
766: -- Standard call to check for call compatibility
767: IF NOT fnd_api.compatible_api_call(l_api_version_number
768: , p_api_version_number
763: l_api_name CONSTANT VARCHAR2(30) := 'Free_Tree';
764: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
765: BEGIN
766: -- Standard call to check for call compatibility
767: IF NOT fnd_api.compatible_api_call(l_api_version_number
768: , p_api_version_number
769: , l_api_name
770: , G_PKG_NAME
771: ) THEN
768: , p_api_version_number
769: , l_api_name
770: , G_PKG_NAME
771: ) THEN
772: RAISE fnd_api.g_exc_unexpected_error;
773: END IF;
774:
775: -- Initialize message list.
776: IF fnd_api.to_boolean(p_init_msg_lst) THEN
772: RAISE fnd_api.g_exc_unexpected_error;
773: END IF;
774:
775: -- Initialize message list.
776: IF fnd_api.to_boolean(p_init_msg_lst) THEN
777: fnd_msg_pub.initialize;
778: END IF;
779:
780: inv_quantity_tree_pvt.free_tree
779:
780: inv_quantity_tree_pvt.free_tree
781: (
782: p_api_version_number => 1.0
783: , p_init_msg_lst => fnd_api.g_false
784: , x_return_status => l_return_status
785: , x_msg_count => x_msg_count
786: , x_msg_data => x_msg_data
787: , p_tree_id => p_tree_id
786: , x_msg_data => x_msg_data
787: , p_tree_id => p_tree_id
788: );
789:
790: IF l_return_status = fnd_api.g_ret_sts_error THEN
791: RAISE fnd_api.g_exc_error;
792: END IF ;
793:
794: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
787: , p_tree_id => p_tree_id
788: );
789:
790: IF l_return_status = fnd_api.g_ret_sts_error THEN
791: RAISE fnd_api.g_exc_error;
792: END IF ;
793:
794: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
795: RAISE fnd_api.g_exc_unexpected_error;
790: IF l_return_status = fnd_api.g_ret_sts_error THEN
791: RAISE fnd_api.g_exc_error;
792: END IF ;
793:
794: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
795: RAISE fnd_api.g_exc_unexpected_error;
796: END IF;
797:
798: x_return_status := l_return_status;
791: RAISE fnd_api.g_exc_error;
792: END IF ;
793:
794: IF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
795: RAISE fnd_api.g_exc_unexpected_error;
796: END IF;
797:
798: x_return_status := l_return_status;
799:
798: x_return_status := l_return_status;
799:
800: EXCEPTION
801:
802: WHEN fnd_api.g_exc_error THEN
803: x_return_status := fnd_api.g_ret_sts_error;
804:
805: -- Get message count and data
806: fnd_msg_pub.count_and_get
799:
800: EXCEPTION
801:
802: WHEN fnd_api.g_exc_error THEN
803: x_return_status := fnd_api.g_ret_sts_error;
804:
805: -- Get message count and data
806: fnd_msg_pub.count_and_get
807: ( p_count => x_msg_count
807: ( p_count => x_msg_count
808: , p_data => x_msg_data
809: );
810:
811: WHEN fnd_api.g_exc_unexpected_error THEN
812: x_return_status := fnd_api.g_ret_sts_unexp_error ;
813:
814: -- Get message count and data
815: fnd_msg_pub.count_and_get
808: , p_data => x_msg_data
809: );
810:
811: WHEN fnd_api.g_exc_unexpected_error THEN
812: x_return_status := fnd_api.g_ret_sts_unexp_error ;
813:
814: -- Get message count and data
815: fnd_msg_pub.count_and_get
816: ( p_count => x_msg_count
817: , p_data => x_msg_data
818: );
819:
820: WHEN OTHERS THEN
821: x_return_status := fnd_api.g_ret_sts_unexp_error ;
822:
823: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)
824: THEN
825: fnd_msg_pub.add_exc_msg