191:
192: -- Standard call to check for call compatibility.
193: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
194: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
195: fnd_msg_pub.ADD;
196: RAISE fnd_api.g_exc_unexpected_error;
197: END IF;
198:
199: -- Initialize message list if p_init_msg_list is set to TRUE.
197: END IF;
198:
199: -- Initialize message list if p_init_msg_list is set to TRUE.
200: IF fnd_api.to_boolean(p_init_msg_list) THEN
201: fnd_msg_pub.initialize;
202: END IF;
203:
204: -- Initialize API return status to success
205: x_return_status := fnd_api.g_ret_sts_success;
222: IF (l_debug = 1) THEN
223: mdebug(p_organization_id || ' is not a valid org id', G_ERROR);
224: END IF;
225: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
226: fnd_msg_pub.ADD;
227: RAISE fnd_api.g_exc_error;
228: END IF;
229:
230: l_progress := 'Validate Container Item';
236: IF (l_debug = 1) THEN
237: mdebug(p_container_item_id || ' is not a valid container item id', 1);
238: END IF;
239: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ITEM');
240: fnd_msg_pub.ADD;
241: RAISE fnd_api.g_exc_error;
242: END IF;
243:
244: IF (l_container_item.container_item_flag = 'N') THEN
245: IF (l_debug = 1) THEN
246: mdebug(p_container_item_id || ' is not a container', 1);
247: END IF;
248: fnd_message.set_name('WMS', 'WMS_CONT_ITEM_NOT_A_CONT');
249: fnd_msg_pub.ADD;
250: RAISE fnd_api.g_exc_error;
251: END IF;
252: END IF;
253:
260: IF (l_debug = 1) THEN
261: mdebug(p_subinventory || ' is not a valid sub', 1);
262: END IF;
263: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SUB');
264: fnd_msg_pub.ADD;
265: RAISE fnd_api.g_exc_error;
266: END IF;
267: END IF;
268:
273: IF (l_debug = 1) THEN
274: mdebug('Generate_LPN is missing required loc', 1);
275: END IF;
276: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOC');
277: fnd_msg_pub.ADD;
278: RAISE fnd_api.g_exc_error;
279: END IF;
280:
281: l_locator.inventory_location_id := p_locator_id;
285: IF (l_debug = 1) THEN
286: mdebug(p_locator_id || ' is not a valid loc id', 1);
287: END IF;
288: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOC');
289: fnd_msg_pub.ADD;
290: RAISE fnd_api.g_exc_error;
291: END IF;
292: END IF;
293: END IF;
302: IF (l_debug = 1) THEN
303: mdebug(p_revision || ' is not a valid rev', 1);
304: END IF;
305: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_REV');
306: fnd_msg_pub.ADD;
307: RAISE fnd_api.g_exc_error;
308: END IF;
309: ELSE
310: --Rev not supported for container items currently. Allow to use rev controlled items
311: IF (l_debug = 1) THEN
312: mdebug('Generate_LPN is missing the rev for rev container item..ok', 1);
313: END IF;
314: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_REV');
315: --fnd_msg_pub.ADD;
316: --RAISE fnd_api.g_exc_error;
317: END IF;
318: END IF;
319: END IF;
329: IF (l_debug = 1) THEN
330: mdebug(p_lot_number || ' is not a valid lot', 1);
331: END IF;
332: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOT');
333: fnd_msg_pub.ADD;
334: RAISE fnd_api.g_exc_error;
335: END IF;
336: ELSE
337: --Lots not supported for container items currently. Allow to use lot controlled items
338: IF (l_debug = 1) THEN
339: mdebug('Generate_LPN is missing lot for lot container item..ok', 1);
340: END IF;
341: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOT');
342: --fnd_msg_pub.ADD;
343: --RAISE fnd_api.g_exc_error;
344: END IF;
345: END IF;
346: END IF;
354: IF (l_debug = 1) THEN
355: mdebug(p_to_serial_number || ' failed MTL_Serial_Check', 1);
356: END IF;
357: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
358: fnd_msg_pub.ADD;
359: RAISE fnd_api.g_exc_error;
360: END IF;
361:
362: -- Check that in the case of a range of serial numbers, that the
366: IF (l_debug = 1) THEN
367: mdebug(p_quantity || ' does not match sn range qty of ' || l_quantity_serial, 1);
368: END IF;
369: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_X_QTY');
370: fnd_msg_pub.ADD;
371: RAISE fnd_api.g_exc_error;
372: END IF;
373: END IF;
374:
388: IF (l_debug = 1) THEN
389: mdebug(l_current_serial || 'failed validate_serial', 1);
390: END IF;
391: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
392: fnd_msg_pub.ADD;
393: RAISE fnd_api.g_exc_error;
394: END IF;
395: ELSE
396: -- Subinventory was not given so will need to do
402: IF (l_debug = 1) THEN
403: mdebug(l_current_serial || ' could not be found in MTL_SERIAL_NUMBERS', 1);
404: END IF;
405: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
406: fnd_msg_pub.ADD;
407: RAISE fnd_api.g_exc_error;
408: END IF;
409:
410: CLOSE serial_validation_cursor;
430: IF (l_debug = 1) THEN
431: mdebug('Generate_LPN is missing sn for serial container item..ok', 1);
432: END IF;
433: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_SER_NUM');
434: --fnd_msg_pub.ADD;
435: --RAISE fnd_api.g_exc_error;
436: END IF;
437: END IF;
438: END IF;
443: IF (l_debug = 1) THEN
444: mdebug(p_quantity || ' is a negative qty', 1);
445: END IF;
446: fnd_message.set_name('WMS', 'WMS_CONT_NEG_QTY');
447: fnd_msg_pub.ADD;
448: RAISE fnd_api.g_exc_error;
449: END IF;
450:
451: l_quantity := p_quantity;
459: IF (l_debug = 1) THEN
460: mdebug(p_source || ' is an invalid source', 1);
461: END IF;
462: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN_CONTEXT');
463: fnd_msg_pub.ADD;
464: RAISE fnd_api.g_exc_error;
465: END IF;
466: END IF;
467:
473: IF (l_debug = 1) THEN
474: mdebug(p_cost_group_id || ' is an invalid cost group id', 1);
475: END IF;
476: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CST_GRP');
477: fnd_msg_pub.ADD;
478: RAISE fnd_api.g_exc_error;
479: END IF;
480: END IF;
481: END IF;
535: END IF;
536:
537: -- Standard call to get message count and if count is 1,
538: -- get message info.
539: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
540: EXCEPTION
541: WHEN FND_API.G_EXC_ERROR THEN
542: x_return_status := fnd_api.g_ret_sts_error;
543: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
539: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
540: EXCEPTION
541: WHEN FND_API.G_EXC_ERROR THEN
542: x_return_status := fnd_api.g_ret_sts_error;
543: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
544: IF (l_debug = 1) THEN
545: FOR i in 1..x_msg_count LOOP
546: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
547: END LOOP;
542: x_return_status := fnd_api.g_ret_sts_error;
543: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
544: IF (l_debug = 1) THEN
545: FOR i in 1..x_msg_count LOOP
546: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
547: END LOOP;
548: mdebug(l_api_name ||' EXC_ERROR progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), G_ERROR);
549: mdebug('msg: '||l_msgdata, G_ERROR);
550: END IF;
550: END IF;
551: ROLLBACK TO GENERATE_LPN_PUB;
552: WHEN OTHERS THEN
553: x_return_status := fnd_api.g_ret_sts_unexp_error;
554: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
555: IF (l_debug = 1) THEN
556: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), G_ERROR);
557: END IF;
558: ROLLBACK TO GENERATE_LPN_PUB;
607:
608: -- Standard call to check for call compatibility.
609: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
610: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
611: fnd_msg_pub.ADD;
612: RAISE fnd_api.g_exc_unexpected_error;
613: END IF;
614:
615: -- Initialize message list if p_init_msg_list is set to TRUE.
613: END IF;
614:
615: -- Initialize message list if p_init_msg_list is set to TRUE.
616: IF fnd_api.to_boolean(p_init_msg_list) THEN
617: fnd_msg_pub.initialize;
618: END IF;
619:
620: -- Initialize API return status to success
621: x_return_status := fnd_api.g_ret_sts_success;
632: IF (p_validation_level = fnd_api.g_valid_level_full) THEN
633: /* Check that lpn id is given */
634: IF (p_lpn_id IS NULL) THEN
635: fnd_message.set_name('WMS', 'WMS_CONT_LPN_NOT_GIVEN');
636: fnd_msg_pub.ADD;
637: RAISE fnd_api.g_exc_error;
638: END IF;
639:
640: /* Validate the LPN */
657: IF (l_debug = 1) THEN
658: mdebug(p_organization_id || ' is an invalid org id', 1);
659: END IF;
660: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
661: fnd_msg_pub.ADD;
662: RAISE fnd_api.g_exc_error;
663: END IF;
664:
665: /* Validate Subinventory */
671: IF (l_debug = 1) THEN
672: mdebug(p_subinventory || ' is an invalid sub', 1);
673: END IF;
674: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SUB');
675: fnd_msg_pub.ADD;
676: RAISE fnd_api.g_exc_error;
677: END IF;
678: END IF;
679:
681: IF (p_subinventory IS NOT NULL) THEN
682: IF (l_sub.locator_type IN (2, 3)) THEN
683: IF (p_locator_id IS NULL) THEN
684: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOC');
685: fnd_msg_pub.ADD;
686: RAISE fnd_api.g_exc_error;
687: END IF;
688:
689: l_locator.inventory_location_id := p_locator_id;
693: IF (l_debug = 1) THEN
694: mdebug(p_locator_id || ' is an invalid loc id', 1);
695: END IF;
696: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOC');
697: fnd_msg_pub.ADD;
698: RAISE fnd_api.g_exc_error;
699: END IF;
700: END IF;
701: END IF;
710: IF (l_debug = 1) THEN
711: mdebug(p_container_item_id || ' is an invalid container item id', 1);
712: END IF;
713: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ITEM');
714: fnd_msg_pub.ADD;
715: RAISE fnd_api.g_exc_error;
716: END IF;
717:
718: IF (l_container_item.container_item_flag = 'N') THEN
719: IF (l_debug = 1) THEN
720: mdebug(p_container_item_id || ' is not a container item', 1);
721: END IF;
722: fnd_message.set_name('WMS', 'WMS_CONT_ITEM_NOT_A_CONT');
723: fnd_msg_pub.ADD;
724: RAISE fnd_api.g_exc_error;
725: END IF;
726:
727: IF (l_container_item.unit_weight IS NOT NULL) THEN
743: l_new_weight_uom := l_lpn.gross_weight_uom_code;
744: END IF;
745: ELSE
746: fnd_message.set_name('WMS', 'WMS_CONT_CONTAINER_NOT_GIVEN');
747: fnd_msg_pub.ADD;
748: RAISE fnd_api.g_exc_error;
749: END IF;
750:
751: /* Validate Revision */
758: IF (l_debug = 1) THEN
759: mdebug(p_revision || ' is an invalid rev', 1);
760: END IF;
761: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_REV');
762: fnd_msg_pub.ADD;
763: RAISE fnd_api.g_exc_error;
764: END IF;
765: ELSE
766: --Rev not supported for container items currently. Allow to use rev controlled items
767: IF (l_debug = 1) THEN
768: mdebug('Associate_LPN is missing the rev for rev container item..ok', 1);
769: END IF;
770: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_REV');
771: --fnd_msg_pub.ADD;
772: --RAISE fnd_api.g_exc_error;
773: END IF;
774: END IF;
775: END IF;
785: IF (l_debug = 1) THEN
786: mdebug(p_lot_number || ' is not a valid lot', 1);
787: END IF;
788: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOT');
789: fnd_msg_pub.ADD;
790: RAISE fnd_api.g_exc_error;
791: END IF;
792: ELSE
793: --Lots not supported for container items currently. Allow to use lot controlled items
794: IF (l_debug = 1) THEN
795: mdebug('Associate_LPN is missing lot for lot container item..ok', 1);
796: END IF;
797: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOT');
798: --fnd_msg_pub.ADD;
799: --RAISE fnd_api.g_exc_error;
800: END IF;
801: END IF;
802: END IF;
812: IF (l_debug = 1) THEN
813: mdebug(p_serial_number || ' is an invalid sn', 1);
814: END IF;
815: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
816: fnd_msg_pub.ADD;
817: RAISE fnd_api.g_exc_error;
818: END IF;
819: ELSE
820: --SN not supported for container items currently. Allow to use serial controlled items
821: IF (l_debug = 1) THEN
822: mdebug('Associate_LPN is missing sn for serial container item..ok', 1);
823: END IF;
824: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_SER');
825: --fnd_msg_pub.ADD;
826: --RAISE fnd_api.g_exc_error;
827: END IF;
828: END IF;
829: END IF;
836: IF (l_debug = 1) THEN
837: mdebug(p_cost_group_id || ' is an invalid cg', 1);
838: END IF;
839: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CST_GRP');
840: fnd_msg_pub.ADD;
841: RAISE fnd_api.g_exc_error;
842: END IF;
843: END IF;
844: END IF;
865: l_result := inv_validate.ORGANIZATION(l_org);
866:
867: IF (l_result = inv_validate.f) THEN
868: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
869: fnd_msg_pub.ADD;
870: RAISE fnd_api.g_exc_error;
871: END IF;
872:
873: /* Validate Container Item */
876: l_result := inv_validate.inventory_item(l_container_item, l_org);
877:
878: IF (l_result = inv_validate.f) THEN
879: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ITEM');
880: fnd_msg_pub.ADD;
881: RAISE fnd_api.g_exc_error;
882: END IF;
883:
884: IF (l_container_item.container_item_flag = 'N') THEN
882: END IF;
883:
884: IF (l_container_item.container_item_flag = 'N') THEN
885: fnd_message.set_name('WMS', 'WMS_CONT_ITEM_NOT_A_CONT');
886: fnd_msg_pub.ADD;
887: RAISE fnd_api.g_exc_error;
888: END IF;
889:
890: IF (l_container_item.unit_weight IS NOT NULL) THEN
906: l_new_weight_uom := l_lpn.gross_weight_uom_code;
907: END IF;
908: ELSE
909: fnd_message.set_name('WMS', 'WMS_CONT_CONTAINER_NOT_GIVEN');
910: fnd_msg_pub.ADD;
911: RAISE fnd_api.g_exc_error;
912: END IF;
913: END IF;
914:
1056: END IF;
1057:
1058: -- Standard call to get message count and if count is 1,
1059: -- get message info.
1060: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1061: EXCEPTION
1062: WHEN fnd_api.g_exc_error THEN
1063: ROLLBACK TO associate_lpn_pub;
1064: x_return_status := fnd_api.g_ret_sts_error;
1061: EXCEPTION
1062: WHEN fnd_api.g_exc_error THEN
1063: ROLLBACK TO associate_lpn_pub;
1064: x_return_status := fnd_api.g_ret_sts_error;
1065: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1066: WHEN fnd_api.g_exc_unexpected_error THEN
1067: ROLLBACK TO associate_lpn_pub;
1068: x_return_status := fnd_api.g_ret_sts_unexp_error;
1069: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1065: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1066: WHEN fnd_api.g_exc_unexpected_error THEN
1067: ROLLBACK TO associate_lpn_pub;
1068: x_return_status := fnd_api.g_ret_sts_unexp_error;
1069: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1070: WHEN OTHERS THEN
1071: ROLLBACK TO associate_lpn_pub;
1072: x_return_status := fnd_api.g_ret_sts_unexp_error;
1073:
1070: WHEN OTHERS THEN
1071: ROLLBACK TO associate_lpn_pub;
1072: x_return_status := fnd_api.g_ret_sts_unexp_error;
1073:
1074: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1075: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1076: END IF;
1077:
1078: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1071: ROLLBACK TO associate_lpn_pub;
1072: x_return_status := fnd_api.g_ret_sts_unexp_error;
1073:
1074: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1075: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1076: END IF;
1077:
1078: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1079: END associate_lpn;
1074: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1075: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1076: END IF;
1077:
1078: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1079: END associate_lpn;
1080:
1081: -- ----------------------------------------------------------------------------------
1082: -- ----------------------------------------------------------------------------------
1125:
1126: -- Standard call to check for call compatibility.
1127: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
1128: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
1129: fnd_msg_pub.ADD;
1130: RAISE fnd_api.g_exc_unexpected_error;
1131: END IF;
1132:
1133: -- Initialize message list if p_init_msg_list is set to TRUE.
1131: END IF;
1132:
1133: -- Initialize message list if p_init_msg_list is set to TRUE.
1134: IF fnd_api.to_boolean(p_init_msg_list) THEN
1135: fnd_msg_pub.initialize;
1136: END IF;
1137:
1138: -- Initialize API return status to success
1139: x_return_status := fnd_api.g_ret_sts_success;
1155: IF (l_debug = 1) THEN
1156: mdebug(p_lpn || ' failed LPN validation', 1);
1157: END IF;
1158: fnd_message.set_name('WMS', 'WMS_CONT_DUPLICATE_LPN');
1159: fnd_msg_pub.ADD;
1160: RAISE fnd_api.g_exc_error;
1161: END IF;
1162:
1163: /* Validate Parent LPN */
1170: IF (l_debug = 1) THEN
1171: mdebug(p_parent_lpn_id || ' parent LPN failed validation', 1);
1172: END IF;
1173: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
1174: fnd_msg_pub.ADD;
1175: RAISE fnd_api.g_exc_error;
1176: END IF;
1177: END IF;
1178:
1184: IF (l_debug = 1) THEN
1185: mdebug(p_organization_id || ' is an invalid Org', 1);
1186: END IF;
1187: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
1188: fnd_msg_pub.ADD;
1189: RAISE fnd_api.g_exc_error;
1190: END IF;
1191:
1192: /* Validate Subinventory */
1198: IF (l_debug = 1) THEN
1199: mdebug(p_subinventory || ' Invalid Subinventory', 1);
1200: END IF;
1201: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SUB');
1202: fnd_msg_pub.ADD;
1203: RAISE fnd_api.g_exc_error;
1204: END IF;
1205: END IF;
1206:
1211: IF (l_debug = 1) THEN
1212: mdebug('Missing required locator', 1);
1213: END IF;
1214: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOC');
1215: fnd_msg_pub.ADD;
1216: RAISE fnd_api.g_exc_error;
1217: END IF;
1218:
1219: l_locator.inventory_location_id := p_locator_id;
1223: IF (l_debug = 1) THEN
1224: mdebug(p_locator_id || ' is an invalid locator', 1);
1225: END IF;
1226: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOC');
1227: fnd_msg_pub.ADD;
1228: RAISE fnd_api.g_exc_error;
1229: END IF;
1230: END IF;
1231: END IF;
1239: IF (l_debug = 1) THEN
1240: mdebug(p_container_item_id || ' is an invalid container item', 1);
1241: END IF;
1242: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ITEM');
1243: fnd_msg_pub.ADD;
1244: RAISE fnd_api.g_exc_error;
1245: END IF;
1246:
1247: IF (l_container_item.container_item_flag = 'N') THEN
1248: IF (l_debug = 1) THEN
1249: mdebug(p_container_item_id || ' is not a container', 1);
1250: END IF;
1251: fnd_message.set_name('WMS', 'WMS_CONT_ITEM_NOT_A_CONTAINER');
1252: fnd_msg_pub.ADD;
1253: RAISE fnd_api.g_exc_error;
1254: END IF;
1255: END IF;
1256:
1264: IF (l_debug = 1) THEN
1265: mdebug(p_revision || ' is an invalid Revision', 1);
1266: END IF;
1267: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_REV');
1268: fnd_msg_pub.ADD;
1269: RAISE fnd_api.g_exc_error;
1270: END IF;
1271: ELSE
1272: --Revision not supported for container items currently. Allow to use rev controlled items
1273: IF (l_debug = 1) THEN
1274: mdebug('Generate_LPN is missing rev for lot container item..ok', 1);
1275: END IF;
1276: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_REV');
1277: --fnd_msg_pub.ADD;
1278: --RAISE fnd_api.g_exc_error;
1279: END IF;
1280: END IF;
1281: END IF;
1291: IF (l_debug = 1) THEN
1292: mdebug(p_lot_number || ' is an invalid lot', 1);
1293: END IF;
1294: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOT');
1295: fnd_msg_pub.ADD;
1296: RAISE fnd_api.g_exc_error;
1297: END IF;
1298: ELSE
1299: --Lots not supported for container items currently. Allow to use lot controlled items
1300: IF (l_debug = 1) THEN
1301: mdebug('Generate_LPN is missing lot for lot container item..ok', 1);
1302: END IF;
1303: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOT');
1304: fnd_msg_pub.ADD;
1305: RAISE fnd_api.g_exc_error;
1306: END IF;
1307: END IF;
1308: END IF;
1318: IF (l_debug = 1) THEN
1319: mdebug(l_serial.serial_number || ' is an invalid Serial Number', 1);
1320: END IF;
1321: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
1322: fnd_msg_pub.ADD;
1323: RAISE fnd_api.g_exc_error;
1324: END IF;
1325: ELSE
1326: --SN not supported for container items currently. Allow to use serial controlled items
1327: IF (l_debug = 1) THEN
1328: mdebug('Create_LPN is missing sn for serial container item..ok', 1);
1329: END IF;
1330: --fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_SER');
1331: --fnd_msg_pub.ADD;
1332: --RAISE fnd_api.g_exc_error;
1333: END IF;
1334: END IF;
1335: END IF;
1340: IF (l_debug = 1) THEN
1341: mdebug(p_source || 'is an invalid source type', 1);
1342: END IF;
1343: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN_CONTEXT');
1344: fnd_msg_pub.ADD;
1345: RAISE fnd_api.g_exc_error;
1346: END IF;
1347: END IF;
1348:
1354: IF (l_debug = 1) THEN
1355: mdebug(p_cost_group_id || 'is an invalid cost group', 1);
1356: END IF;
1357: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CST_GRP');
1358: fnd_msg_pub.ADD;
1359: RAISE fnd_api.g_exc_error;
1360: END IF;
1361: END IF;
1362: END IF;
1402: END IF;
1403:
1404: -- Standard call to get message count and if count is 1,
1405: -- get message info.
1406: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1407: EXCEPTION
1408: WHEN fnd_api.g_exc_error THEN
1409: ROLLBACK TO create_lpn_pub;
1410: x_return_status := fnd_api.g_ret_sts_error;
1407: EXCEPTION
1408: WHEN fnd_api.g_exc_error THEN
1409: ROLLBACK TO create_lpn_pub;
1410: x_return_status := fnd_api.g_ret_sts_error;
1411: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1412: WHEN fnd_api.g_exc_unexpected_error THEN
1413: ROLLBACK TO create_lpn_pub;
1414: x_return_status := fnd_api.g_ret_sts_unexp_error;
1415: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1411: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1412: WHEN fnd_api.g_exc_unexpected_error THEN
1413: ROLLBACK TO create_lpn_pub;
1414: x_return_status := fnd_api.g_ret_sts_unexp_error;
1415: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1416: WHEN OTHERS THEN
1417: ROLLBACK TO create_lpn_pub;
1418: x_return_status := fnd_api.g_ret_sts_unexp_error;
1419:
1416: WHEN OTHERS THEN
1417: ROLLBACK TO create_lpn_pub;
1418: x_return_status := fnd_api.g_ret_sts_unexp_error;
1419:
1420: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1421: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1422: END IF;
1423:
1424: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1417: ROLLBACK TO create_lpn_pub;
1418: x_return_status := fnd_api.g_ret_sts_unexp_error;
1419:
1420: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1421: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1422: END IF;
1423:
1424: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1425: END create_lpn;
1420: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1421: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1422: END IF;
1423:
1424: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1425: END create_lpn;
1426:
1427: -- ----------------------------------------------------------------------------------
1428: -- ----------------------------------------------------------------------------------
1517:
1518: -- Standard call to check for call compatibility.
1519: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
1520: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
1521: fnd_msg_pub.ADD;
1522: RAISE fnd_api.g_exc_unexpected_error;
1523: END IF;
1524:
1525: -- Initialize message list if p_init_msg_list is set to TRUE.
1523: END IF;
1524:
1525: -- Initialize message list if p_init_msg_list is set to TRUE.
1526: IF fnd_api.to_boolean(p_init_msg_list) THEN
1527: fnd_msg_pub.initialize;
1528: END IF;
1529:
1530: -- Initialize API return status to success
1531: x_return_status := fnd_api.g_ret_sts_success;
1539: l_result := validate_lpn(l_lpn);
1540:
1541: IF (l_result = inv_validate.f) THEN
1542: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
1543: fnd_msg_pub.ADD;
1544: RAISE fnd_api.g_exc_error;
1545: END IF;
1546:
1547: /* Validate Organization */
1550: l_result := inv_validate.ORGANIZATION(l_org);
1551:
1552: IF (l_result = inv_validate.f) THEN
1553: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
1554: fnd_msg_pub.ADD;
1555: RAISE fnd_api.g_exc_error;
1556: END IF;
1557: END IF;
1558:
1562: l_result := inv_validate.subinventory(l_sub, l_org);
1563:
1564: IF (l_result = inv_validate.f) THEN
1565: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SUB');
1566: fnd_msg_pub.ADD;
1567: RAISE fnd_api.g_exc_error;
1568: END IF;
1569: END IF;
1570:
1572: IF (p_lpn.subinventory_code IS NOT NULL) THEN
1573: IF (l_sub.locator_type IN (2, 3)) THEN
1574: IF (p_lpn.locator_id IS NULL) THEN
1575: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOC');
1576: fnd_msg_pub.ADD;
1577: RAISE fnd_api.g_exc_error;
1578: END IF;
1579:
1580: l_locator.inventory_location_id := p_lpn.locator_id;
1581: l_result := inv_validate.validatelocator(l_locator, l_org, l_sub);
1582:
1583: IF (l_result = inv_validate.f) THEN
1584: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOC');
1585: fnd_msg_pub.ADD;
1586: RAISE fnd_api.g_exc_error;
1587: END IF;
1588: END IF;
1589: END IF;
1594: l_result := inv_validate.inventory_item(l_container_item, l_org);
1595:
1596: IF (l_result = inv_validate.f) THEN
1597: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ITEM');
1598: fnd_msg_pub.ADD;
1599: RAISE fnd_api.g_exc_error;
1600: END IF;
1601:
1602: IF (l_container_item.container_item_flag = 'N') THEN
1600: END IF;
1601:
1602: IF (l_container_item.container_item_flag = 'N') THEN
1603: fnd_message.set_name('WMS', 'WMS_CONT_ITEM_NOT_A_CONTAINER');
1604: fnd_msg_pub.ADD;
1605: RAISE fnd_api.g_exc_error;
1606: END IF;
1607: END IF;
1608:
1612: IF (l_debug = 1) THEN
1613: mdebug('gross weight= '|| p_lpn.gross_weight, 9);
1614: END IF;
1615: fnd_message.set_name('WMS', 'WMS_CONT_NEG_WEIGHT');
1616: fnd_msg_pub.ADD;
1617: RAISE fnd_api.g_exc_error;
1618: END IF;
1619: END IF;
1620:
1621: /* Validate Content Volume */
1622: IF (p_lpn.content_volume IS NOT NULL) THEN
1623: IF (p_lpn.content_volume < 0) THEN
1624: fnd_message.set_name('WMS', 'WMS_CONT_NEG_VOLUME');
1625: fnd_msg_pub.ADD;
1626: RAISE fnd_api.g_exc_error;
1627: END IF;
1628: END IF;
1629:
1630: /* Validate LPN Status ID */
1631: IF (p_lpn.status_id IS NOT NULL) THEN
1632: IF (p_lpn.status_id NOT IN (1, 2, 3, 4, 5, 6)) THEN
1633: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_STATUS_ID');
1634: fnd_msg_pub.ADD;
1635: RAISE fnd_api.g_exc_error;
1636: END IF;
1637: END IF;
1638:
1639: /* Validate LPN Context */
1640: IF (p_lpn.lpn_context IS NOT NULL) THEN
1641: IF (p_lpn.lpn_context NOT IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) THEN
1642: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN_CONTEXT');
1643: fnd_msg_pub.ADD;
1644: RAISE fnd_api.g_exc_error;
1645: END IF;
1646: END IF;
1647:
1648: /* Validate Sealed Status */
1649: IF (p_lpn.sealed_status IS NOT NULL) THEN
1650: IF (p_lpn.sealed_status NOT IN (1, 2)) THEN
1651: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SEALED_STAT');
1652: fnd_msg_pub.ADD;
1653: RAISE fnd_api.g_exc_error;
1654: END IF;
1655: END IF;
1656: END IF;
1710: END IF;
1711:
1712: -- Standard call to get message count and if count is 1,
1713: -- get message info.
1714: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1715: EXCEPTION
1716: WHEN fnd_api.g_exc_error THEN
1717: ROLLBACK TO modify_lpn_pub;
1718: x_return_status := fnd_api.g_ret_sts_error;
1715: EXCEPTION
1716: WHEN fnd_api.g_exc_error THEN
1717: ROLLBACK TO modify_lpn_pub;
1718: x_return_status := fnd_api.g_ret_sts_error;
1719: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1720: WHEN fnd_api.g_exc_unexpected_error THEN
1721: ROLLBACK TO modify_lpn_pub;
1722: x_return_status := fnd_api.g_ret_sts_unexp_error;
1723: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1719: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1720: WHEN fnd_api.g_exc_unexpected_error THEN
1721: ROLLBACK TO modify_lpn_pub;
1722: x_return_status := fnd_api.g_ret_sts_unexp_error;
1723: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1724: WHEN OTHERS THEN
1725: ROLLBACK TO modify_lpn_pub;
1726: x_return_status := fnd_api.g_ret_sts_unexp_error;
1727:
1724: WHEN OTHERS THEN
1725: ROLLBACK TO modify_lpn_pub;
1726: x_return_status := fnd_api.g_ret_sts_unexp_error;
1727:
1728: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1729: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1730: END IF;
1731:
1732: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1725: ROLLBACK TO modify_lpn_pub;
1726: x_return_status := fnd_api.g_ret_sts_unexp_error;
1727:
1728: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1729: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1730: END IF;
1731:
1732: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1733: END modify_lpn;
1728: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1729: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1730: END IF;
1731:
1732: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1733: END modify_lpn;
1734:
1735: PROCEDURE modify_lpn_wrapper(
1736: p_api_version IN NUMBER,
1770:
1771: -- Standard call to check for call compatibility.
1772: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
1773: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
1774: fnd_msg_pub.ADD;
1775: RAISE fnd_api.g_exc_unexpected_error;
1776: END IF;
1777:
1778: -- Initialize message list if p_init_msg_list is set to TRUE.
1776: END IF;
1777:
1778: -- Initialize message list if p_init_msg_list is set to TRUE.
1779: IF fnd_api.to_boolean(p_init_msg_list) THEN
1780: fnd_msg_pub.initialize;
1781: END IF;
1782:
1783: -- Initialize API return status to success
1784: x_return_status := fnd_api.g_ret_sts_success;
1790: l_result := validate_lpn(l_lpn);
1791:
1792: IF (l_result = inv_validate.f) THEN
1793: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
1794: fnd_msg_pub.ADD;
1795: RAISE fnd_api.g_exc_error;
1796: END IF;
1797:
1798: WMS_CONTAINER_PVT.Modify_LPN_Wrapper(
1835: END IF;
1836:
1837: -- Standard call to get message count and if count is 1,
1838: -- get message info.
1839: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1840: EXCEPTION
1841: WHEN fnd_api.g_exc_error THEN
1842: ROLLBACK TO modify_lpn_wrapper_pub;
1843: x_return_status := fnd_api.g_ret_sts_error;
1840: EXCEPTION
1841: WHEN fnd_api.g_exc_error THEN
1842: ROLLBACK TO modify_lpn_wrapper_pub;
1843: x_return_status := fnd_api.g_ret_sts_error;
1844: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1845: WHEN fnd_api.g_exc_unexpected_error THEN
1846: ROLLBACK TO modify_lpn_wrapper_pub;
1847: x_return_status := fnd_api.g_ret_sts_unexp_error;
1848: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1844: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1845: WHEN fnd_api.g_exc_unexpected_error THEN
1846: ROLLBACK TO modify_lpn_wrapper_pub;
1847: x_return_status := fnd_api.g_ret_sts_unexp_error;
1848: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1849: WHEN OTHERS THEN
1850: ROLLBACK TO modify_lpn_wrapper_pub;
1851: x_return_status := fnd_api.g_ret_sts_unexp_error;
1852:
1849: WHEN OTHERS THEN
1850: ROLLBACK TO modify_lpn_wrapper_pub;
1851: x_return_status := fnd_api.g_ret_sts_unexp_error;
1852:
1853: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1854: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1855: END IF;
1856:
1857: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1850: ROLLBACK TO modify_lpn_wrapper_pub;
1851: x_return_status := fnd_api.g_ret_sts_unexp_error;
1852:
1853: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1854: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1855: END IF;
1856:
1857: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1858: END modify_lpn_wrapper;
1853: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1854: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1855: END IF;
1856:
1857: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1858: END modify_lpn_wrapper;
1859:
1860: -- ----------------------------------------------------------------------------------
1861: -- ----------------------------------------------------------------------------------
2088:
2089: -- Standard call to check for call compatibility.
2090: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
2091: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
2092: fnd_msg_pub.ADD;
2093: RAISE fnd_api.g_exc_unexpected_error;
2094: END IF;
2095:
2096: -- Initialize message list if p_init_msg_list is set to TRUE.
2094: END IF;
2095:
2096: -- Initialize message list if p_init_msg_list is set to TRUE.
2097: IF fnd_api.to_boolean(p_init_msg_list) THEN
2098: fnd_msg_pub.initialize;
2099: END IF;
2100:
2101: -- Initialize API return status to success
2102: x_return_status := fnd_api.g_ret_sts_success;
2118: IF (l_debug = 1) THEN
2119: mdebug(p_lpn_id || 'is an invalid lpn_id', G_ERROR);
2120: END IF;
2121: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
2122: fnd_msg_pub.ADD;
2123: RAISE fnd_api.g_exc_error;
2124: END IF;
2125:
2126: /* Validate all inputs if validation level is set to full */
2134: IF (l_debug = 1) THEN
2135: mdebug(p_content_lpn_id || 'is and invalid content lpn id', G_ERROR);
2136: END IF;
2137: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CONTENT_LPN');
2138: fnd_msg_pub.ADD;
2139: RAISE fnd_api.g_exc_error;
2140: END IF;
2141:
2142: -- Check that the content lpn is in fact stored within the given parent lpn
2146: IF (l_debug = 1) THEN
2147: mdebug('child lpn is not in lpn parent lpn', G_ERROR);
2148: END IF;
2149: fnd_message.set_name('WMS', 'WMS_CONT_LPN_NOT_IN_LPN');
2150: fnd_msg_pub.ADD;
2151: RAISE fnd_api.g_exc_error;
2152: END IF;
2153: END IF;
2154: END IF;
2161: IF (l_debug = 1) THEN
2162: mdebug(p_organization_id || 'is not a valid org_id', G_ERROR);
2163: END IF;
2164: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
2165: fnd_msg_pub.ADD;
2166: RAISE fnd_api.g_exc_error;
2167: END IF;
2168:
2169: /* Validate Content Item */
2175: IF (l_debug = 1) THEN
2176: mdebug(p_content_item_id || 'is not a valid content item id', G_ERROR);
2177: END IF;
2178: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CONTENT_ITEM');
2179: fnd_msg_pub.ADD;
2180: RAISE fnd_api.g_exc_error;
2181: END IF;
2182: END IF;
2183:
2192: IF (l_debug = 1) THEN
2193: mdebug('no item description for unpack all', G_ERROR);
2194: END IF;
2195: fnd_message.set_name('WMS', 'WMS_CONT_NO_ITEM_DESC');
2196: fnd_msg_pub.ADD;
2197: RAISE fnd_api.g_exc_error;
2198: END IF;
2199: END IF;
2200:
2205: IF (l_debug = 1) THEN
2206: mdebug('Can not specify both content item and container item at same time', G_ERROR);
2207: END IF;
2208: fnd_message.set_name('WMS', 'WMS_CONT_LPN_AND_ITEM');
2209: fnd_msg_pub.ADD;
2210: RAISE fnd_api.g_exc_error;
2211: END IF;
2212:
2213: /* Validate that Subinventory must be given if pack operation and in INV*/
2215: IF (p_operation = 1) THEN
2216: IF (l_lpn.lpn_context IN (1, 11)) THEN
2217: IF (p_subinventory IS NULL) THEN
2218: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SUB');
2219: fnd_msg_pub.ADD;
2220: RAISE fnd_api.g_exc_error;
2221: END IF;
2222: END IF;
2223: END IF;
2232: IF (l_debug = 1) THEN
2233: mdebug(p_subinventory || 'is an invalid sub', G_ERROR);
2234: END IF;
2235: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SUB');
2236: fnd_msg_pub.ADD;
2237: RAISE fnd_api.g_exc_error;
2238: END IF;
2239: END IF;
2240:
2262: IF (l_debug = 1) THEN
2263: mdebug('Missing required locator', G_ERROR);
2264: END IF;
2265: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOC');
2266: fnd_msg_pub.ADD;
2267: RAISE fnd_api.g_exc_error;
2268: END IF;
2269:
2270: l_locator.inventory_location_id := p_locator_id;
2274: IF (l_debug = 1) THEN
2275: mdebug(p_locator_id || ' is an invalid locator_id', G_ERROR);
2276: END IF;
2277: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOC');
2278: fnd_msg_pub.ADD;
2279: RAISE fnd_api.g_exc_error;
2280: END IF;
2281: --END IF;
2282: END IF;
2293: IF (l_debug = 1) THEN
2294: mdebug(p_revision || ' is an invalid revision', G_ERROR);
2295: END IF;
2296: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_REV');
2297: fnd_msg_pub.ADD;
2298: RAISE fnd_api.g_exc_error;
2299: END IF;
2300: ELSE
2301: IF (l_debug = 1) THEN
2301: IF (l_debug = 1) THEN
2302: mdebug('Mission required revision', G_ERROR);
2303: END IF;
2304: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_REV');
2305: fnd_msg_pub.ADD;
2306: RAISE fnd_api.g_exc_error;
2307: END IF;
2308: END IF;
2309: END IF;
2336: IF (l_debug = 1) THEN
2337: mdebug(p_lot_number || ' is an invalid lot number', G_ERROR);
2338: END IF;
2339: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOT');
2340: fnd_msg_pub.ADD;
2341: RAISE fnd_api.g_exc_error;
2342: END IF;
2343: END IF;
2344: ELSE
2351: IF (l_debug = 1) THEN
2352: mdebug(p_lot_number || ' is an invalid lot number', G_ERROR);
2353: END IF;
2354: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LOT');
2355: fnd_msg_pub.ADD;
2356: RAISE fnd_api.g_exc_error;
2357: END IF;
2358:
2359: CLOSE lot_validation_cursor;
2367: IF (l_debug = 1) THEN
2368: mdebug('Missing required lot', G_ERROR);
2369: END IF;
2370: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOT');
2371: fnd_msg_pub.ADD;
2372: RAISE fnd_api.g_exc_error;
2373: END IF;
2374: END IF;
2375: END IF;
2383: IF (l_debug = 1) THEN
2384: mdebug('Requested a negative item qty', G_ERROR);
2385: END IF;
2386: fnd_message.set_name('WMS', 'WMS_CONT_NEG_ITEM_QTY');
2387: fnd_msg_pub.ADD;
2388: RAISE fnd_api.g_exc_error;
2389: ELSE
2390: l_quantity := p_quantity;
2391: END IF;
2402: IF (l_debug = 1) THEN
2403: mdebug('For container item unpack quantitiy must be 1', G_ERROR);
2404: END IF;
2405: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_QTY');
2406: fnd_msg_pub.ADD;
2407: RAISE fnd_api.g_exc_error;
2408: END IF;
2409: ELSE
2410: l_quantity := 1;
2423: IF (l_debug = 1) THEN
2424: mdebug('Invalid serial number given in range', G_ERROR);
2425: END IF;
2426: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
2427: fnd_msg_pub.ADD;
2428: RAISE fnd_api.g_exc_error;
2429: END IF;
2430:
2431: -- Check that in the case of a range of serial numbers, that the
2435: IF (l_debug = 1) THEN
2436: mdebug('Serial range quantity '||l_quantity||' not the same as given qty '||p_quantity, G_ERROR);
2437: END IF;
2438: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_X_QTY');
2439: fnd_msg_pub.ADD;
2440: RAISE fnd_api.g_exc_error;
2441: END IF;
2442: END IF;
2443:
2470: IF (l_debug = 1) THEN
2471: mdebug(l_current_serial || ' is not a valid serial number', G_ERROR);
2472: END IF;
2473: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
2474: fnd_msg_pub.ADD;
2475: RAISE fnd_api.g_exc_error;
2476: END IF;
2477: ELSE
2478: -- Either the subinventory was not given or
2485: IF (l_debug = 1) THEN
2486: mdebug(l_current_serial || ' is not a valid serial number', G_ERROR);
2487: END IF;
2488: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
2489: fnd_msg_pub.ADD;
2490: RAISE fnd_api.g_exc_error;
2491: END IF;
2492:
2493: CLOSE serial_validation_cursor;
2519: IF (l_debug = 1) THEN
2520: mdebug('Missing require serial number', G_ERROR);
2521: END IF;
2522: fnd_message.set_name('WMS', 'WMS_CONT_MISS_SER_NUM');
2523: fnd_msg_pub.ADD;
2524: RAISE fnd_api.g_exc_error;
2525: END IF;
2526: END IF;
2527: END IF;
2534: IF (l_debug = 1) THEN
2535: mdebug(p_uom || ' is an invalid UOM', G_ERROR);
2536: END IF;
2537: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_UOM');
2538: fnd_msg_pub.ADD;
2539: RAISE fnd_api.g_exc_error;
2540: END IF;
2541: END IF;
2542:
2545: IF (l_debug = 1) THEN
2546: mdebug(p_operation || ' is an invalid operation type', G_ERROR);
2547: END IF;
2548: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_OPERATION');
2549: fnd_msg_pub.ADD;
2550: RAISE fnd_api.g_exc_error;
2551: END IF;
2552:
2553: /* Validate the enforce weight and volume constraint flag */
2556: IF (l_debug = 1) THEN
2557: mdebug(p_enforce_wv_constraints || ' is an invalid constraint type', G_MESSAGE);
2558: END IF;
2559: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CONSTRAINT');
2560: fnd_msg_pub.ADD;
2561: RAISE fnd_api.g_exc_error;
2562: END IF;
2563: END IF;
2564:
2570: IF (l_debug = 1) THEN
2571: mdebug(p_cost_group_id || ' is an invalid cost group is', G_ERROR);
2572: END IF;
2573: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CST_GRP');
2574: fnd_msg_pub.ADD;
2575: RAISE fnd_api.g_exc_error;
2576: END IF;
2577: END IF;
2578: END IF;
2636: END IF;
2637:
2638: -- Standard call to get message count and if count is 1,
2639: -- get message info.
2640: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2641: EXCEPTION
2642: WHEN fnd_api.g_exc_error THEN
2643: ROLLBACK TO packunpack_container_pub;
2644: x_return_status := fnd_api.g_ret_sts_error;
2641: EXCEPTION
2642: WHEN fnd_api.g_exc_error THEN
2643: ROLLBACK TO packunpack_container_pub;
2644: x_return_status := fnd_api.g_ret_sts_error;
2645: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2646: WHEN fnd_api.g_exc_unexpected_error THEN
2647: ROLLBACK TO packunpack_container_pub;
2648: x_return_status := fnd_api.g_ret_sts_unexp_error;
2649: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2645: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2646: WHEN fnd_api.g_exc_unexpected_error THEN
2647: ROLLBACK TO packunpack_container_pub;
2648: x_return_status := fnd_api.g_ret_sts_unexp_error;
2649: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2650: WHEN OTHERS THEN
2651: ROLLBACK TO packunpack_container_pub;
2652: x_return_status := fnd_api.g_ret_sts_unexp_error;
2653:
2650: WHEN OTHERS THEN
2651: ROLLBACK TO packunpack_container_pub;
2652: x_return_status := fnd_api.g_ret_sts_unexp_error;
2653:
2654: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2655: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
2656: END IF;
2657:
2658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2651: ROLLBACK TO packunpack_container_pub;
2652: x_return_status := fnd_api.g_ret_sts_unexp_error;
2653:
2654: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2655: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
2656: END IF;
2657:
2658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2659: END packunpack_container;
2654: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
2655: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
2656: END IF;
2657:
2658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
2659: END packunpack_container;
2660:
2661: PROCEDURE pack_prepack_container(
2662: p_api_version IN NUMBER,
2721:
2722: -- Standard call to check for call compatibility.
2723: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
2724: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
2725: fnd_msg_pub.ADD;
2726: RAISE fnd_api.g_exc_unexpected_error;
2727: END IF;
2728:
2729: -- Initialize message list if p_init_msg_list is set to TRUE.
2727: END IF;
2728:
2729: -- Initialize message list if p_init_msg_list is set to TRUE.
2730: IF fnd_api.to_boolean(p_init_msg_list) THEN
2731: fnd_msg_pub.initialize;
2732: END IF;
2733:
2734: -- Initialize API return status to success
2735: x_return_status := fnd_api.g_ret_sts_success;
2753: IF (l_debug = 1) THEN
2754: mdebug(p_lpn_id || 'is an invalid lpn_id', 1);
2755: END IF;
2756: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_LPN');
2757: fnd_msg_pub.ADD;
2758: RAISE fnd_api.g_exc_error;
2759: END IF;
2760:
2761: /* Validate Organization ID */
2766: IF (l_debug = 1) THEN
2767: mdebug(p_organization_id || 'is not a valid org_id', 1);
2768: END IF;
2769: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
2770: fnd_msg_pub.ADD;
2771: RAISE fnd_api.g_exc_error;
2772: END IF;
2773:
2774: /* Validate Content Item */
2780: IF (l_debug = 1) THEN
2781: mdebug(p_content_item_id || 'is not a valid content item id', 1);
2782: END IF;
2783: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_CONTENT_ITEM');
2784: fnd_msg_pub.ADD;
2785: RAISE fnd_api.g_exc_error;
2786: END IF;
2787: END IF;
2788:
2796: IF (l_debug = 1) THEN
2797: mdebug(p_revision || ' is an invalid revision', 1);
2798: END IF;
2799: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_REV');
2800: fnd_msg_pub.ADD;
2801: RAISE fnd_api.g_exc_error;
2802: END IF;
2803: ELSE
2804: IF (l_debug = 1) THEN
2804: IF (l_debug = 1) THEN
2805: mdebug('Mission required revision', 1);
2806: END IF;
2807: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_REV');
2808: fnd_msg_pub.ADD;
2809: RAISE fnd_api.g_exc_error;
2810: END IF;
2811: END IF;
2812: END IF;
2819: IF (l_debug = 1) THEN
2820: mdebug('Missing required lot', 1);
2821: END IF;
2822: fnd_message.set_name('WMS', 'WMS_CONT_MISS_REQ_LOT');
2823: fnd_msg_pub.ADD;
2824: RAISE fnd_api.g_exc_error;
2825: END IF;
2826: END IF;
2827: END IF;
2835: IF (l_debug = 1) THEN
2836: mdebug('Requested a negative item qty', 1);
2837: END IF;
2838: fnd_message.set_name('WMS', 'WMS_CONT_NEG_ITEM_QTY');
2839: fnd_msg_pub.ADD;
2840: RAISE fnd_api.g_exc_error;
2841: ELSE
2842: l_quantity := p_quantity;
2843: END IF;
2856: IF (l_debug = 1) THEN
2857: mdebug('Invalid serial number given in range', 1);
2858: END IF;
2859: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
2860: fnd_msg_pub.ADD;
2861: RAISE fnd_api.g_exc_error;
2862: END IF;
2863:
2864: -- Check that in the case of a range of serial numbers, that the
2868: IF (l_debug = 1) THEN
2869: mdebug('Serial range quantity '||l_quantity||' not the same as given qty '||p_quantity, G_ERROR);
2870: END IF;
2871: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_X_QTY');
2872: fnd_msg_pub.ADD;
2873: RAISE fnd_api.g_exc_error;
2874: END IF;
2875: END IF;
2876:
2908: IF (l_debug = 1) THEN
2909: mdebug(l_current_serial || ' is not a valid serial number', 1);
2910: END IF;
2911: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_SER');
2912: fnd_msg_pub.ADD;
2913: RAISE fnd_api.g_exc_error;
2914: END IF;
2915:
2916: CLOSE serial_validation_cursor;
2941: IF (l_debug = 1) THEN
2942: mdebug('Missing require serial number', 1);
2943: END IF;
2944: fnd_message.set_name('WMS', 'WMS_CONT_MISS_SER_NUM');
2945: fnd_msg_pub.ADD;
2946: RAISE fnd_api.g_exc_error;
2947: END IF;
2948: END IF;
2949: END IF;
2956: IF (l_debug = 1) THEN
2957: mdebug(p_uom || ' is an invalid UOM', 1);
2958: END IF;
2959: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_UOM');
2960: fnd_msg_pub.ADD;
2961: RAISE fnd_api.g_exc_error;
2962: END IF;
2963: END IF;
2964:
2967: IF (l_debug = 1) THEN
2968: mdebug(p_operation || ' is an invalid operation type', 1);
2969: END IF;
2970: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_OPERATION');
2971: fnd_msg_pub.ADD;
2972: RAISE fnd_api.g_exc_error;
2973: END IF;
2974: END IF;
2975: /* End of Input Validation */
3006: END IF;
3007:
3008: -- Standard call to get message count and if count is 1,
3009: -- get message info.
3010: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3011: EXCEPTION
3012: WHEN fnd_api.g_exc_error THEN
3013: ROLLBACK TO pack_prepack_container_pub;
3014: x_return_status := fnd_api.g_ret_sts_error;
3011: EXCEPTION
3012: WHEN fnd_api.g_exc_error THEN
3013: ROLLBACK TO pack_prepack_container_pub;
3014: x_return_status := fnd_api.g_ret_sts_error;
3015: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3016: WHEN fnd_api.g_exc_unexpected_error THEN
3017: ROLLBACK TO pack_prepack_container_pub;
3018: x_return_status := fnd_api.g_ret_sts_unexp_error;
3019: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3015: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3016: WHEN fnd_api.g_exc_unexpected_error THEN
3017: ROLLBACK TO pack_prepack_container_pub;
3018: x_return_status := fnd_api.g_ret_sts_unexp_error;
3019: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3020: WHEN OTHERS THEN
3021: ROLLBACK TO pack_prepack_container_pub;
3022: x_return_status := fnd_api.g_ret_sts_unexp_error;
3023:
3020: WHEN OTHERS THEN
3021: ROLLBACK TO pack_prepack_container_pub;
3022: x_return_status := fnd_api.g_ret_sts_unexp_error;
3023:
3024: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3025: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
3026: END IF;
3027:
3028: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3021: ROLLBACK TO pack_prepack_container_pub;
3022: x_return_status := fnd_api.g_ret_sts_unexp_error;
3023:
3024: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3025: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
3026: END IF;
3027:
3028: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3029: END pack_prepack_container;
3024: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3025: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
3026: END IF;
3027:
3028: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3029: END pack_prepack_container;
3030:
3031: -- ----------------------------------------------------------------------------------
3032: -- ----------------------------------------------------------------------------------
3138:
3139: -- Standard call to check for call compatibility.
3140: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
3141: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
3142: fnd_msg_pub.ADD;
3143: RAISE fnd_api.g_exc_unexpected_error;
3144: END IF;
3145:
3146: -- Initialize message list if p_init_msg_list is set to TRUE.
3144: END IF;
3145:
3146: -- Initialize message list if p_init_msg_list is set to TRUE.
3147: IF fnd_api.to_boolean(p_init_msg_list) THEN
3148: fnd_msg_pub.initialize;
3149: END IF;
3150:
3151: -- Initialize API return status to success
3152: x_return_status := fnd_api.g_ret_sts_success;
3198: END IF;
3199:
3200: -- Standard call to get message count and if count is 1,
3201: -- get message info.
3202: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3203: EXCEPTION
3204: WHEN fnd_api.g_exc_error THEN
3205: ROLLBACK TO prepack_lpn_cp_pub;
3206: x_return_status := fnd_api.g_ret_sts_error;
3203: EXCEPTION
3204: WHEN fnd_api.g_exc_error THEN
3205: ROLLBACK TO prepack_lpn_cp_pub;
3206: x_return_status := fnd_api.g_ret_sts_error;
3207: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3208: WHEN fnd_api.g_exc_unexpected_error THEN
3209: ROLLBACK TO prepack_lpn_cp_pub;
3210: x_return_status := fnd_api.g_ret_sts_unexp_error;
3211: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3207: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3208: WHEN fnd_api.g_exc_unexpected_error THEN
3209: ROLLBACK TO prepack_lpn_cp_pub;
3210: x_return_status := fnd_api.g_ret_sts_unexp_error;
3211: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3212: WHEN OTHERS THEN
3213: ROLLBACK TO prepack_lpn_cp_pub;
3214: x_return_status := fnd_api.g_ret_sts_unexp_error;
3215:
3212: WHEN OTHERS THEN
3213: ROLLBACK TO prepack_lpn_cp_pub;
3214: x_return_status := fnd_api.g_ret_sts_unexp_error;
3215:
3216: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3217: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
3218: END IF;
3219:
3220: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3213: ROLLBACK TO prepack_lpn_cp_pub;
3214: x_return_status := fnd_api.g_ret_sts_unexp_error;
3215:
3216: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3217: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
3218: END IF;
3219:
3220: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3221: END prepack_lpn_cp;
3216: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
3217: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
3218: END IF;
3219:
3220: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
3221: END prepack_lpn_cp;
3222:
3223: -- ----------------------------------------------------------------------------------
3224: -- ----------------------------------------------------------------------------------
3297: BEGIN
3298: -- Standard call to check for call compatibility.
3299: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
3300: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
3301: fnd_msg_pub.ADD;
3302: RAISE fnd_api.g_exc_error;
3303: END IF;
3304:
3305: -- Initialize message list if p_init_msg_list is set to TRUE.
3303: END IF;
3304:
3305: -- Initialize message list if p_init_msg_list is set to TRUE.
3306: IF fnd_api.to_boolean(p_init_msg_list) THEN
3307: fnd_msg_pub.initialize;
3308: END IF;
3309:
3310: -- Initialize API return status to success
3311: x_return_status := fnd_api.g_ret_sts_success;
3323: IF ( l_debug = 1 ) THEN
3324: mdebug(p_organization_id || ' is not a valid org id', G_ERROR);
3325: END IF;
3326: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
3327: fnd_msg_pub.ADD;
3328: RAISE fnd_api.g_exc_error;
3329: END IF;
3330:
3331: l_progress := '200';
3337: IF ( l_debug = 1 ) THEN
3338: mdebug(p_outermost_lpn_id || ' is an invalid lpn id', G_ERROR);
3339: END IF;
3340: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_LPN');
3341: FND_MSG_PUB.ADD;
3342: RAISE FND_API.G_EXC_ERROR;
3343: END IF;
3344:
3345: l_progress := '300';
3373: END IF;
3374: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3375: END IF;
3376:
3377: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3378: EXCEPTION
3379: WHEN FND_API.G_EXC_ERROR THEN
3380: x_return_status := fnd_api.g_ret_sts_error;
3381: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3377: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3378: EXCEPTION
3379: WHEN FND_API.G_EXC_ERROR THEN
3380: x_return_status := fnd_api.g_ret_sts_error;
3381: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3382: IF (l_debug = 1) THEN
3383: FOR i in 1..x_msg_count LOOP
3384: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
3385: END LOOP;
3380: x_return_status := fnd_api.g_ret_sts_error;
3381: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3382: IF (l_debug = 1) THEN
3383: FOR i in 1..x_msg_count LOOP
3384: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
3385: END LOOP;
3386: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), 1);
3387: mdebug('msg: '||l_msgdata, 1);
3388: END IF;
3387: mdebug('msg: '||l_msgdata, 1);
3388: END IF;
3389: WHEN OTHERS THEN
3390: x_return_status := fnd_api.g_ret_sts_unexp_error;
3391: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3392: IF (l_debug = 1) THEN
3393: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), 1);
3394: END IF;
3395: END Merge_Up_LPN;
3421: BEGIN
3422: -- Standard call to check for call compatibility.
3423: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
3424: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
3425: fnd_msg_pub.ADD;
3426: RAISE fnd_api.g_exc_error;
3427: END IF;
3428:
3429: -- Initialize message list if p_init_msg_list is set to TRUE.
3427: END IF;
3428:
3429: -- Initialize message list if p_init_msg_list is set to TRUE.
3430: IF fnd_api.to_boolean(p_init_msg_list) THEN
3431: fnd_msg_pub.initialize;
3432: END IF;
3433:
3434: -- Initialize API return status to success
3435: x_return_status := fnd_api.g_ret_sts_success;
3447: IF ( l_debug = 1 ) THEN
3448: mdebug(p_organization_id || ' is not a valid org id', G_ERROR);
3449: END IF;
3450: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
3451: fnd_msg_pub.ADD;
3452: RAISE fnd_api.g_exc_error;
3453: END IF;
3454:
3455: l_progress := '200';
3461: IF ( l_debug = 1 ) THEN
3462: mdebug(p_outermost_lpn_id || ' is an invalid lpn id', G_ERROR);
3463: END IF;
3464: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_LPN');
3465: FND_MSG_PUB.ADD;
3466: RAISE FND_API.G_EXC_ERROR;
3467: END IF;
3468:
3469: l_progress := '300';
3497: END IF;
3498: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3499: END IF;
3500:
3501: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3502: EXCEPTION
3503: WHEN FND_API.G_EXC_ERROR THEN
3504: x_return_status := fnd_api.g_ret_sts_error;
3505: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3501: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3502: EXCEPTION
3503: WHEN FND_API.G_EXC_ERROR THEN
3504: x_return_status := fnd_api.g_ret_sts_error;
3505: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3506: IF (l_debug = 1) THEN
3507: FOR i in 1..x_msg_count LOOP
3508: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
3509: END LOOP;
3504: x_return_status := fnd_api.g_ret_sts_error;
3505: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3506: IF (l_debug = 1) THEN
3507: FOR i in 1..x_msg_count LOOP
3508: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
3509: END LOOP;
3510: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), 1);
3511: mdebug('msg: '||l_msgdata, 1);
3512: END IF;
3511: mdebug('msg: '||l_msgdata, 1);
3512: END IF;
3513: WHEN OTHERS THEN
3514: x_return_status := fnd_api.g_ret_sts_unexp_error;
3515: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3516: IF (l_debug = 1) THEN
3517: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), 1);
3518: END IF;
3519: END Break_Down_LPN;
3545: BEGIN
3546: -- Standard call to check for call compatibility.
3547: IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
3548: fnd_message.set_name('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
3549: fnd_msg_pub.ADD;
3550: RAISE fnd_api.g_exc_error;
3551: END IF;
3552:
3553: -- Initialize message list if p_init_msg_list is set to TRUE.
3551: END IF;
3552:
3553: -- Initialize message list if p_init_msg_list is set to TRUE.
3554: IF fnd_api.to_boolean(p_init_msg_list) THEN
3555: fnd_msg_pub.initialize;
3556: END IF;
3557:
3558: -- Initialize API return status to success
3559: x_return_status := fnd_api.g_ret_sts_success;
3571: IF ( l_debug = 1 ) THEN
3572: mdebug(p_organization_id || ' is not a valid org id', G_ERROR);
3573: END IF;
3574: fnd_message.set_name('WMS', 'WMS_CONT_INVALID_ORG');
3575: fnd_msg_pub.ADD;
3576: RAISE fnd_api.g_exc_error;
3577: END IF;
3578:
3579: l_progress := '200';
3585: IF ( l_debug = 1 ) THEN
3586: mdebug(p_outermost_lpn_id || ' is an invalid lpn id', G_ERROR);
3587: END IF;
3588: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_LPN');
3589: FND_MSG_PUB.ADD;
3590: RAISE FND_API.G_EXC_ERROR;
3591: END IF;
3592:
3593: l_progress := '300';
3621: END IF;
3622: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3623: END IF;
3624:
3625: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3626: EXCEPTION
3627: WHEN FND_API.G_EXC_ERROR THEN
3628: x_return_status := fnd_api.g_ret_sts_error;
3629: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3625: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3626: EXCEPTION
3627: WHEN FND_API.G_EXC_ERROR THEN
3628: x_return_status := fnd_api.g_ret_sts_error;
3629: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3630: IF (l_debug = 1) THEN
3631: FOR i in 1..x_msg_count LOOP
3632: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
3633: END LOOP;
3628: x_return_status := fnd_api.g_ret_sts_error;
3629: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3630: IF (l_debug = 1) THEN
3631: FOR i in 1..x_msg_count LOOP
3632: l_msgdata := substr(l_msgdata||' | '||substr(fnd_msg_pub.get(x_msg_count-i+1, 'F'), 0, 200),1,2000);
3633: END LOOP;
3634: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), 1);
3635: mdebug('msg: '||l_msgdata, 1);
3636: END IF;
3635: mdebug('msg: '||l_msgdata, 1);
3636: END IF;
3637: WHEN OTHERS THEN
3638: x_return_status := fnd_api.g_ret_sts_unexp_error;
3639: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3640: IF (l_debug = 1) THEN
3641: mdebug(l_api_name ||' Error progress='||l_progress||' SQL error: '|| SQLERRM(SQLCODE), 1);
3642: END IF;
3643: END Initialize_LPN;
3834:
3835: EXCEPTION
3836: WHEN l_transactions_pending THEN
3837: FND_MESSAGE.SET_NAME('WMS', 'WMS_PENDING_TRX_RECORDS');
3838: FND_MSG_PUB.ADD;
3839: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3840: x_return_status := 'E';
3841: WHEN l_invalid_lpn_context THEN
3842: FND_MESSAGE.SET_NAME('WMS', 'WMS_WRONG_TO_LPN_CONTEXT');
3835: EXCEPTION
3836: WHEN l_transactions_pending THEN
3837: FND_MESSAGE.SET_NAME('WMS', 'WMS_PENDING_TRX_RECORDS');
3838: FND_MSG_PUB.ADD;
3839: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3840: x_return_status := 'E';
3841: WHEN l_invalid_lpn_context THEN
3842: FND_MESSAGE.SET_NAME('WMS', 'WMS_WRONG_TO_LPN_CONTEXT');
3843: FND_MSG_PUB.ADD;
3839: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3840: x_return_status := 'E';
3841: WHEN l_invalid_lpn_context THEN
3842: FND_MESSAGE.SET_NAME('WMS', 'WMS_WRONG_TO_LPN_CONTEXT');
3843: FND_MSG_PUB.ADD;
3844: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3845: x_return_status := 'E';
3846: WHEN l_lpn_not_found THEN
3847: FND_MESSAGE.SET_NAME('WMS', 'WMS_LPN_NOTFOUND');
3840: x_return_status := 'E';
3841: WHEN l_invalid_lpn_context THEN
3842: FND_MESSAGE.SET_NAME('WMS', 'WMS_WRONG_TO_LPN_CONTEXT');
3843: FND_MSG_PUB.ADD;
3844: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3845: x_return_status := 'E';
3846: WHEN l_lpn_not_found THEN
3847: FND_MESSAGE.SET_NAME('WMS', 'WMS_LPN_NOTFOUND');
3848: FND_MSG_PUB.ADD;
3844: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3845: x_return_status := 'E';
3846: WHEN l_lpn_not_found THEN
3847: FND_MESSAGE.SET_NAME('WMS', 'WMS_LPN_NOTFOUND');
3848: FND_MSG_PUB.ADD;
3849: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3850: x_return_status := 'E';
3851: WHEN OTHERS THEN
3852: FND_MESSAGE.SET_NAME('WMS', 'WMS_UNEXPECTED_ERROR');
3845: x_return_status := 'E';
3846: WHEN l_lpn_not_found THEN
3847: FND_MESSAGE.SET_NAME('WMS', 'WMS_LPN_NOTFOUND');
3848: FND_MSG_PUB.ADD;
3849: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3850: x_return_status := 'E';
3851: WHEN OTHERS THEN
3852: FND_MESSAGE.SET_NAME('WMS', 'WMS_UNEXPECTED_ERROR');
3853: FND_MSG_PUB.ADD;
3849: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3850: x_return_status := 'E';
3851: WHEN OTHERS THEN
3852: FND_MESSAGE.SET_NAME('WMS', 'WMS_UNEXPECTED_ERROR');
3853: FND_MSG_PUB.ADD;
3854: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3855: x_return_status := 'E';
3856: END validate_lpn;
3857:
3850: x_return_status := 'E';
3851: WHEN OTHERS THEN
3852: FND_MESSAGE.SET_NAME('WMS', 'WMS_UNEXPECTED_ERROR');
3853: FND_MSG_PUB.ADD;
3854: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
3855: x_return_status := 'E';
3856: END validate_lpn;
3857:
3858:
3922: mdebug('p_clear_containter_item_id : '||p_clear_containter_item_id);
3923: END IF;
3924:
3925: IF p_init_msg_list ='Y' THEN
3926: fnd_msg_pub.initialize;
3927: END IF;
3928:
3929: IF NOT FND_API.Compatible_API_Call( l_api_version
3930: , p_api_version
4509: EXCEPTION
4510:
4511: WHEN l_invalid_org THEN
4512: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_ORG');
4513: FND_MSG_PUB.ADD;
4514: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4515: x_return_status := 'E';
4516: WHEN l_invalid_lpn THEN
4517: x_return_status := 'E';
4510:
4511: WHEN l_invalid_org THEN
4512: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_ORG');
4513: FND_MSG_PUB.ADD;
4514: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4515: x_return_status := 'E';
4516: WHEN l_invalid_lpn THEN
4517: x_return_status := 'E';
4518: WHEN OTHERS THEN
4516: WHEN l_invalid_lpn THEN
4517: x_return_status := 'E';
4518: WHEN OTHERS THEN
4519: FND_MESSAGE.SET_NAME('WMS', 'WMS_UNEXPECTED_ERROR');
4520: FND_MSG_PUB.ADD;
4521: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4522: x_return_status := 'E';
4523: ROLLBACK TO REUSE_LPN_SP;
4524: END REUSE_LPNS;
4517: x_return_status := 'E';
4518: WHEN OTHERS THEN
4519: FND_MESSAGE.SET_NAME('WMS', 'WMS_UNEXPECTED_ERROR');
4520: FND_MSG_PUB.ADD;
4521: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4522: x_return_status := 'E';
4523: ROLLBACK TO REUSE_LPN_SP;
4524: END REUSE_LPNS;
4525: -- End of package