157: AND mmt.organization_id = haou.organization_id;
158:
159: BEGIN
160:
161: x_return_status := fnd_api.g_ret_sts_success;
162:
163: api_log('get_mmt_info');
164:
165: BEGIN
276: WHEN no_data_found THEN
277: fnd_message.set_name('CSI','CSI_NO_INVENTORY_RECORDS');
278: fnd_message.set_token('MTL_TRANSACTION_ID',p_transaction_id);
279: fnd_msg_pub.add;
280: RAISE fnd_api.g_exc_error;
281: END;
282:
283: debug(' item : '||l_txn_ref.item);
284: debug(' inventory_item_id : '||l_txn_ref.inventory_item_id);
383: IF l_mmt_tbl.COUNT = 0 THEN
384: fnd_message.set_name('CSI','CSI_NO_INVENTORY_RECORDS');
385: fnd_message.set_token('MTL_TRANSACTION_ID',p_transaction_id);
386: fnd_msg_pub.add;
387: RAISE fnd_api.g_exc_error;
388: END IF;
389:
390: dump_mmt_tbl(l_mmt_tbl);
391:
392: x_txn_ref := l_txn_ref;
393: x_mmt_tbl := l_mmt_tbl;
394:
395: EXCEPTION
396: WHEN fnd_api.g_exc_error THEN
397: x_return_status := fnd_api.g_ret_sts_error;
398: END get_mmt_info;
399:
400: PROCEDURE make_non_hdr_rec(
393: x_mmt_tbl := l_mmt_tbl;
394:
395: EXCEPTION
396: WHEN fnd_api.g_exc_error THEN
397: x_return_status := fnd_api.g_ret_sts_error;
398: END get_mmt_info;
399:
400: PROCEDURE make_non_hdr_rec(
401: p_instance_hdr_rec IN csi_datastructures_pub.instance_header_rec,
405:
406: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
407: l_instance_tbl csi_datastructures_pub.instance_tbl;
408:
409: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
410:
411: BEGIN
412:
413: x_return_status := l_return_status;
421: p_instance_header_tbl => l_instance_hdr_tbl,
422: x_instance_tbl => l_instance_tbl,
423: x_return_status => l_return_status);
424:
425: IF l_return_status <> fnd_api.g_ret_sts_success THEN
426: RAISE fnd_api.g_exc_error;
427: END IF;
428:
429: x_instance_rec := l_instance_tbl(1);
422: x_instance_tbl => l_instance_tbl,
423: x_return_status => l_return_status);
424:
425: IF l_return_status <> fnd_api.g_ret_sts_success THEN
426: RAISE fnd_api.g_exc_error;
427: END IF;
428:
429: x_instance_rec := l_instance_tbl(1);
430:
428:
429: x_instance_rec := l_instance_tbl(1);
430:
431: EXCEPTION
432: WHEN fnd_api.g_exc_error THEN
433: x_return_status := fnd_api.g_ret_sts_error;
434: END make_non_hdr_rec;
435:
436: PROCEDURE increment_comp_instance(
429: x_instance_rec := l_instance_tbl(1);
430:
431: EXCEPTION
432: WHEN fnd_api.g_exc_error THEN
433: x_return_status := fnd_api.g_ret_sts_error;
434: END make_non_hdr_rec;
435:
436: PROCEDURE increment_comp_instance(
437: p_instance_id IN number,
448: l_u_pricing_tbl csi_datastructures_pub.pricing_attribs_tbl;
449: l_u_assets_tbl csi_datastructures_pub.instance_asset_tbl;
450: l_u_instance_ids_list csi_datastructures_pub.id_tbl;
451:
452: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
453: l_msg_count number;
454: l_msg_data varchar2(2000);
455: BEGIN
456:
453: l_msg_count number;
454: l_msg_data varchar2(2000);
455: BEGIN
456:
457: x_return_status := fnd_api.g_ret_sts_success;
458:
459: api_log('increment_comp_instance');
460:
461: l_u_instance_rec.instance_id := p_instance_id;
477:
478: -- update item_instance
479: csi_item_instance_pub.update_item_instance(
480: p_api_version => 1.0,
481: p_commit => fnd_api.g_false,
482: p_init_msg_list => fnd_api.g_true,
483: p_validation_level => fnd_api.g_valid_level_full,
484: p_instance_rec => l_u_instance_rec,
485: p_party_tbl => l_u_parties_tbl,
478: -- update item_instance
479: csi_item_instance_pub.update_item_instance(
480: p_api_version => 1.0,
481: p_commit => fnd_api.g_false,
482: p_init_msg_list => fnd_api.g_true,
483: p_validation_level => fnd_api.g_valid_level_full,
484: p_instance_rec => l_u_instance_rec,
485: p_party_tbl => l_u_parties_tbl,
486: p_account_tbl => l_u_pty_accts_tbl,
479: csi_item_instance_pub.update_item_instance(
480: p_api_version => 1.0,
481: p_commit => fnd_api.g_false,
482: p_init_msg_list => fnd_api.g_true,
483: p_validation_level => fnd_api.g_valid_level_full,
484: p_instance_rec => l_u_instance_rec,
485: p_party_tbl => l_u_parties_tbl,
486: p_account_tbl => l_u_pty_accts_tbl,
487: p_org_assignments_tbl => l_u_org_units_tbl,
494: x_msg_count => l_msg_count,
495: x_msg_data => l_msg_data);
496:
497: -- For Bug 4057183
498: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
499: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
500: RAISE fnd_api.g_exc_error;
501: END IF;
502:
495: x_msg_data => l_msg_data);
496:
497: -- For Bug 4057183
498: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
499: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
500: RAISE fnd_api.g_exc_error;
501: END IF;
502:
503: EXCEPTION
496:
497: -- For Bug 4057183
498: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
499: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
500: RAISE fnd_api.g_exc_error;
501: END IF;
502:
503: EXCEPTION
504: WHEN fnd_api.g_exc_error THEN
500: RAISE fnd_api.g_exc_error;
501: END IF;
502:
503: EXCEPTION
504: WHEN fnd_api.g_exc_error THEN
505: x_return_status := fnd_api.g_ret_sts_error;
506: END increment_comp_instance;
507:
508:
501: END IF;
502:
503: EXCEPTION
504: WHEN fnd_api.g_exc_error THEN
505: x_return_status := fnd_api.g_ret_sts_error;
506: END increment_comp_instance;
507:
508:
509: PROCEDURE decrement_wip_instance(
521: l_u_pricing_tbl csi_datastructures_pub.pricing_attribs_tbl;
522: l_u_assets_tbl csi_datastructures_pub.instance_asset_tbl;
523: l_u_instance_ids_list csi_datastructures_pub.id_tbl;
524:
525: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
526: l_msg_count number;
527: l_msg_data varchar2(2000);
528: BEGIN
529:
526: l_msg_count number;
527: l_msg_data varchar2(2000);
528: BEGIN
529:
530: x_return_status := fnd_api.g_ret_sts_success;
531:
532: api_log('decrement_wip_instance');
533:
534: l_u_instance_rec.instance_id := p_instance_id;
550:
551: -- update item_instance
552: csi_item_instance_pub.update_item_instance(
553: p_api_version => 1.0,
554: p_commit => fnd_api.g_false,
555: p_init_msg_list => fnd_api.g_true,
556: p_validation_level => fnd_api.g_valid_level_full,
557: p_instance_rec => l_u_instance_rec,
558: p_party_tbl => l_u_parties_tbl,
551: -- update item_instance
552: csi_item_instance_pub.update_item_instance(
553: p_api_version => 1.0,
554: p_commit => fnd_api.g_false,
555: p_init_msg_list => fnd_api.g_true,
556: p_validation_level => fnd_api.g_valid_level_full,
557: p_instance_rec => l_u_instance_rec,
558: p_party_tbl => l_u_parties_tbl,
559: p_account_tbl => l_u_pty_accts_tbl,
552: csi_item_instance_pub.update_item_instance(
553: p_api_version => 1.0,
554: p_commit => fnd_api.g_false,
555: p_init_msg_list => fnd_api.g_true,
556: p_validation_level => fnd_api.g_valid_level_full,
557: p_instance_rec => l_u_instance_rec,
558: p_party_tbl => l_u_parties_tbl,
559: p_account_tbl => l_u_pty_accts_tbl,
560: p_org_assignments_tbl => l_u_org_units_tbl,
567: x_msg_count => l_msg_count,
568: x_msg_data => l_msg_data);
569:
570: -- For Bug 4057183
571: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
572: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
573: RAISE fnd_api.g_exc_error;
574: END IF;
575:
568: x_msg_data => l_msg_data);
569:
570: -- For Bug 4057183
571: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
572: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
573: RAISE fnd_api.g_exc_error;
574: END IF;
575:
576: EXCEPTION
569:
570: -- For Bug 4057183
571: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
572: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
573: RAISE fnd_api.g_exc_error;
574: END IF;
575:
576: EXCEPTION
577: WHEN fnd_api.g_exc_error THEN
573: RAISE fnd_api.g_exc_error;
574: END IF;
575:
576: EXCEPTION
577: WHEN fnd_api.g_exc_error THEN
578: x_return_status := fnd_api.g_ret_sts_error;
579: END decrement_wip_instance;
580:
581:
574: END IF;
575:
576: EXCEPTION
577: WHEN fnd_api.g_exc_error THEN
578: x_return_status := fnd_api.g_ret_sts_error;
579: END decrement_wip_instance;
580:
581:
582: PROCEDURE create_wip_instance_as(
587: px_csi_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
588: x_return_status OUT NOCOPY varchar2)
589: IS
590:
591: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
592: l_msg_data varchar2(2000);
593: l_msg_count number;
594:
595: -- get_item_instance_details variables
618: c_pa_ind binary_integer := 0;
619:
620: BEGIN
621:
622: x_return_status := fnd_api.g_ret_sts_success;
623: api_log('create_wip_instance_as');
624:
625: l_g_instance_rec.instance_id := p_instance_id;
626:
630:
631: -- get the instance party and party account info
632: csi_item_instance_pub.get_item_instance_details(
633: p_api_version => 1.0,
634: p_commit => fnd_api.g_false,
635: p_init_msg_list => fnd_api.g_true,
636: p_validation_level => fnd_api.g_valid_level_full,
637: p_instance_rec => l_g_instance_rec,
638: p_get_parties => fnd_api.g_true,
631: -- get the instance party and party account info
632: csi_item_instance_pub.get_item_instance_details(
633: p_api_version => 1.0,
634: p_commit => fnd_api.g_false,
635: p_init_msg_list => fnd_api.g_true,
636: p_validation_level => fnd_api.g_valid_level_full,
637: p_instance_rec => l_g_instance_rec,
638: p_get_parties => fnd_api.g_true,
639: p_party_header_tbl => l_g_ph_tbl,
632: csi_item_instance_pub.get_item_instance_details(
633: p_api_version => 1.0,
634: p_commit => fnd_api.g_false,
635: p_init_msg_list => fnd_api.g_true,
636: p_validation_level => fnd_api.g_valid_level_full,
637: p_instance_rec => l_g_instance_rec,
638: p_get_parties => fnd_api.g_true,
639: p_party_header_tbl => l_g_ph_tbl,
640: p_get_accounts => fnd_api.g_true,
634: p_commit => fnd_api.g_false,
635: p_init_msg_list => fnd_api.g_true,
636: p_validation_level => fnd_api.g_valid_level_full,
637: p_instance_rec => l_g_instance_rec,
638: p_get_parties => fnd_api.g_true,
639: p_party_header_tbl => l_g_ph_tbl,
640: p_get_accounts => fnd_api.g_true,
641: p_account_header_tbl => l_g_pah_tbl,
642: p_get_org_assignments => fnd_api.g_false,
636: p_validation_level => fnd_api.g_valid_level_full,
637: p_instance_rec => l_g_instance_rec,
638: p_get_parties => fnd_api.g_true,
639: p_party_header_tbl => l_g_ph_tbl,
640: p_get_accounts => fnd_api.g_true,
641: p_account_header_tbl => l_g_pah_tbl,
642: p_get_org_assignments => fnd_api.g_false,
643: p_org_header_tbl => l_g_ouh_tbl,
644: p_get_pricing_attribs => fnd_api.g_false,
638: p_get_parties => fnd_api.g_true,
639: p_party_header_tbl => l_g_ph_tbl,
640: p_get_accounts => fnd_api.g_true,
641: p_account_header_tbl => l_g_pah_tbl,
642: p_get_org_assignments => fnd_api.g_false,
643: p_org_header_tbl => l_g_ouh_tbl,
644: p_get_pricing_attribs => fnd_api.g_false,
645: p_pricing_attrib_tbl => l_g_pa_tbl,
646: p_get_ext_attribs => fnd_api.g_false,
640: p_get_accounts => fnd_api.g_true,
641: p_account_header_tbl => l_g_pah_tbl,
642: p_get_org_assignments => fnd_api.g_false,
643: p_org_header_tbl => l_g_ouh_tbl,
644: p_get_pricing_attribs => fnd_api.g_false,
645: p_pricing_attrib_tbl => l_g_pa_tbl,
646: p_get_ext_attribs => fnd_api.g_false,
647: p_ext_attrib_tbl => l_g_eav_tbl,
648: p_ext_attrib_def_tbl => l_g_ea_tbl,
642: p_get_org_assignments => fnd_api.g_false,
643: p_org_header_tbl => l_g_ouh_tbl,
644: p_get_pricing_attribs => fnd_api.g_false,
645: p_pricing_attrib_tbl => l_g_pa_tbl,
646: p_get_ext_attribs => fnd_api.g_false,
647: p_ext_attrib_tbl => l_g_eav_tbl,
648: p_ext_attrib_def_tbl => l_g_ea_tbl,
649: p_get_asset_assignments => fnd_api.g_false,
650: p_asset_header_tbl => l_g_iah_tbl,
645: p_pricing_attrib_tbl => l_g_pa_tbl,
646: p_get_ext_attribs => fnd_api.g_false,
647: p_ext_attrib_tbl => l_g_eav_tbl,
648: p_ext_attrib_def_tbl => l_g_ea_tbl,
649: p_get_asset_assignments => fnd_api.g_false,
650: p_asset_header_tbl => l_g_iah_tbl,
651: p_time_stamp => l_g_time_stamp,
652: x_return_status => l_return_status,
653: x_msg_count => l_msg_count,
652: x_return_status => l_return_status,
653: x_msg_count => l_msg_count,
654: x_msg_data => l_msg_data);
655:
656: IF l_return_status <> fnd_api.g_ret_sts_success THEN
657: RAISE fnd_api.g_exc_error;
658: END IF;
659:
660: make_non_hdr_rec(
653: x_msg_count => l_msg_count,
654: x_msg_data => l_msg_data);
655:
656: IF l_return_status <> fnd_api.g_ret_sts_success THEN
657: RAISE fnd_api.g_exc_error;
658: END IF;
659:
660: make_non_hdr_rec(
661: p_instance_hdr_rec => l_g_instance_rec,
666:
667: l_c_instance_rec := l_instance_rec;
668:
669: -- substitute create specific attributes
670: l_c_instance_rec.instance_id := fnd_api.g_miss_num;
671: l_c_instance_rec.instance_number := fnd_api.g_miss_char;
672: l_c_instance_rec.object_version_number := 1.0;
673: l_c_instance_rec.vld_organization_id := p_organization_id;
674: l_c_instance_rec.quantity := p_quantity;
667: l_c_instance_rec := l_instance_rec;
668:
669: -- substitute create specific attributes
670: l_c_instance_rec.instance_id := fnd_api.g_miss_num;
671: l_c_instance_rec.instance_number := fnd_api.g_miss_char;
672: l_c_instance_rec.object_version_number := 1.0;
673: l_c_instance_rec.vld_organization_id := p_organization_id;
674: l_c_instance_rec.quantity := p_quantity;
675:
683:
684: FOR l_pt_ind IN l_g_ph_tbl.FIRST ..l_g_ph_tbl.LAST
685: LOOP
686:
687: l_c_parties_tbl(l_pt_ind).instance_party_id := fnd_api.g_miss_num;
688: l_c_parties_tbl(l_pt_ind).instance_id := fnd_api.g_miss_num;
689: l_c_parties_tbl(l_pt_ind).party_id := l_g_ph_tbl(l_pt_ind).party_id;
690: l_c_parties_tbl(l_pt_ind).party_source_table := l_g_ph_tbl(l_pt_ind).party_source_table;
691: l_c_parties_tbl(l_pt_ind).relationship_type_code :=
684: FOR l_pt_ind IN l_g_ph_tbl.FIRST ..l_g_ph_tbl.LAST
685: LOOP
686:
687: l_c_parties_tbl(l_pt_ind).instance_party_id := fnd_api.g_miss_num;
688: l_c_parties_tbl(l_pt_ind).instance_id := fnd_api.g_miss_num;
689: l_c_parties_tbl(l_pt_ind).party_id := l_g_ph_tbl(l_pt_ind).party_id;
690: l_c_parties_tbl(l_pt_ind).party_source_table := l_g_ph_tbl(l_pt_ind).party_source_table;
691: l_c_parties_tbl(l_pt_ind).relationship_type_code :=
692: l_g_ph_tbl(l_pt_ind).relationship_type_code;
699: IF l_g_pah_tbl(l_pa_ind).instance_party_id = l_g_ph_tbl(l_pt_ind).instance_party_id
700: THEN
701: c_pa_ind := c_pa_ind + 1;
702: l_c_pty_accts_tbl(c_pa_ind).parent_tbl_index := l_pt_ind;
703: l_c_pty_accts_tbl(c_pa_ind).ip_account_id := fnd_api.g_miss_num;
704: l_c_pty_accts_tbl(c_pa_ind).instance_party_id := fnd_api.g_miss_num;
705: l_c_pty_accts_tbl(c_pa_ind).party_account_id :=
706: l_g_pah_tbl(l_pa_ind).party_account_id;
707: l_c_pty_accts_tbl(c_pa_ind).relationship_type_code :=
700: THEN
701: c_pa_ind := c_pa_ind + 1;
702: l_c_pty_accts_tbl(c_pa_ind).parent_tbl_index := l_pt_ind;
703: l_c_pty_accts_tbl(c_pa_ind).ip_account_id := fnd_api.g_miss_num;
704: l_c_pty_accts_tbl(c_pa_ind).instance_party_id := fnd_api.g_miss_num;
705: l_c_pty_accts_tbl(c_pa_ind).party_account_id :=
706: l_g_pah_tbl(l_pa_ind).party_account_id;
707: l_c_pty_accts_tbl(c_pa_ind).relationship_type_code :=
708: l_g_pah_tbl(l_pa_ind).relationship_type_code;
719: p_api_name => 'create_item_instance');
720:
721: csi_item_instance_pub.create_item_instance(
722: p_api_version => 1.0,
723: p_commit => fnd_api.g_false,
724: p_init_msg_list => fnd_api.g_true,
725: p_validation_level => fnd_api.g_valid_level_full,
726: p_instance_rec => l_c_instance_rec,
727: p_party_tbl => l_c_parties_tbl,
720:
721: csi_item_instance_pub.create_item_instance(
722: p_api_version => 1.0,
723: p_commit => fnd_api.g_false,
724: p_init_msg_list => fnd_api.g_true,
725: p_validation_level => fnd_api.g_valid_level_full,
726: p_instance_rec => l_c_instance_rec,
727: p_party_tbl => l_c_parties_tbl,
728: p_account_tbl => l_c_pty_accts_tbl,
721: csi_item_instance_pub.create_item_instance(
722: p_api_version => 1.0,
723: p_commit => fnd_api.g_false,
724: p_init_msg_list => fnd_api.g_true,
725: p_validation_level => fnd_api.g_valid_level_full,
726: p_instance_rec => l_c_instance_rec,
727: p_party_tbl => l_c_parties_tbl,
728: p_account_tbl => l_c_pty_accts_tbl,
729: p_org_assignments_tbl => l_c_org_units_tbl,
735: x_msg_count => l_msg_count,
736: x_msg_data => l_msg_data );
737:
738: -- For Bug 4057183
739: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
740: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
741: RAISE fnd_api.g_exc_error;
742: END IF;
743:
736: x_msg_data => l_msg_data );
737:
738: -- For Bug 4057183
739: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
740: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
741: RAISE fnd_api.g_exc_error;
742: END IF;
743:
744: debug(' new instance_id : '||l_c_instance_rec.instance_id);
737:
738: -- For Bug 4057183
739: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
740: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
741: RAISE fnd_api.g_exc_error;
742: END IF;
743:
744: debug(' new instance_id : '||l_c_instance_rec.instance_id);
745:
745:
746: x_new_instance_id := l_c_instance_rec.instance_id;
747:
748: EXCEPTION
749: WHEN fnd_api.g_exc_error THEN
750: x_return_status := fnd_api.g_ret_sts_error;
751: END create_wip_instance_as;
752:
753: PROCEDURE apportion_always(
746: x_new_instance_id := l_c_instance_rec.instance_id;
747:
748: EXCEPTION
749: WHEN fnd_api.g_exc_error THEN
750: x_return_status := fnd_api.g_ret_sts_error;
751: END create_wip_instance_as;
752:
753: PROCEDURE apportion_always(
754: p_assembly_instances IN csi_datastructures_pub.instance_tbl,
791: AND nvl(mog.end_date_active, sysdate+1);
792:
793: BEGIN
794:
795: x_return_status := fnd_api.g_ret_sts_success;
796:
797: api_log('apportion_always');
798:
799: l_issues_tbl := p_splitted_instances;
965:
966: x_assy_comp_map_tbl := l_ac_mapping_tbl;
967:
968: EXCEPTION
969: WHEN fnd_api.g_exc_error THEN
970: x_return_status := fnd_api.g_ret_sts_error;
971: END apportion_always;
972:
973:
966: x_assy_comp_map_tbl := l_ac_mapping_tbl;
967:
968: EXCEPTION
969: WHEN fnd_api.g_exc_error THEN
970: x_return_status := fnd_api.g_ret_sts_error;
971: END apportion_always;
972:
973:
974: /* this routine gets the instances created for the asssembly completion instances
998: --
999: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
1000: l_instance_tbl csi_datastructures_pub.instance_tbl;
1001:
1002: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1003: l_msg_data varchar2(2000);
1004: l_msg_count number;
1005:
1006: BEGIN
1004: l_msg_count number;
1005:
1006: BEGIN
1007:
1008: x_return_status := fnd_api.g_ret_sts_success;
1009:
1010: api_log('get_assembly_instances');
1011:
1012: l_completion_quantity := p_completion_quantity;
1032: p_pkg_name => 'csi_item_instance_pub');
1033:
1034: csi_item_instance_pub.get_item_instances(
1035: p_api_version => 1.0,
1036: p_commit => fnd_api.g_false,
1037: p_init_msg_list => fnd_api.g_true,
1038: p_validation_level => fnd_api.g_valid_level_full,
1039: p_instance_query_rec => l_inst_query_rec,
1040: p_party_query_rec => l_party_query_rec,
1033:
1034: csi_item_instance_pub.get_item_instances(
1035: p_api_version => 1.0,
1036: p_commit => fnd_api.g_false,
1037: p_init_msg_list => fnd_api.g_true,
1038: p_validation_level => fnd_api.g_valid_level_full,
1039: p_instance_query_rec => l_inst_query_rec,
1040: p_party_query_rec => l_party_query_rec,
1041: p_account_query_rec => l_pty_acct_query_rec,
1034: csi_item_instance_pub.get_item_instances(
1035: p_api_version => 1.0,
1036: p_commit => fnd_api.g_false,
1037: p_init_msg_list => fnd_api.g_true,
1038: p_validation_level => fnd_api.g_valid_level_full,
1039: p_instance_query_rec => l_inst_query_rec,
1040: p_party_query_rec => l_party_query_rec,
1041: p_account_query_rec => l_pty_acct_query_rec,
1042: p_transaction_id => null,
1039: p_instance_query_rec => l_inst_query_rec,
1040: p_party_query_rec => l_party_query_rec,
1041: p_account_query_rec => l_pty_acct_query_rec,
1042: p_transaction_id => null,
1043: p_resolve_id_columns => fnd_api.g_false,
1044: p_active_instance_only => fnd_api.g_true,
1045: x_instance_header_tbl => l_instance_hdr_tbl,
1046: x_return_status => l_return_status,
1047: x_msg_count => l_msg_count,
1040: p_party_query_rec => l_party_query_rec,
1041: p_account_query_rec => l_pty_acct_query_rec,
1042: p_transaction_id => null,
1043: p_resolve_id_columns => fnd_api.g_false,
1044: p_active_instance_only => fnd_api.g_true,
1045: x_instance_header_tbl => l_instance_hdr_tbl,
1046: x_return_status => l_return_status,
1047: x_msg_count => l_msg_count,
1048: x_msg_data => l_msg_data);
1046: x_return_status => l_return_status,
1047: x_msg_count => l_msg_count,
1048: x_msg_data => l_msg_data);
1049:
1050: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1051: RAISE fnd_api.g_exc_error;
1052: END IF;
1053:
1054: debug('Assembly instances count :'||l_instance_hdr_tbl.COUNT);
1047: x_msg_count => l_msg_count,
1048: x_msg_data => l_msg_data);
1049:
1050: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1051: RAISE fnd_api.g_exc_error;
1052: END IF;
1053:
1054: debug('Assembly instances count :'||l_instance_hdr_tbl.COUNT);
1055:
1059: p_instance_header_tbl => l_instance_hdr_tbl,
1060: x_instance_tbl => l_instance_tbl,
1061: x_return_status => l_return_status);
1062:
1063: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1064: RAISE fnd_api.g_exc_error;
1065: END IF;
1066:
1067: END IF;
1060: x_instance_tbl => l_instance_tbl,
1061: x_return_status => l_return_status);
1062:
1063: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1064: RAISE fnd_api.g_exc_error;
1065: END IF;
1066:
1067: END IF;
1068:
1068:
1069: x_instance_tbl := l_instance_tbl;
1070:
1071: EXCEPTION
1072: WHEN fnd_api.g_exc_error THEN
1073: x_return_status := fnd_api.g_ret_sts_error;
1074:
1075: END get_assembly_instances;
1076:
1069: x_instance_tbl := l_instance_tbl;
1070:
1071: EXCEPTION
1072: WHEN fnd_api.g_exc_error THEN
1073: x_return_status := fnd_api.g_ret_sts_error;
1074:
1075: END get_assembly_instances;
1076:
1077: PROCEDURE get_qty_per_assembly(
1083: IS
1084: l_qty_per_assy number;
1085: BEGIN
1086:
1087: x_return_status := fnd_api.g_ret_sts_success;
1088:
1089: api_log('get_qty_per_assembly');
1090:
1091: SELECT sum(nvl(quantity_per_assembly,0))
1099:
1100: x_qty_per_assembly := abs(l_qty_per_assy);
1101:
1102: EXCEPTION
1103: WHEN fnd_api.g_exc_error THEN
1104: x_return_status := fnd_api.g_ret_sts_error;
1105: END get_qty_per_assembly;
1106:
1107: PROCEDURE get_issued_requirements (
1100: x_qty_per_assembly := abs(l_qty_per_assy);
1101:
1102: EXCEPTION
1103: WHEN fnd_api.g_exc_error THEN
1104: x_return_status := fnd_api.g_ret_sts_error;
1105: END get_qty_per_assembly;
1106:
1107: PROCEDURE get_issued_requirements (
1108: p_wip_entity_id IN number,
1161: l_job_quantity number;
1162: l_requirements_tbl requirements_tbl;
1163: l_ind binary_integer;
1164: l_qty_per_assy number;
1165: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1166:
1167: BEGIN
1168:
1169: x_return_status := fnd_api.g_ret_sts_success;
1165: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1166:
1167: BEGIN
1168:
1169: x_return_status := fnd_api.g_ret_sts_success;
1170:
1171: api_log('get_issued_requirements');
1172:
1173: BEGIN
1227: p_component_item_id => req_rec.inventory_item_id,
1228: x_qty_per_assembly => l_qty_per_assy,
1229: x_return_status => l_return_status);
1230:
1231: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1232: RAISE fnd_api.g_exc_error;
1233: END IF;
1234:
1235: l_requirements_tbl(l_ind).quantity_per_assy := l_qty_per_assy;
1228: x_qty_per_assembly => l_qty_per_assy,
1229: x_return_status => l_return_status);
1230:
1231: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1232: RAISE fnd_api.g_exc_error;
1233: END IF;
1234:
1235: l_requirements_tbl(l_ind).quantity_per_assy := l_qty_per_assy;
1236:
1250:
1251: x_requirements_tbl := l_requirements_tbl;
1252:
1253: EXCEPTION
1254: WHEN fnd_api.g_exc_error THEN
1255: x_return_status := fnd_api.g_ret_sts_error;
1256: END get_issued_requirements;
1257:
1258: PROCEDURE get_issued_instances(
1251: x_requirements_tbl := l_requirements_tbl;
1252:
1253: EXCEPTION
1254: WHEN fnd_api.g_exc_error THEN
1255: x_return_status := fnd_api.g_ret_sts_error;
1256: END get_issued_requirements;
1257:
1258: PROCEDURE get_issued_instances(
1259: p_wip_entity_id IN number,
1272: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
1273:
1274: l_instance_tbl csi_datastructures_pub.instance_tbl;
1275: --
1276: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1277: l_msg_data varchar2(2000);
1278: l_msg_count number;
1279:
1280: BEGIN
1278: l_msg_count number;
1279:
1280: BEGIN
1281:
1282: x_return_status := fnd_api.g_ret_sts_success;
1283:
1284: api_log('get_issued_instances');
1285:
1286: l_inst_query_rec.wip_job_id := p_wip_entity_id;
1294: p_pkg_name => 'csi_item_instance_pub');
1295:
1296: csi_item_instance_pub.get_item_instances(
1297: p_api_version => 1.0,
1298: p_commit => fnd_api.g_false,
1299: p_init_msg_list => fnd_api.g_true,
1300: p_validation_level => fnd_api.g_valid_level_full,
1301: p_instance_query_rec => l_inst_query_rec,
1302: p_party_query_rec => l_party_query_rec,
1295:
1296: csi_item_instance_pub.get_item_instances(
1297: p_api_version => 1.0,
1298: p_commit => fnd_api.g_false,
1299: p_init_msg_list => fnd_api.g_true,
1300: p_validation_level => fnd_api.g_valid_level_full,
1301: p_instance_query_rec => l_inst_query_rec,
1302: p_party_query_rec => l_party_query_rec,
1303: p_account_query_rec => l_pty_acct_query_rec,
1296: csi_item_instance_pub.get_item_instances(
1297: p_api_version => 1.0,
1298: p_commit => fnd_api.g_false,
1299: p_init_msg_list => fnd_api.g_true,
1300: p_validation_level => fnd_api.g_valid_level_full,
1301: p_instance_query_rec => l_inst_query_rec,
1302: p_party_query_rec => l_party_query_rec,
1303: p_account_query_rec => l_pty_acct_query_rec,
1304: p_transaction_id => null,
1301: p_instance_query_rec => l_inst_query_rec,
1302: p_party_query_rec => l_party_query_rec,
1303: p_account_query_rec => l_pty_acct_query_rec,
1304: p_transaction_id => null,
1305: p_resolve_id_columns => fnd_api.g_false,
1306: p_active_instance_only => fnd_api.g_true,
1307: x_instance_header_tbl => l_instance_hdr_tbl,
1308: x_return_status => l_return_status,
1309: x_msg_count => l_msg_count,
1302: p_party_query_rec => l_party_query_rec,
1303: p_account_query_rec => l_pty_acct_query_rec,
1304: p_transaction_id => null,
1305: p_resolve_id_columns => fnd_api.g_false,
1306: p_active_instance_only => fnd_api.g_true,
1307: x_instance_header_tbl => l_instance_hdr_tbl,
1308: x_return_status => l_return_status,
1309: x_msg_count => l_msg_count,
1310: x_msg_data => l_msg_data );
1308: x_return_status => l_return_status,
1309: x_msg_count => l_msg_count,
1310: x_msg_data => l_msg_data );
1311:
1312: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1313: RAISE fnd_api.g_exc_error;
1314: END IF;
1315:
1316: IF l_instance_hdr_tbl.COUNT > 0 THEN
1309: x_msg_count => l_msg_count,
1310: x_msg_data => l_msg_data );
1311:
1312: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1313: RAISE fnd_api.g_exc_error;
1314: END IF;
1315:
1316: IF l_instance_hdr_tbl.COUNT > 0 THEN
1317: debug('Issued instances found for inventory item id: '||p_inventory_item_id);
1323: p_instance_header_tbl => l_instance_hdr_tbl,
1324: x_instance_tbl => l_instance_tbl,
1325: x_return_status => l_return_status);
1326:
1327: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1328: RAISE fnd_api.g_exc_error;
1329: END IF;
1330:
1331: x_instance_tbl := l_instance_tbl;
1324: x_instance_tbl => l_instance_tbl,
1325: x_return_status => l_return_status);
1326:
1327: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1328: RAISE fnd_api.g_exc_error;
1329: END IF;
1330:
1331: x_instance_tbl := l_instance_tbl;
1332:
1330:
1331: x_instance_tbl := l_instance_tbl;
1332:
1333: EXCEPTION
1334: WHEN fnd_api.g_exc_error THEN
1335: x_return_status := fnd_api.g_ret_sts_error;
1336:
1337: END get_issued_instances;
1338:
1331: x_instance_tbl := l_instance_tbl;
1332:
1333: EXCEPTION
1334: WHEN fnd_api.g_exc_error THEN
1335: x_return_status := fnd_api.g_ret_sts_error;
1336:
1337: END get_issued_instances;
1338:
1339: PROCEDURE get_serial_instance(
1351: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
1352: l_instance_tbl csi_datastructures_pub.instance_tbl;
1353:
1354: --
1355: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1356: l_msg_data varchar2(2000);
1357: l_msg_count number;
1358:
1359: l_t_ind binary_integer := 0;
1360: l_tmp_inst_hdr_tbl csi_datastructures_pub.instance_header_tbl;
1361:
1362: BEGIN
1363:
1364: x_return_status := fnd_api.g_ret_sts_success;
1365:
1366: api_log('get_serial_instance');
1367:
1368: l_inst_query_rec.inventory_item_id := p_inventory_item_id;
1373: p_pkg_name => 'csi_item_instance_pub');
1374:
1375: csi_item_instance_pub.get_item_instances(
1376: p_api_version => 1.0,
1377: p_commit => fnd_api.g_false,
1378: p_init_msg_list => fnd_api.g_true,
1379: p_validation_level => fnd_api.g_valid_level_full,
1380: p_instance_query_rec => l_inst_query_rec,
1381: p_party_query_rec => l_party_query_rec,
1374:
1375: csi_item_instance_pub.get_item_instances(
1376: p_api_version => 1.0,
1377: p_commit => fnd_api.g_false,
1378: p_init_msg_list => fnd_api.g_true,
1379: p_validation_level => fnd_api.g_valid_level_full,
1380: p_instance_query_rec => l_inst_query_rec,
1381: p_party_query_rec => l_party_query_rec,
1382: p_account_query_rec => l_pty_acct_query_rec,
1375: csi_item_instance_pub.get_item_instances(
1376: p_api_version => 1.0,
1377: p_commit => fnd_api.g_false,
1378: p_init_msg_list => fnd_api.g_true,
1379: p_validation_level => fnd_api.g_valid_level_full,
1380: p_instance_query_rec => l_inst_query_rec,
1381: p_party_query_rec => l_party_query_rec,
1382: p_account_query_rec => l_pty_acct_query_rec,
1383: p_transaction_id => null,
1380: p_instance_query_rec => l_inst_query_rec,
1381: p_party_query_rec => l_party_query_rec,
1382: p_account_query_rec => l_pty_acct_query_rec,
1383: p_transaction_id => null,
1384: p_resolve_id_columns => fnd_api.g_false,
1385: p_active_instance_only => fnd_api.g_false,
1386: x_instance_header_tbl => l_instance_hdr_tbl,
1387: x_return_status => l_return_status,
1388: x_msg_count => l_msg_count,
1381: p_party_query_rec => l_party_query_rec,
1382: p_account_query_rec => l_pty_acct_query_rec,
1383: p_transaction_id => null,
1384: p_resolve_id_columns => fnd_api.g_false,
1385: p_active_instance_only => fnd_api.g_false,
1386: x_instance_header_tbl => l_instance_hdr_tbl,
1387: x_return_status => l_return_status,
1388: x_msg_count => l_msg_count,
1389: x_msg_data => l_msg_data);
1387: x_return_status => l_return_status,
1388: x_msg_count => l_msg_count,
1389: x_msg_data => l_msg_data);
1390:
1391: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1392: RAISE fnd_api.g_exc_error;
1393: END IF;
1394:
1395: IF l_instance_hdr_tbl.COUNT > 0 THEN
1388: x_msg_count => l_msg_count,
1389: x_msg_data => l_msg_data);
1390:
1391: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1392: RAISE fnd_api.g_exc_error;
1393: END IF;
1394:
1395: IF l_instance_hdr_tbl.COUNT > 0 THEN
1396: debug('instance tbl count :'||l_instance_hdr_tbl.COUNT);
1418:
1419: x_instance_tbl := l_instance_tbl;
1420:
1421: EXCEPTION
1422: WHEN fnd_api.g_exc_error THEN
1423: x_return_status := fnd_api.g_ret_sts_error;
1424: END get_serial_instance;
1425:
1426: PROCEDURE split_instance_using_ratio(
1419: x_instance_tbl := l_instance_tbl;
1420:
1421: EXCEPTION
1422: WHEN fnd_api.g_exc_error THEN
1423: x_return_status := fnd_api.g_ret_sts_error;
1424: END get_serial_instance;
1425:
1426: PROCEDURE split_instance_using_ratio(
1427: p_instance_id IN number,
1436: l_qty_remaining number;
1437:
1438: l_init_instance_rec csi_datastructures_pub.instance_rec;
1439:
1440: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1441: l_msg_data varchar2(2000);
1442: l_msg_count number;
1443:
1444: l_split_flag boolean := FALSE;
1481: c_pa_ind binary_integer;
1482:
1483: BEGIN
1484:
1485: x_return_status := fnd_api.g_ret_sts_success;
1486:
1487: api_log('split_instance_using_ratio');
1488:
1489: l_s_ind := 0;
1496:
1497: -- get the instance party and party account info
1498: csi_item_instance_pub.get_item_instance_details(
1499: p_api_version => 1.0,
1500: p_commit => fnd_api.g_false,
1501: p_init_msg_list => fnd_api.g_true,
1502: p_validation_level => fnd_api.g_valid_level_full,
1503: p_instance_rec => l_g_instance_rec,
1504: p_get_parties => fnd_api.g_true,
1497: -- get the instance party and party account info
1498: csi_item_instance_pub.get_item_instance_details(
1499: p_api_version => 1.0,
1500: p_commit => fnd_api.g_false,
1501: p_init_msg_list => fnd_api.g_true,
1502: p_validation_level => fnd_api.g_valid_level_full,
1503: p_instance_rec => l_g_instance_rec,
1504: p_get_parties => fnd_api.g_true,
1505: p_party_header_tbl => l_g_ph_tbl,
1498: csi_item_instance_pub.get_item_instance_details(
1499: p_api_version => 1.0,
1500: p_commit => fnd_api.g_false,
1501: p_init_msg_list => fnd_api.g_true,
1502: p_validation_level => fnd_api.g_valid_level_full,
1503: p_instance_rec => l_g_instance_rec,
1504: p_get_parties => fnd_api.g_true,
1505: p_party_header_tbl => l_g_ph_tbl,
1506: p_get_accounts => fnd_api.g_true,
1500: p_commit => fnd_api.g_false,
1501: p_init_msg_list => fnd_api.g_true,
1502: p_validation_level => fnd_api.g_valid_level_full,
1503: p_instance_rec => l_g_instance_rec,
1504: p_get_parties => fnd_api.g_true,
1505: p_party_header_tbl => l_g_ph_tbl,
1506: p_get_accounts => fnd_api.g_true,
1507: p_account_header_tbl => l_g_pah_tbl,
1508: p_get_org_assignments => fnd_api.g_false,
1502: p_validation_level => fnd_api.g_valid_level_full,
1503: p_instance_rec => l_g_instance_rec,
1504: p_get_parties => fnd_api.g_true,
1505: p_party_header_tbl => l_g_ph_tbl,
1506: p_get_accounts => fnd_api.g_true,
1507: p_account_header_tbl => l_g_pah_tbl,
1508: p_get_org_assignments => fnd_api.g_false,
1509: p_org_header_tbl => l_g_ouh_tbl,
1510: p_get_pricing_attribs => fnd_api.g_false,
1504: p_get_parties => fnd_api.g_true,
1505: p_party_header_tbl => l_g_ph_tbl,
1506: p_get_accounts => fnd_api.g_true,
1507: p_account_header_tbl => l_g_pah_tbl,
1508: p_get_org_assignments => fnd_api.g_false,
1509: p_org_header_tbl => l_g_ouh_tbl,
1510: p_get_pricing_attribs => fnd_api.g_false,
1511: p_pricing_attrib_tbl => l_g_pa_tbl,
1512: p_get_ext_attribs => fnd_api.g_false,
1506: p_get_accounts => fnd_api.g_true,
1507: p_account_header_tbl => l_g_pah_tbl,
1508: p_get_org_assignments => fnd_api.g_false,
1509: p_org_header_tbl => l_g_ouh_tbl,
1510: p_get_pricing_attribs => fnd_api.g_false,
1511: p_pricing_attrib_tbl => l_g_pa_tbl,
1512: p_get_ext_attribs => fnd_api.g_false,
1513: p_ext_attrib_tbl => l_g_eav_tbl,
1514: p_ext_attrib_def_tbl => l_g_ea_tbl,
1508: p_get_org_assignments => fnd_api.g_false,
1509: p_org_header_tbl => l_g_ouh_tbl,
1510: p_get_pricing_attribs => fnd_api.g_false,
1511: p_pricing_attrib_tbl => l_g_pa_tbl,
1512: p_get_ext_attribs => fnd_api.g_false,
1513: p_ext_attrib_tbl => l_g_eav_tbl,
1514: p_ext_attrib_def_tbl => l_g_ea_tbl,
1515: p_get_asset_assignments => fnd_api.g_false,
1516: p_asset_header_tbl => l_g_iah_tbl,
1511: p_pricing_attrib_tbl => l_g_pa_tbl,
1512: p_get_ext_attribs => fnd_api.g_false,
1513: p_ext_attrib_tbl => l_g_eav_tbl,
1514: p_ext_attrib_def_tbl => l_g_ea_tbl,
1515: p_get_asset_assignments => fnd_api.g_false,
1516: p_asset_header_tbl => l_g_iah_tbl,
1517: p_time_stamp => l_g_time_stamp,
1518: x_return_status => l_return_status,
1519: x_msg_count => l_msg_count,
1518: x_return_status => l_return_status,
1519: x_msg_count => l_msg_count,
1520: x_msg_data => l_msg_data);
1521:
1522: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1523: RAISE fnd_api.g_exc_error;
1524: END IF;
1525:
1526: make_non_hdr_rec(
1519: x_msg_count => l_msg_count,
1520: x_msg_data => l_msg_data);
1521:
1522: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1523: RAISE fnd_api.g_exc_error;
1524: END IF;
1525:
1526: make_non_hdr_rec(
1527: p_instance_hdr_rec => l_g_instance_rec,
1551:
1552: l_c_instance_rec := l_instance_rec;
1553:
1554: -- substitute create specific attributes
1555: l_c_instance_rec.instance_id := fnd_api.g_miss_num;
1556: l_c_instance_rec.instance_number := fnd_api.g_miss_char;
1557: l_c_instance_rec.object_version_number := 1.0;
1558: l_c_instance_rec.vld_organization_id := p_organization_id;
1559: l_c_instance_rec.quantity := p_qty_ratio;
1552: l_c_instance_rec := l_instance_rec;
1553:
1554: -- substitute create specific attributes
1555: l_c_instance_rec.instance_id := fnd_api.g_miss_num;
1556: l_c_instance_rec.instance_number := fnd_api.g_miss_char;
1557: l_c_instance_rec.object_version_number := 1.0;
1558: l_c_instance_rec.vld_organization_id := p_organization_id;
1559: l_c_instance_rec.quantity := p_qty_ratio;
1560:
1566: IF l_g_ph_tbl.COUNT > 0 THEN
1567:
1568: FOR l_pt_ind IN l_g_ph_tbl.FIRST ..l_g_ph_tbl.LAST
1569: LOOP
1570: l_c_parties_tbl(l_pt_ind).instance_party_id := fnd_api.g_miss_num;
1571: l_c_parties_tbl(l_pt_ind).instance_id := fnd_api.g_miss_num;
1572: l_c_parties_tbl(l_pt_ind).party_id :=
1573: l_g_ph_tbl(l_pt_ind).party_id;
1574: l_c_parties_tbl(l_pt_ind).party_source_table :=
1567:
1568: FOR l_pt_ind IN l_g_ph_tbl.FIRST ..l_g_ph_tbl.LAST
1569: LOOP
1570: l_c_parties_tbl(l_pt_ind).instance_party_id := fnd_api.g_miss_num;
1571: l_c_parties_tbl(l_pt_ind).instance_id := fnd_api.g_miss_num;
1572: l_c_parties_tbl(l_pt_ind).party_id :=
1573: l_g_ph_tbl(l_pt_ind).party_id;
1574: l_c_parties_tbl(l_pt_ind).party_source_table :=
1575: l_g_ph_tbl(l_pt_ind).party_source_table;
1584: IF l_g_pah_tbl(l_pa_ind).instance_party_id = l_g_ph_tbl(l_pt_ind).instance_party_id
1585: THEN
1586: c_pa_ind := c_pa_ind + 1;
1587: l_c_pty_accts_tbl(c_pa_ind).parent_tbl_index := l_pt_ind;
1588: l_c_pty_accts_tbl(c_pa_ind).ip_account_id := fnd_api.g_miss_num;
1589: l_c_pty_accts_tbl(c_pa_ind).instance_party_id := fnd_api.g_miss_num;
1590: l_c_pty_accts_tbl(c_pa_ind).party_account_id :=
1591: l_g_pah_tbl(l_pa_ind).party_account_id;
1592: l_c_pty_accts_tbl(c_pa_ind).relationship_type_code :=
1585: THEN
1586: c_pa_ind := c_pa_ind + 1;
1587: l_c_pty_accts_tbl(c_pa_ind).parent_tbl_index := l_pt_ind;
1588: l_c_pty_accts_tbl(c_pa_ind).ip_account_id := fnd_api.g_miss_num;
1589: l_c_pty_accts_tbl(c_pa_ind).instance_party_id := fnd_api.g_miss_num;
1590: l_c_pty_accts_tbl(c_pa_ind).party_account_id :=
1591: l_g_pah_tbl(l_pa_ind).party_account_id;
1592: l_c_pty_accts_tbl(c_pa_ind).relationship_type_code :=
1593: l_g_pah_tbl(l_pa_ind).relationship_type_code;
1604: p_api_name => 'create_item_instance');
1605:
1606: csi_item_instance_pub.create_item_instance(
1607: p_api_version => 1.0,
1608: p_commit => fnd_api.g_false,
1609: p_init_msg_list => fnd_api.g_true,
1610: p_validation_level => fnd_api.g_valid_level_full,
1611: p_instance_rec => l_c_instance_rec,
1612: p_party_tbl => l_c_parties_tbl,
1605:
1606: csi_item_instance_pub.create_item_instance(
1607: p_api_version => 1.0,
1608: p_commit => fnd_api.g_false,
1609: p_init_msg_list => fnd_api.g_true,
1610: p_validation_level => fnd_api.g_valid_level_full,
1611: p_instance_rec => l_c_instance_rec,
1612: p_party_tbl => l_c_parties_tbl,
1613: p_account_tbl => l_c_pty_accts_tbl,
1606: csi_item_instance_pub.create_item_instance(
1607: p_api_version => 1.0,
1608: p_commit => fnd_api.g_false,
1609: p_init_msg_list => fnd_api.g_true,
1610: p_validation_level => fnd_api.g_valid_level_full,
1611: p_instance_rec => l_c_instance_rec,
1612: p_party_tbl => l_c_parties_tbl,
1613: p_account_tbl => l_c_pty_accts_tbl,
1614: p_org_assignments_tbl => l_c_org_units_tbl,
1620: x_msg_count => l_msg_count,
1621: x_msg_data => l_msg_data );
1622:
1623: -- For Bug 4057183
1624: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1625: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1626: RAISE fnd_api.g_exc_error;
1627: END IF;
1628:
1621: x_msg_data => l_msg_data );
1622:
1623: -- For Bug 4057183
1624: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1625: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1626: RAISE fnd_api.g_exc_error;
1627: END IF;
1628:
1629: debug(' New Instance ID :'||l_c_instance_rec.instance_id);
1622:
1623: -- For Bug 4057183
1624: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1625: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1626: RAISE fnd_api.g_exc_error;
1627: END IF;
1628:
1629: debug(' New Instance ID :'||l_c_instance_rec.instance_id);
1630:
1646: p_api_name => 'update_item_instance');
1647:
1648: csi_item_instance_pub.update_item_instance(
1649: p_api_version => 1.0,
1650: p_commit => fnd_api.g_false,
1651: p_init_msg_list => fnd_api.g_true,
1652: p_validation_level => fnd_api.g_valid_level_full,
1653: p_instance_rec => l_u_instance_rec,
1654: p_party_tbl => l_u_parties_tbl,
1647:
1648: csi_item_instance_pub.update_item_instance(
1649: p_api_version => 1.0,
1650: p_commit => fnd_api.g_false,
1651: p_init_msg_list => fnd_api.g_true,
1652: p_validation_level => fnd_api.g_valid_level_full,
1653: p_instance_rec => l_u_instance_rec,
1654: p_party_tbl => l_u_parties_tbl,
1655: p_account_tbl => l_u_pty_accts_tbl,
1648: csi_item_instance_pub.update_item_instance(
1649: p_api_version => 1.0,
1650: p_commit => fnd_api.g_false,
1651: p_init_msg_list => fnd_api.g_true,
1652: p_validation_level => fnd_api.g_valid_level_full,
1653: p_instance_rec => l_u_instance_rec,
1654: p_party_tbl => l_u_parties_tbl,
1655: p_account_tbl => l_u_pty_accts_tbl,
1656: p_org_assignments_tbl => l_u_org_units_tbl,
1663: x_msg_count => l_msg_count,
1664: x_msg_data => l_msg_data);
1665:
1666: -- For Bug 4057183
1667: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1668: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1669: RAISE fnd_api.g_exc_error;
1670: END IF;
1671:
1664: x_msg_data => l_msg_data);
1665:
1666: -- For Bug 4057183
1667: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1668: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1669: RAISE fnd_api.g_exc_error;
1670: END IF;
1671:
1672: ELSE
1665:
1666: -- For Bug 4057183
1667: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1668: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1669: RAISE fnd_api.g_exc_error;
1670: END IF;
1671:
1672: ELSE
1673:
1703:
1704: x_splitted_instances := l_splitted_instances;
1705:
1706: EXCEPTION
1707: WHEN fnd_api.g_exc_error THEN
1708: x_return_status := fnd_api.g_ret_sts_error;
1709: END split_instance_using_ratio;
1710:
1711:
1704: x_splitted_instances := l_splitted_instances;
1705:
1706: EXCEPTION
1707: WHEN fnd_api.g_exc_error THEN
1708: x_return_status := fnd_api.g_ret_sts_error;
1709: END split_instance_using_ratio;
1710:
1711:
1712: PROCEDURE split_instances_using_ratio(
1717: px_csi_txn_rec IN OUT NOCOPY csi_datastructures_pub.transaction_rec,
1718: x_splitted_instances OUT NOCOPY csi_datastructures_pub.instance_tbl,
1719: x_return_status OUT NOCOPY varchar2)
1720: IS
1721: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1722: l_splitted_instances csi_datastructures_pub.instance_tbl;
1723: BEGIN
1724:
1725: x_return_status := fnd_api.g_ret_sts_success;
1721: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1722: l_splitted_instances csi_datastructures_pub.instance_tbl;
1723: BEGIN
1724:
1725: x_return_status := fnd_api.g_ret_sts_success;
1726:
1727: api_log('split_instances_using_ratio');
1728:
1729: IF p_issued_instances.COUNT > 0 THEN
1738: px_csi_txn_rec => px_csi_txn_rec,
1739: x_splitted_instances => l_splitted_instances,
1740: x_return_status => l_return_status);
1741:
1742: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1743: RAISE fnd_api.g_exc_error;
1744: END IF;
1745:
1746: END LOOP;
1739: x_splitted_instances => l_splitted_instances,
1740: x_return_status => l_return_status);
1741:
1742: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1743: RAISE fnd_api.g_exc_error;
1744: END IF;
1745:
1746: END LOOP;
1747: END IF;
1748:
1749: x_splitted_instances := l_splitted_instances;
1750:
1751: EXCEPTION
1752: WHEN fnd_api.g_exc_error THEN
1753: x_return_status := fnd_api.g_ret_sts_success;
1754: END split_instances_using_ratio;
1755:
1756:
1749: x_splitted_instances := l_splitted_instances;
1750:
1751: EXCEPTION
1752: WHEN fnd_api.g_exc_error THEN
1753: x_return_status := fnd_api.g_ret_sts_success;
1754: END split_instances_using_ratio;
1755:
1756:
1757: PROCEDURE split_issued_instances(
1768: l_remaining_quantity number;
1769:
1770: l_new_instance_rec csi_datastructures_pub.instance_rec;
1771:
1772: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
1773: l_msg_data varchar2(2000);
1774: l_msg_count number;
1775:
1776: l_split_counter number;
1813: --
1814:
1815: BEGIN
1816:
1817: x_return_status := fnd_api.g_ret_sts_success;
1818:
1819: api_log('split_issued_instances');
1820:
1821: l_s_ind := 0;
1841:
1842: -- get the instance party and party account info
1843: csi_item_instance_pub.get_item_instance_details(
1844: p_api_version => 1.0,
1845: p_commit => fnd_api.g_false,
1846: p_init_msg_list => fnd_api.g_true,
1847: p_validation_level => fnd_api.g_valid_level_full,
1848: p_instance_rec => l_g_instance_rec,
1849: p_get_parties => fnd_api.g_true,
1842: -- get the instance party and party account info
1843: csi_item_instance_pub.get_item_instance_details(
1844: p_api_version => 1.0,
1845: p_commit => fnd_api.g_false,
1846: p_init_msg_list => fnd_api.g_true,
1847: p_validation_level => fnd_api.g_valid_level_full,
1848: p_instance_rec => l_g_instance_rec,
1849: p_get_parties => fnd_api.g_true,
1850: p_party_header_tbl => l_g_ph_tbl,
1843: csi_item_instance_pub.get_item_instance_details(
1844: p_api_version => 1.0,
1845: p_commit => fnd_api.g_false,
1846: p_init_msg_list => fnd_api.g_true,
1847: p_validation_level => fnd_api.g_valid_level_full,
1848: p_instance_rec => l_g_instance_rec,
1849: p_get_parties => fnd_api.g_true,
1850: p_party_header_tbl => l_g_ph_tbl,
1851: p_get_accounts => fnd_api.g_true,
1845: p_commit => fnd_api.g_false,
1846: p_init_msg_list => fnd_api.g_true,
1847: p_validation_level => fnd_api.g_valid_level_full,
1848: p_instance_rec => l_g_instance_rec,
1849: p_get_parties => fnd_api.g_true,
1850: p_party_header_tbl => l_g_ph_tbl,
1851: p_get_accounts => fnd_api.g_true,
1852: p_account_header_tbl => l_g_pah_tbl,
1853: p_get_org_assignments => fnd_api.g_false,
1847: p_validation_level => fnd_api.g_valid_level_full,
1848: p_instance_rec => l_g_instance_rec,
1849: p_get_parties => fnd_api.g_true,
1850: p_party_header_tbl => l_g_ph_tbl,
1851: p_get_accounts => fnd_api.g_true,
1852: p_account_header_tbl => l_g_pah_tbl,
1853: p_get_org_assignments => fnd_api.g_false,
1854: p_org_header_tbl => l_g_ouh_tbl,
1855: p_get_pricing_attribs => fnd_api.g_false,
1849: p_get_parties => fnd_api.g_true,
1850: p_party_header_tbl => l_g_ph_tbl,
1851: p_get_accounts => fnd_api.g_true,
1852: p_account_header_tbl => l_g_pah_tbl,
1853: p_get_org_assignments => fnd_api.g_false,
1854: p_org_header_tbl => l_g_ouh_tbl,
1855: p_get_pricing_attribs => fnd_api.g_false,
1856: p_pricing_attrib_tbl => l_g_pa_tbl,
1857: p_get_ext_attribs => fnd_api.g_false,
1851: p_get_accounts => fnd_api.g_true,
1852: p_account_header_tbl => l_g_pah_tbl,
1853: p_get_org_assignments => fnd_api.g_false,
1854: p_org_header_tbl => l_g_ouh_tbl,
1855: p_get_pricing_attribs => fnd_api.g_false,
1856: p_pricing_attrib_tbl => l_g_pa_tbl,
1857: p_get_ext_attribs => fnd_api.g_false,
1858: p_ext_attrib_tbl => l_g_eav_tbl,
1859: p_ext_attrib_def_tbl => l_g_ea_tbl,
1853: p_get_org_assignments => fnd_api.g_false,
1854: p_org_header_tbl => l_g_ouh_tbl,
1855: p_get_pricing_attribs => fnd_api.g_false,
1856: p_pricing_attrib_tbl => l_g_pa_tbl,
1857: p_get_ext_attribs => fnd_api.g_false,
1858: p_ext_attrib_tbl => l_g_eav_tbl,
1859: p_ext_attrib_def_tbl => l_g_ea_tbl,
1860: p_get_asset_assignments => fnd_api.g_false,
1861: p_asset_header_tbl => l_g_iah_tbl,
1856: p_pricing_attrib_tbl => l_g_pa_tbl,
1857: p_get_ext_attribs => fnd_api.g_false,
1858: p_ext_attrib_tbl => l_g_eav_tbl,
1859: p_ext_attrib_def_tbl => l_g_ea_tbl,
1860: p_get_asset_assignments => fnd_api.g_false,
1861: p_asset_header_tbl => l_g_iah_tbl,
1862: p_time_stamp => l_g_time_stamp,
1863: x_return_status => l_return_status,
1864: x_msg_count => l_msg_count,
1863: x_return_status => l_return_status,
1864: x_msg_count => l_msg_count,
1865: x_msg_data => l_msg_data);
1866:
1867: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1868: RAISE fnd_api.g_exc_error;
1869: END IF;
1870:
1871: l_remaining_quantity := l_g_instance_rec.quantity;
1864: x_msg_count => l_msg_count,
1865: x_msg_data => l_msg_data);
1866:
1867: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1868: RAISE fnd_api.g_exc_error;
1869: END IF;
1870:
1871: l_remaining_quantity := l_g_instance_rec.quantity;
1872:
1889: -- take all that is in issued instance rec
1890: l_c_instance_rec := l_instance_rec;
1891:
1892: -- substitute create specific attributes
1893: l_c_instance_rec.instance_id := fnd_api.g_miss_num;
1894: l_c_instance_rec.instance_number := fnd_api.g_miss_char;
1895: l_c_instance_rec.object_version_number := 1.0;
1896: l_c_instance_rec.vld_organization_id := p_organization_id;
1897: l_c_instance_rec.quantity := l_allocated_quantity;
1890: l_c_instance_rec := l_instance_rec;
1891:
1892: -- substitute create specific attributes
1893: l_c_instance_rec.instance_id := fnd_api.g_miss_num;
1894: l_c_instance_rec.instance_number := fnd_api.g_miss_char;
1895: l_c_instance_rec.object_version_number := 1.0;
1896: l_c_instance_rec.vld_organization_id := p_organization_id;
1897: l_c_instance_rec.quantity := l_allocated_quantity;
1898:
1903:
1904: IF l_g_ph_tbl.COUNT > 0 THEN
1905: FOR l_pt_ind IN l_g_ph_tbl.FIRST ..l_g_ph_tbl.LAST
1906: LOOP
1907: l_c_parties_tbl(l_pt_ind).instance_party_id := fnd_api.g_miss_num;
1908: l_c_parties_tbl(l_pt_ind).instance_id := fnd_api.g_miss_num;
1909: l_c_parties_tbl(l_pt_ind).party_id :=
1910: l_g_ph_tbl(l_pt_ind).party_id;
1911: l_c_parties_tbl(l_pt_ind).party_source_table :=
1904: IF l_g_ph_tbl.COUNT > 0 THEN
1905: FOR l_pt_ind IN l_g_ph_tbl.FIRST ..l_g_ph_tbl.LAST
1906: LOOP
1907: l_c_parties_tbl(l_pt_ind).instance_party_id := fnd_api.g_miss_num;
1908: l_c_parties_tbl(l_pt_ind).instance_id := fnd_api.g_miss_num;
1909: l_c_parties_tbl(l_pt_ind).party_id :=
1910: l_g_ph_tbl(l_pt_ind).party_id;
1911: l_c_parties_tbl(l_pt_ind).party_source_table :=
1912: l_g_ph_tbl(l_pt_ind).party_source_table;
1923: l_g_ph_tbl(l_pt_ind).instance_party_id
1924: THEN
1925: c_pa_ind := c_pa_ind + 1;
1926: l_c_pty_accts_tbl(c_pa_ind).parent_tbl_index := l_pt_ind;
1927: l_c_pty_accts_tbl(c_pa_ind).ip_account_id := fnd_api.g_miss_num;
1928: l_c_pty_accts_tbl(c_pa_ind).instance_party_id := fnd_api.g_miss_num;
1929: l_c_pty_accts_tbl(c_pa_ind).party_account_id :=
1930: l_g_pah_tbl(l_pa_ind).party_account_id;
1931: l_c_pty_accts_tbl(c_pa_ind).relationship_type_code :=
1924: THEN
1925: c_pa_ind := c_pa_ind + 1;
1926: l_c_pty_accts_tbl(c_pa_ind).parent_tbl_index := l_pt_ind;
1927: l_c_pty_accts_tbl(c_pa_ind).ip_account_id := fnd_api.g_miss_num;
1928: l_c_pty_accts_tbl(c_pa_ind).instance_party_id := fnd_api.g_miss_num;
1929: l_c_pty_accts_tbl(c_pa_ind).party_account_id :=
1930: l_g_pah_tbl(l_pa_ind).party_account_id;
1931: l_c_pty_accts_tbl(c_pa_ind).relationship_type_code :=
1932: l_g_pah_tbl(l_pa_ind).relationship_type_code;
1943: p_api_name => 'create_item_instance');
1944:
1945: csi_item_instance_pub.create_item_instance(
1946: p_api_version => 1.0,
1947: p_commit => fnd_api.g_false,
1948: p_init_msg_list => fnd_api.g_true,
1949: p_validation_level => fnd_api.g_valid_level_full,
1950: p_instance_rec => l_c_instance_rec,
1951: p_party_tbl => l_c_parties_tbl,
1944:
1945: csi_item_instance_pub.create_item_instance(
1946: p_api_version => 1.0,
1947: p_commit => fnd_api.g_false,
1948: p_init_msg_list => fnd_api.g_true,
1949: p_validation_level => fnd_api.g_valid_level_full,
1950: p_instance_rec => l_c_instance_rec,
1951: p_party_tbl => l_c_parties_tbl,
1952: p_account_tbl => l_c_pty_accts_tbl,
1945: csi_item_instance_pub.create_item_instance(
1946: p_api_version => 1.0,
1947: p_commit => fnd_api.g_false,
1948: p_init_msg_list => fnd_api.g_true,
1949: p_validation_level => fnd_api.g_valid_level_full,
1950: p_instance_rec => l_c_instance_rec,
1951: p_party_tbl => l_c_parties_tbl,
1952: p_account_tbl => l_c_pty_accts_tbl,
1953: p_org_assignments_tbl => l_c_org_units_tbl,
1959: x_msg_count => l_msg_count,
1960: x_msg_data => l_msg_data );
1961:
1962: -- For Bug 4057183
1963: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1964: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1965: RAISE fnd_api.g_exc_error;
1966: END IF;
1967:
1960: x_msg_data => l_msg_data );
1961:
1962: -- For Bug 4057183
1963: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1964: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1965: RAISE fnd_api.g_exc_error;
1966: END IF;
1967:
1968: debug(' New Instance ID :'||l_c_instance_rec.instance_id);
1961:
1962: -- For Bug 4057183
1963: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
1964: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
1965: RAISE fnd_api.g_exc_error;
1966: END IF;
1967:
1968: debug(' New Instance ID :'||l_c_instance_rec.instance_id);
1969:
1986: p_api_name => 'update_item_instance');
1987:
1988: csi_item_instance_pub.update_item_instance(
1989: p_api_version => 1.0,
1990: p_commit => fnd_api.g_false,
1991: p_init_msg_list => fnd_api.g_true,
1992: p_validation_level => fnd_api.g_valid_level_full,
1993: p_instance_rec => l_u_instance_rec,
1994: p_party_tbl => l_u_parties_tbl,
1987:
1988: csi_item_instance_pub.update_item_instance(
1989: p_api_version => 1.0,
1990: p_commit => fnd_api.g_false,
1991: p_init_msg_list => fnd_api.g_true,
1992: p_validation_level => fnd_api.g_valid_level_full,
1993: p_instance_rec => l_u_instance_rec,
1994: p_party_tbl => l_u_parties_tbl,
1995: p_account_tbl => l_u_pty_accts_tbl,
1988: csi_item_instance_pub.update_item_instance(
1989: p_api_version => 1.0,
1990: p_commit => fnd_api.g_false,
1991: p_init_msg_list => fnd_api.g_true,
1992: p_validation_level => fnd_api.g_valid_level_full,
1993: p_instance_rec => l_u_instance_rec,
1994: p_party_tbl => l_u_parties_tbl,
1995: p_account_tbl => l_u_pty_accts_tbl,
1996: p_org_assignments_tbl => l_u_org_units_tbl,
2003: x_msg_count => l_msg_count,
2004: x_msg_data => l_msg_data);
2005:
2006: -- For Bug 4057183
2007: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
2008: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
2009: RAISE fnd_api.g_exc_error;
2010: END IF;
2011:
2004: x_msg_data => l_msg_data);
2005:
2006: -- For Bug 4057183
2007: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
2008: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
2009: RAISE fnd_api.g_exc_error;
2010: END IF;
2011:
2012: IF l_remaining_quantity <= l_allocated_quantity THEN
2005:
2006: -- For Bug 4057183
2007: -- IF l_return_status <> fnd_api.g_ret_sts_success THEN
2008: IF l_return_status not in (fnd_api.g_ret_sts_success,'W') THEN
2009: RAISE fnd_api.g_exc_error;
2010: END IF;
2011:
2012: IF l_remaining_quantity <= l_allocated_quantity THEN
2013: l_s_ind := l_s_ind + 1;
2031:
2032: x_splitted_instances := l_splitted_instances;
2033:
2034: EXCEPTION
2035: WHEN fnd_api.g_exc_error THEN
2036: x_return_status := fnd_api.g_ret_sts_error;
2037: END split_issued_instances;
2038:
2039: PROCEDURE create_assy_comp_relation(
2032: x_splitted_instances := l_splitted_instances;
2033:
2034: EXCEPTION
2035: WHEN fnd_api.g_exc_error THEN
2036: x_return_status := fnd_api.g_ret_sts_error;
2037: END split_issued_instances;
2038:
2039: PROCEDURE create_assy_comp_relation(
2040: p_assy_comp_map_tbl IN assy_comp_map_tbl,
2043: IS
2044:
2045: l_ii_rltns_tbl csi_datastructures_pub.ii_relationship_tbl;
2046:
2047: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2048: l_msg_count number;
2049: l_msg_data varchar2(2000);
2050: l_rltn_exists varchar2(1) := 'N';
2051:
2052: l_iir_ind binary_integer := 0;
2053:
2054: BEGIN
2055:
2056: x_return_status := fnd_api.g_ret_sts_success;
2057:
2058: api_log('create_assy_comp_relation');
2059:
2060: IF p_assy_comp_map_tbl.COUNT > 0 THEN
2082: END;
2083:
2084: IF l_rltn_exists = 'N' THEN
2085: l_iir_ind := l_iir_ind + 1;
2086: l_ii_rltns_tbl(l_iir_ind).relationship_id := fnd_api.g_miss_num;
2087: l_ii_rltns_tbl(l_iir_ind).subject_id := p_assy_comp_map_tbl(l_ind).comp_instance_id;
2088: l_ii_rltns_tbl(l_iir_ind).object_id := p_assy_comp_map_tbl(l_ind).assy_instance_id;
2089: l_ii_rltns_tbl(l_iir_ind).relationship_type_code := 'COMPONENT-OF';
2090: END IF;
2098: p_api_name => 'create_relationship');
2099:
2100: csi_ii_relationships_pub.create_relationship(
2101: p_api_version => 1.0,
2102: p_commit => fnd_api.g_false,
2103: p_init_msg_list => fnd_api.g_true,
2104: p_validation_level => fnd_api.g_valid_level_full,
2105: p_relationship_tbl => l_ii_rltns_tbl,
2106: p_txn_rec => px_csi_txn_rec,
2099:
2100: csi_ii_relationships_pub.create_relationship(
2101: p_api_version => 1.0,
2102: p_commit => fnd_api.g_false,
2103: p_init_msg_list => fnd_api.g_true,
2104: p_validation_level => fnd_api.g_valid_level_full,
2105: p_relationship_tbl => l_ii_rltns_tbl,
2106: p_txn_rec => px_csi_txn_rec,
2107: x_return_status => l_return_status,
2100: csi_ii_relationships_pub.create_relationship(
2101: p_api_version => 1.0,
2102: p_commit => fnd_api.g_false,
2103: p_init_msg_list => fnd_api.g_true,
2104: p_validation_level => fnd_api.g_valid_level_full,
2105: p_relationship_tbl => l_ii_rltns_tbl,
2106: p_txn_rec => px_csi_txn_rec,
2107: x_return_status => l_return_status,
2108: x_msg_count => l_msg_count,
2107: x_return_status => l_return_status,
2108: x_msg_count => l_msg_count,
2109: x_msg_data => l_msg_data);
2110:
2111: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2112: debug('Error in csi_ii_relationships_pub.create_relationship.');
2113: RAISE fnd_api.g_exc_error;
2114: END IF;
2115:
2109: x_msg_data => l_msg_data);
2110:
2111: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2112: debug('Error in csi_ii_relationships_pub.create_relationship.');
2113: RAISE fnd_api.g_exc_error;
2114: END IF;
2115:
2116:
2117: EXCEPTION
2114: END IF;
2115:
2116:
2117: EXCEPTION
2118: WHEN fnd_api.g_exc_error THEN
2119: x_return_status := fnd_api.g_ret_sts_error;
2120: END create_assy_comp_relation;
2121:
2122: PROCEDURE get_genealogy_children(
2115:
2116:
2117: EXCEPTION
2118: WHEN fnd_api.g_exc_error THEN
2119: x_return_status := fnd_api.g_ret_sts_error;
2120: END create_assy_comp_relation;
2121:
2122: PROCEDURE get_genealogy_children(
2123: px_assembly_instances IN OUT NOCOPY csi_datastructures_pub.instance_tbl,
2146: l_child_instance_id number;
2147:
2148: BEGIN
2149:
2150: x_return_status := fnd_api.g_ret_sts_success;
2151: api_log('get_genealogy_children');
2152:
2153: l_assy_tbl := px_assembly_instances;
2154:
2204: px_assembly_instances := l_assy_tbl;
2205: x_assy_comp_map_tbl := l_ac_map_tbl;
2206:
2207: EXCEPTION
2208: WHEN fnd_api.g_exc_error THEN
2209: x_return_status := fnd_api.g_ret_sts_success;
2210: END get_genealogy_children;
2211:
2212: PROCEDURE get_parent_serial_number(
2205: x_assy_comp_map_tbl := l_ac_map_tbl;
2206:
2207: EXCEPTION
2208: WHEN fnd_api.g_exc_error THEN
2209: x_return_status := fnd_api.g_ret_sts_success;
2210: END get_genealogy_children;
2211:
2212: PROCEDURE get_parent_serial_number(
2213: p_child_item_id IN number,
2220: l_parent_item_id number;
2221: l_parent_serial_number varchar2(80);
2222: BEGIN
2223:
2224: x_return_status := fnd_api.g_ret_sts_success;
2225:
2226: api_log('get_parent_serial_number');
2227:
2228: SELECT gen_object_id,
2258: x_parent_item_id := l_parent_item_id;
2259: x_parent_serial_number := l_parent_serial_number;
2260:
2261: EXCEPTION
2262: WHEN fnd_api.g_exc_error THEN
2263: x_return_status := fnd_api.g_ret_sts_error;
2264: END get_parent_serial_number;
2265:
2266:
2259: x_parent_serial_number := l_parent_serial_number;
2260:
2261: EXCEPTION
2262: WHEN fnd_api.g_exc_error THEN
2263: x_return_status := fnd_api.g_ret_sts_error;
2264: END get_parent_serial_number;
2265:
2266:
2267: PROCEDURE apportion_serialized(
2292:
2293: --Fix for bug 4705806
2294: l_parent_item_id number;
2295: l_parent_serial_number varchar2(80) := null;
2296: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2297:
2298:
2299: FUNCTION alloc_count(p_object_id IN number, p_comp_item_id IN number)
2300: RETURN number
2315: END alloc_count;
2316:
2317: BEGIN
2318:
2319: x_return_status := fnd_api.g_ret_sts_success;
2320: api_log('apportion_serialized');
2321:
2322: l_assy_tbl := p_assembly_instances;
2323: l_comp_tbl := p_component_instances;
2361: p_child_serial_number => l_comp_tbl(l_c_ind).serial_number,
2362: x_parent_item_id => l_parent_item_id,
2363: x_parent_serial_number => l_parent_serial_number,
2364: x_return_status => l_return_status );
2365: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2366: RAISE fnd_api.g_exc_error;
2367: END IF;
2368: IF l_parent_serial_number IS NOT NULL THEN
2369: l_comp_tbl.DELETE(l_c_ind);
2362: x_parent_item_id => l_parent_item_id,
2363: x_parent_serial_number => l_parent_serial_number,
2364: x_return_status => l_return_status );
2365: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2366: RAISE fnd_api.g_exc_error;
2367: END IF;
2368: IF l_parent_serial_number IS NOT NULL THEN
2369: l_comp_tbl.DELETE(l_c_ind);
2370: ELSE --end of bug fix 4705806
2431: p_child_serial_number => l_comp_tbl(l_c_ind).serial_number,
2432: x_parent_item_id => l_parent_item_id,
2433: x_parent_serial_number => l_parent_serial_number,
2434: x_return_status => l_return_status );
2435: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2436: RAISE fnd_api.g_exc_error;
2437: END IF;
2438: IF l_parent_serial_number IS NOT NULL THEN
2439: l_comp_tbl.DELETE(l_c_ind);
2432: x_parent_item_id => l_parent_item_id,
2433: x_parent_serial_number => l_parent_serial_number,
2434: x_return_status => l_return_status );
2435: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2436: RAISE fnd_api.g_exc_error;
2437: END IF;
2438: IF l_parent_serial_number IS NOT NULL THEN
2439: l_comp_tbl.DELETE(l_c_ind);
2440: ELSE --end of bug fix 4705806
2465:
2466: px_assy_comp_map_tbl := l_ac_map_tbl;
2467:
2468: EXCEPTION
2469: WHEN fnd_api.g_exc_error THEN
2470: x_return_status := fnd_api.g_ret_sts_error;
2471: END apportion_serialized;
2472:
2473: PROCEDURE apportion_nonserial_instance(
2466: px_assy_comp_map_tbl := l_ac_map_tbl;
2467:
2468: EXCEPTION
2469: WHEN fnd_api.g_exc_error THEN
2470: x_return_status := fnd_api.g_ret_sts_error;
2471: END apportion_serialized;
2472:
2473: PROCEDURE apportion_nonserial_instance(
2474: p_requirements_flag IN varchar2,
2523: l_u_pricing_tbl csi_datastructures_pub.pricing_attribs_tbl;
2524: l_u_assets_tbl csi_datastructures_pub.instance_asset_tbl;
2525: l_u_instance_ids_list csi_datastructures_pub.id_tbl;
2526:
2527: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2528: l_msg_data varchar2(2000);
2529: l_msg_count number;
2530:
2531: FUNCTION alloc_quantity(p_object_id IN number, p_comp_item_id IN number)
2548: END alloc_quantity;
2549:
2550: BEGIN
2551:
2552: x_return_status := fnd_api.g_ret_sts_success;
2553:
2554: api_log('apportion_nonserial_instance');
2555:
2556: debug(' requirements_flag '||p_requirements_flag);
2614: p_quantity => l_qty_allocated,
2615: px_csi_txn_rec => px_csi_txn_rec,
2616: x_return_status => l_return_status);
2617:
2618: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2619: RAISE fnd_api.g_exc_error;
2620: END IF;
2621:
2622: --decrement the wip instance
2615: px_csi_txn_rec => px_csi_txn_rec,
2616: x_return_status => l_return_status);
2617:
2618: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2619: RAISE fnd_api.g_exc_error;
2620: END IF;
2621:
2622: --decrement the wip instance
2623: decrement_wip_instance(
2625: p_quantity => l_qty_allocated,
2626: px_csi_txn_rec => px_csi_txn_rec,
2627: x_return_status => l_return_status);
2628:
2629: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2630: RAISE fnd_api.g_exc_error;
2631: END IF;
2632:
2633: exit;
2626: px_csi_txn_rec => px_csi_txn_rec,
2627: x_return_status => l_return_status);
2628:
2629: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2630: RAISE fnd_api.g_exc_error;
2631: END IF;
2632:
2633: exit;
2634: END LOOP;
2653: x_new_instance_id => l_new_instance_id,
2654: px_csi_txn_rec => px_csi_txn_rec,
2655: x_return_status => l_return_status);
2656:
2657: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2658: RAISE fnd_api.g_exc_error;
2659: END IF;
2660:
2661: --decrement the wip instance
2654: px_csi_txn_rec => px_csi_txn_rec,
2655: x_return_status => l_return_status);
2656:
2657: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2658: RAISE fnd_api.g_exc_error;
2659: END IF;
2660:
2661: --decrement the wip instance
2662: decrement_wip_instance(
2664: p_quantity => l_qty_allocated,
2665: px_csi_txn_rec => px_csi_txn_rec,
2666: x_return_status => l_return_status);
2667:
2668: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2669: RAISE fnd_api.g_exc_error;
2670: END IF;
2671:
2672: l_ac_ind := l_ac_ind + 1;
2665: px_csi_txn_rec => px_csi_txn_rec,
2666: x_return_status => l_return_status);
2667:
2668: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2669: RAISE fnd_api.g_exc_error;
2670: END IF;
2671:
2672: l_ac_ind := l_ac_ind + 1;
2673: l_ac_map_tbl(l_ac_ind).assy_instance_id := l_assy_tbl(l_a_ind).instance_id;
2691:
2692: x_assy_comp_map_tbl := l_ac_map_tbl;
2693:
2694: EXCEPTION
2695: WHEN fnd_api.g_exc_error THEN
2696: x_return_status := fnd_api.g_ret_sts_error;
2697: END apportion_nonserial_instance;
2698:
2699: PROCEDURE apportion_non_serialized(
2692: x_assy_comp_map_tbl := l_ac_map_tbl;
2693:
2694: EXCEPTION
2695: WHEN fnd_api.g_exc_error THEN
2696: x_return_status := fnd_api.g_ret_sts_error;
2697: END apportion_nonserial_instance;
2698:
2699: PROCEDURE apportion_non_serialized(
2700: p_context IN varchar2,
2717: l_return_status varchar2(1);
2718:
2719: BEGIN
2720:
2721: x_return_status := fnd_api.g_ret_sts_success;
2722: api_log('apportion_non_serialized');
2723:
2724: IF p_component_instances.COUNT > 0 THEN
2725: FOR l_ind IN p_component_instances.FIRST .. p_component_instances.LAST
2737: px_csi_txn_rec => px_csi_txn_rec,
2738: x_assy_comp_map_tbl => l_tmp_ac_map_tbl,
2739: x_return_status => l_return_status);
2740:
2741: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2742: RAISE fnd_api.g_exc_error;
2743: END IF;
2744:
2745: IF l_tmp_ac_map_tbl.COUNT > 0 THEN
2738: x_assy_comp_map_tbl => l_tmp_ac_map_tbl,
2739: x_return_status => l_return_status);
2740:
2741: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2742: RAISE fnd_api.g_exc_error;
2743: END IF;
2744:
2745: IF l_tmp_ac_map_tbl.COUNT > 0 THEN
2746: FOR l_t_ind IN l_tmp_ac_map_tbl.FIRST .. l_tmp_ac_map_tbl.LAST
2757:
2758: x_assy_comp_map_tbl := l_ac_map_tbl;
2759:
2760: EXCEPTION
2761: WHEN fnd_api.g_exc_error THEN
2762: x_return_status := fnd_api.g_ret_sts_error;
2763: END apportion_non_serialized;
2764:
2765: PROCEDURE build_discrete_rltn_at_wipac(
2758: x_assy_comp_map_tbl := l_ac_map_tbl;
2759:
2760: EXCEPTION
2761: WHEN fnd_api.g_exc_error THEN
2762: x_return_status := fnd_api.g_ret_sts_error;
2763: END apportion_non_serialized;
2764:
2765: PROCEDURE build_discrete_rltn_at_wipac(
2766: p_txn_ref IN txn_ref,
2779: l_comp_serial_code number;
2780:
2781: end_process exception;
2782:
2783: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2784:
2785: l_requirements_flag varchar2(1);
2786:
2787: BEGIN
2785: l_requirements_flag varchar2(1);
2786:
2787: BEGIN
2788:
2789: x_return_status := fnd_api.g_ret_sts_success;
2790:
2791: api_log('build_discrete_rltn_at_wipac');
2792:
2793: l_auto_allocate := csi_datastructures_pub.g_install_param_rec.auto_allocate_comp_at_wip;
2808: p_auto_allocate => l_auto_allocate,
2809: x_requirements_tbl => l_requirements_tbl,
2810: x_return_status => l_return_status);
2811:
2812: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2813: RAISE fnd_api.g_exc_error;
2814: END IF;
2815:
2816: debug('Issued Requirements Count: '||l_requirements_tbl.COUNT);
2809: x_requirements_tbl => l_requirements_tbl,
2810: x_return_status => l_return_status);
2811:
2812: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2813: RAISE fnd_api.g_exc_error;
2814: END IF;
2815:
2816: debug('Issued Requirements Count: '||l_requirements_tbl.COUNT);
2817:
2823: get_issued_instances(
2824: p_wip_entity_id => p_txn_ref.wip_entity_id,
2825: p_organization_id => p_txn_ref.organization_id,
2826: p_inventory_item_id => l_requirements_tbl(l_ind).inventory_item_id,
2827: p_serial_number => fnd_api.g_miss_char,
2828: x_instance_tbl => l_issued_instances,
2829: x_return_status => l_return_status);
2830:
2831: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2827: p_serial_number => fnd_api.g_miss_char,
2828: x_instance_tbl => l_issued_instances,
2829: x_return_status => l_return_status);
2830:
2831: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2832: RAISE fnd_api.g_exc_error;
2833: END IF;
2834:
2835: debug('Issued Instances Count: '||l_issued_instances.COUNT);
2828: x_instance_tbl => l_issued_instances,
2829: x_return_status => l_return_status);
2830:
2831: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2832: RAISE fnd_api.g_exc_error;
2833: END IF;
2834:
2835: debug('Issued Instances Count: '||l_issued_instances.COUNT);
2836:
2855: px_csi_txn_rec => px_csi_txn_rec,
2856: x_splitted_instances => l_splitted_instances,
2857: x_return_status => l_return_status);
2858:
2859: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2860: RAISE fnd_api.g_exc_error;
2861: END IF;
2862:
2863: ELSE
2856: x_splitted_instances => l_splitted_instances,
2857: x_return_status => l_return_status);
2858:
2859: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2860: RAISE fnd_api.g_exc_error;
2861: END IF;
2862:
2863: ELSE
2864:
2873: px_csi_txn_rec => px_csi_txn_rec,
2874: x_splitted_instances => l_splitted_instances,
2875: x_return_status => l_return_status);
2876:
2877: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2878: RAISE fnd_api.g_exc_error;
2879: END IF;
2880: ELSE
2881: l_splitted_instances := l_issued_instances;
2874: x_splitted_instances => l_splitted_instances,
2875: x_return_status => l_return_status);
2876:
2877: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2878: RAISE fnd_api.g_exc_error;
2879: END IF;
2880: ELSE
2881: l_splitted_instances := l_issued_instances;
2882: END IF;
2893: p_comp_serial_code => l_comp_serial_code,
2894: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
2895: x_return_status => l_return_status);
2896:
2897: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2898: RAISE fnd_api.g_exc_error;
2899: END IF;
2900:
2901: ELSE
2894: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
2895: x_return_status => l_return_status);
2896:
2897: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2898: RAISE fnd_api.g_exc_error;
2899: END IF;
2900:
2901: ELSE
2902:
2904: px_assembly_instances => l_assembly_instances,
2905: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
2906: x_return_status => l_return_status);
2907:
2908: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2909: RAISE fnd_api.g_exc_error;
2910: END IF;
2911:
2912: IF l_auto_allocate = 'Y' OR p_txn_ref.wip_start_quantity = 1 THEN
2905: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
2906: x_return_status => l_return_status);
2907:
2908: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2909: RAISE fnd_api.g_exc_error;
2910: END IF;
2911:
2912: IF l_auto_allocate = 'Y' OR p_txn_ref.wip_start_quantity = 1 THEN
2913:
2928: p_component_instances => l_issued_instances,
2929: px_assy_comp_map_tbl => l_assy_comp_map_tbl,
2930: x_return_status => l_return_status);
2931:
2932: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2933: RAISE fnd_api.g_exc_error;
2934: END IF;
2935:
2936: END IF;
2929: px_assy_comp_map_tbl => l_assy_comp_map_tbl,
2930: x_return_status => l_return_status);
2931:
2932: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2933: RAISE fnd_api.g_exc_error;
2934: END IF;
2935:
2936: END IF;
2937:
2946: p_assy_comp_map_tbl => l_assy_comp_map_tbl,
2947: px_csi_txn_rec => px_csi_txn_rec,
2948: x_return_status => l_return_status);
2949:
2950: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2951: RAISE fnd_api.g_exc_error;
2952: END IF;
2953:
2954: END IF;
2947: px_csi_txn_rec => px_csi_txn_rec,
2948: x_return_status => l_return_status);
2949:
2950: IF l_return_status <> fnd_api.g_ret_sts_success THEN
2951: RAISE fnd_api.g_exc_error;
2952: END IF;
2953:
2954: END IF;
2955:
2961: END IF;
2962:
2963: EXCEPTION
2964: WHEN end_process THEN
2965: x_return_status := fnd_api.g_ret_sts_success;
2966:
2967: WHEN fnd_api.g_exc_error THEN
2968: x_return_status := fnd_api.g_ret_sts_error;
2969: END build_discrete_rltn_at_wipac;
2963: EXCEPTION
2964: WHEN end_process THEN
2965: x_return_status := fnd_api.g_ret_sts_success;
2966:
2967: WHEN fnd_api.g_exc_error THEN
2968: x_return_status := fnd_api.g_ret_sts_error;
2969: END build_discrete_rltn_at_wipac;
2970:
2971: PROCEDURE filter_assembly_instances(
2964: WHEN end_process THEN
2965: x_return_status := fnd_api.g_ret_sts_success;
2966:
2967: WHEN fnd_api.g_exc_error THEN
2968: x_return_status := fnd_api.g_ret_sts_error;
2969: END build_discrete_rltn_at_wipac;
2970:
2971: PROCEDURE filter_assembly_instances(
2972: p_wip_entity_id IN number,
2994: */
2995:
2996: l_filtered_assy_instances csi_datastructures_pub.instance_tbl;
2997: l_relation_found boolean := FALSE;
2998: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
2999: l_f_ind binary_integer := 0;
3000:
3001: l_comp_quantity number;
3002:
3001: l_comp_quantity number;
3002:
3003: BEGIN
3004:
3005: x_return_status := fnd_api.g_ret_sts_success;
3006:
3007: api_log('filter_assembly_instances');
3008:
3009: IF p_assembly_instances.COUNT > 0 THEN
3037:
3038: x_filtered_assy_instances := l_filtered_assy_instances;
3039:
3040: EXCEPTION
3041: WHEN fnd_api.g_exc_error THEN
3042: x_return_status := fnd_api.g_ret_sts_error;
3043: END filter_assembly_instances;
3044:
3045: PROCEDURE get_genealogy_parent(
3038: x_filtered_assy_instances := l_filtered_assy_instances;
3039:
3040: EXCEPTION
3041: WHEN fnd_api.g_exc_error THEN
3042: x_return_status := fnd_api.g_ret_sts_error;
3043: END filter_assembly_instances;
3044:
3045: PROCEDURE get_genealogy_parent(
3046: px_component_instances IN OUT NOCOPY csi_datastructures_pub.instance_tbl,
3051: l_parent_serial_number varchar2(80) := null;
3052:
3053: l_parent_instance_id number;
3054:
3055: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3056: l_a_ind binary_integer := 0;
3057: BEGIN
3058:
3059: x_return_status := fnd_api.g_ret_sts_success;
3055: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3056: l_a_ind binary_integer := 0;
3057: BEGIN
3058:
3059: x_return_status := fnd_api.g_ret_sts_success;
3060:
3061: api_log('get_genealogy_parent');
3062:
3063: IF px_component_instances.COUNT > 0 THEN
3103: END LOOP;
3104: END IF;
3105:
3106: EXCEPTION
3107: WHEN fnd_api.g_exc_error THEN
3108: x_return_status := fnd_api.g_ret_sts_error;
3109: END get_genealogy_parent;
3110:
3111: PROCEDURE get_unprocessed_instances(
3104: END IF;
3105:
3106: EXCEPTION
3107: WHEN fnd_api.g_exc_error THEN
3108: x_return_status := fnd_api.g_ret_sts_error;
3109: END get_genealogy_parent;
3110:
3111: PROCEDURE get_unprocessed_instances(
3112: px_component_instances IN OUT NOCOPY csi_datastructures_pub.instance_tbl,
3115: l_upc_instances csi_datastructures_pub.instance_tbl;
3116: l_upc_ind binary_integer := 0;
3117:
3118: BEGIN
3119: x_return_status := fnd_api.g_ret_sts_success;
3120: api_log('get_unprocessed_instances');
3121:
3122: IF px_component_instances.COUNT > 0 THEN
3123:
3135:
3136: px_component_instances := l_upc_instances;
3137:
3138: EXCEPTION
3139: WHEN fnd_api.g_exc_error THEN
3140: x_return_status := fnd_api.g_ret_sts_error;
3141: END get_unprocessed_instances;
3142:
3143: PROCEDURE build_discrete_rltn_at_wipci(
3136: px_component_instances := l_upc_instances;
3137:
3138: EXCEPTION
3139: WHEN fnd_api.g_exc_error THEN
3140: x_return_status := fnd_api.g_ret_sts_error;
3141: END get_unprocessed_instances;
3142:
3143: PROCEDURE build_discrete_rltn_at_wipci(
3144: p_txn_ref IN txn_ref,
3158: l_qty_per_assy number;
3159: l_total_qty_issued number;
3160:
3161: process_no_relation exception;
3162: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3163:
3164: BEGIN
3165:
3166: x_return_status := fnd_api.g_ret_sts_success;
3162: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3163:
3164: BEGIN
3165:
3166: x_return_status := fnd_api.g_ret_sts_success;
3167:
3168: api_log('build_discrete_rltn_at_wipci');
3169:
3170: l_auto_allocate := csi_datastructures_pub.g_install_param_rec.auto_allocate_comp_at_wip;
3172: get_issued_instances(
3173: p_wip_entity_id => p_txn_ref.wip_entity_id,
3174: p_organization_id => p_txn_ref.organization_id,
3175: p_inventory_item_id => p_txn_ref.inventory_item_id,
3176: p_serial_number => fnd_api.g_miss_char,
3177: x_instance_tbl => l_issued_instances,
3178: x_return_status => l_return_status);
3179:
3180: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3176: p_serial_number => fnd_api.g_miss_char,
3177: x_instance_tbl => l_issued_instances,
3178: x_return_status => l_return_status);
3179:
3180: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3181: RAISE fnd_api.g_exc_error;
3182: END IF;
3183:
3184: IF l_issued_instances.COUNT > 0 THEN
3177: x_instance_tbl => l_issued_instances,
3178: x_return_status => l_return_status);
3179:
3180: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3181: RAISE fnd_api.g_exc_error;
3182: END IF;
3183:
3184: IF l_issued_instances.COUNT > 0 THEN
3185:
3196: p_location_code => 'ALL',
3197: x_instance_tbl => l_assembly_instances,
3198: x_return_status => l_return_status);
3199:
3200: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3201: RAISE fnd_api.g_exc_error;
3202: END IF;
3203:
3204: IF l_assembly_instances.COUNT > 0 THEN
3197: x_instance_tbl => l_assembly_instances,
3198: x_return_status => l_return_status);
3199:
3200: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3201: RAISE fnd_api.g_exc_error;
3202: END IF;
3203:
3204: IF l_assembly_instances.COUNT > 0 THEN
3205: -- get the ratio of the issued inventory instance
3210: p_component_item_id => p_txn_ref.inventory_item_id,
3211: x_qty_per_assembly => l_qty_per_assy,
3212: x_return_status => l_return_status);
3213:
3214: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3215: RAISE fnd_api.g_exc_error;
3216: END IF;
3217:
3218: IF nvl(l_qty_per_assy,0) > 0 THEN
3211: x_qty_per_assembly => l_qty_per_assy,
3212: x_return_status => l_return_status);
3213:
3214: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3215: RAISE fnd_api.g_exc_error;
3216: END IF;
3217:
3218: IF nvl(l_qty_per_assy,0) > 0 THEN
3219:
3231: p_quantity_ratio => l_qty_per_assy,
3232: x_filtered_assy_instances => l_f_assy_instances,
3233: x_return_status => l_return_status);
3234:
3235: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3236: RAISE fnd_api.g_exc_error;
3237: END IF;
3238:
3239: l_f_assy_count := l_f_assy_instances.COUNT;
3232: x_filtered_assy_instances => l_f_assy_instances,
3233: x_return_status => l_return_status);
3234:
3235: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3236: RAISE fnd_api.g_exc_error;
3237: END IF;
3238:
3239: l_f_assy_count := l_f_assy_instances.COUNT;
3240:
3253: px_csi_txn_rec => px_csi_txn_rec,
3254: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3255: x_return_status => l_return_status);
3256:
3257: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3258: RAISE fnd_api.g_exc_error;
3259: END IF;
3260:
3261: END IF;
3254: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3255: x_return_status => l_return_status);
3256:
3257: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3258: RAISE fnd_api.g_exc_error;
3259: END IF;
3260:
3261: END IF;
3262:
3274: px_component_instances => l_issued_instances,
3275: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3276: x_return_status => l_return_status);
3277:
3278: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3279: RAISE fnd_api.g_exc_error;
3280: END IF;
3281:
3282: -- II
3275: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3276: x_return_status => l_return_status);
3277:
3278: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3279: RAISE fnd_api.g_exc_error;
3280: END IF;
3281:
3282: -- II
3283: IF l_auto_allocate = 'Y' OR p_txn_ref.wip_start_quantity = 1 THEN
3287: get_unprocessed_instances(
3288: px_component_instances => l_issued_instances,
3289: x_return_status => l_return_status);
3290:
3291: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3292: RAISE fnd_api.g_exc_error;
3293: END IF;
3294:
3295: apportion_serialized(
3288: px_component_instances => l_issued_instances,
3289: x_return_status => l_return_status);
3290:
3291: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3292: RAISE fnd_api.g_exc_error;
3293: END IF;
3294:
3295: apportion_serialized(
3296: p_context => 'ISSUE',
3303: p_component_instances => l_issued_instances,
3304: px_assy_comp_map_tbl => l_assy_comp_map_tbl,
3305: x_return_status => l_return_status);
3306:
3307: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3308: RAISE fnd_api.g_exc_error;
3309: END IF;
3310:
3311: END IF;
3304: px_assy_comp_map_tbl => l_assy_comp_map_tbl,
3305: x_return_status => l_return_status);
3306:
3307: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3308: RAISE fnd_api.g_exc_error;
3309: END IF;
3310:
3311: END IF;
3312: END IF;
3344: px_csi_txn_rec => px_csi_txn_rec,
3345: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3346: x_return_status => l_return_status);
3347:
3348: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3349: RAISE fnd_api.g_exc_error;
3350: END IF;
3351:
3352: ELSE
3345: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3346: x_return_status => l_return_status);
3347:
3348: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3349: RAISE fnd_api.g_exc_error;
3350: END IF;
3351:
3352: ELSE
3353:
3355: px_component_instances => l_issued_instances,
3356: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3357: x_return_status => l_return_status);
3358:
3359: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3360: RAISE fnd_api.g_exc_error;
3361: END IF;
3362:
3363: get_unprocessed_instances(
3356: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3357: x_return_status => l_return_status);
3358:
3359: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3360: RAISE fnd_api.g_exc_error;
3361: END IF;
3362:
3363: get_unprocessed_instances(
3364: px_component_instances => l_issued_instances,
3363: get_unprocessed_instances(
3364: px_component_instances => l_issued_instances,
3365: x_return_status => l_return_status);
3366:
3367: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3368: RAISE fnd_api.g_exc_error;
3369: END IF;
3370:
3371: apportion_serialized(
3364: px_component_instances => l_issued_instances,
3365: x_return_status => l_return_status);
3366:
3367: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3368: RAISE fnd_api.g_exc_error;
3369: END IF;
3370:
3371: apportion_serialized(
3372: p_context => 'ISSUE',
3379: p_component_instances => l_issued_instances,
3380: px_assy_comp_map_tbl => l_assy_comp_map_tbl,
3381: x_return_status => l_return_status);
3382:
3383: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3384: RAISE fnd_api.g_exc_error;
3385: END IF;
3386:
3387: END IF;
3380: px_assy_comp_map_tbl => l_assy_comp_map_tbl,
3381: x_return_status => l_return_status);
3382:
3383: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3384: RAISE fnd_api.g_exc_error;
3385: END IF;
3386:
3387: END IF;
3388:
3402: p_assy_comp_map_tbl => l_assy_comp_map_tbl,
3403: px_csi_txn_rec => px_csi_txn_rec,
3404: x_return_status => l_return_status);
3405:
3406: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3407: RAISE fnd_api.g_exc_error;
3408: END IF;
3409:
3410: END IF;
3403: px_csi_txn_rec => px_csi_txn_rec,
3404: x_return_status => l_return_status);
3405:
3406: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3407: RAISE fnd_api.g_exc_error;
3408: END IF;
3409:
3410: END IF;
3411:
3415:
3416: EXCEPTION
3417: WHEN process_no_relation THEN
3418: null;
3419: WHEN fnd_api.g_exc_error THEN
3420: x_return_status := fnd_api.g_ret_sts_error;
3421: END build_discrete_rltn_at_wipci;
3422:
3423:
3416: EXCEPTION
3417: WHEN process_no_relation THEN
3418: null;
3419: WHEN fnd_api.g_exc_error THEN
3420: x_return_status := fnd_api.g_ret_sts_error;
3421: END build_discrete_rltn_at_wipci;
3422:
3423:
3424: PROCEDURE build_wo_less_rltn_at_wipac(
3435: l_issued_instances csi_datastructures_pub.instance_tbl;
3436: l_splitted_instances csi_datastructures_pub.instance_tbl;
3437: l_assy_comp_map_tbl assy_comp_map_tbl;
3438:
3439: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3440: l_comp_serial_code number;
3441: l_qty_ratio number;
3442: l_comp_item varchar2(80);
3443:
3453: BEGIN
3454:
3455: api_log('build_wo_less_rltn_at_wipac');
3456:
3457: x_return_status := fnd_api.g_ret_sts_success;
3458:
3459: l_assembly_instances := p_assembly_instances;
3460:
3461: FOR issue_rec IN issue_cur
3491: get_issued_instances(
3492: p_wip_entity_id => p_wip_entity_id,
3493: p_organization_id => p_organization_id,
3494: p_inventory_item_id => issue_rec.inventory_item_id,
3495: p_serial_number => fnd_api.g_miss_char,
3496: x_instance_tbl => l_issued_instances,
3497: x_return_status => l_return_status);
3498:
3499: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3495: p_serial_number => fnd_api.g_miss_char,
3496: x_instance_tbl => l_issued_instances,
3497: x_return_status => l_return_status);
3498:
3499: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3500: RAISE fnd_api.g_exc_error;
3501: END IF;
3502: --fix for bug 4941800:IF condition added to ensure relationship
3503: --not build if issued instance count = 0
3496: x_instance_tbl => l_issued_instances,
3497: x_return_status => l_return_status);
3498:
3499: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3500: RAISE fnd_api.g_exc_error;
3501: END IF;
3502: --fix for bug 4941800:IF condition added to ensure relationship
3503: --not build if issued instance count = 0
3504: IF l_issued_instances.COUNT > 0 THEN
3516: px_csi_txn_rec => px_csi_txn_rec,
3517: x_splitted_instances => l_splitted_instances,
3518: x_return_status => l_return_status);
3519:
3520: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3521: RAISE fnd_api.g_exc_error;
3522: END IF;
3523:
3524: END IF;
3517: x_splitted_instances => l_splitted_instances,
3518: x_return_status => l_return_status);
3519:
3520: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3521: RAISE fnd_api.g_exc_error;
3522: END IF;
3523:
3524: END IF;
3525: ELSE
3538: p_comp_serial_code => l_comp_serial_code,
3539: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3540: x_return_status => l_return_status);
3541:
3542: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3543: RAISE fnd_api.g_exc_error;
3544: END IF;
3545:
3546: dump_assy_comp_relation(
3539: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3540: x_return_status => l_return_status);
3541:
3542: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3543: RAISE fnd_api.g_exc_error;
3544: END IF;
3545:
3546: dump_assy_comp_relation(
3547: p_assy_comp_map_tbl => l_assy_comp_map_tbl);
3550: p_assy_comp_map_tbl => l_assy_comp_map_tbl,
3551: px_csi_txn_rec => px_csi_txn_rec,
3552: x_return_status => l_return_status);
3553:
3554: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3555: RAISE fnd_api.g_exc_error;
3556: END IF;
3557: ELSE --Fix for bug 4941800
3558: debug('Could not find issued instances. Process continues without building relation.');
3551: px_csi_txn_rec => px_csi_txn_rec,
3552: x_return_status => l_return_status);
3553:
3554: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3555: RAISE fnd_api.g_exc_error;
3556: END IF;
3557: ELSE --Fix for bug 4941800
3558: debug('Could not find issued instances. Process continues without building relation.');
3559: END IF;
3560:
3561: END LOOP;
3562:
3563: EXCEPTION
3564: WHEN fnd_api.g_exc_error THEN
3565: x_return_status := fnd_api.g_ret_sts_error;
3566: END build_wo_less_rltn_at_wipac;
3567:
3568:
3561: END LOOP;
3562:
3563: EXCEPTION
3564: WHEN fnd_api.g_exc_error THEN
3565: x_return_status := fnd_api.g_ret_sts_error;
3566: END build_wo_less_rltn_at_wipac;
3567:
3568:
3569: PROCEDURE build_wo_less_rltn_at_wipci(
3579: l_issued_instances csi_datastructures_pub.instance_tbl;
3580: l_splitted_instances csi_datastructures_pub.instance_tbl;
3581: l_assy_comp_map_tbl assy_comp_map_tbl;
3582:
3583: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3584: l_comp_serial_code number;
3585: l_qty_ratio number;
3586:
3587: CURSOR issue_cur IS
3596: BEGIN
3597:
3598: api_log('build_wo_less_rltn_at_wipci');
3599:
3600: x_return_status := fnd_api.g_ret_sts_success;
3601:
3602: -- get assy instances
3603: get_assembly_instances(
3604: p_wip_entity_id => p_txn_ref.wip_entity_id,
3608: p_location_code => 'INVENTORY',
3609: x_instance_tbl => l_assembly_instances,
3610: x_return_status => l_return_status);
3611:
3612: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3613: RAISE fnd_api.g_exc_error;
3614: END IF;
3615:
3616: IF l_assembly_instances.COUNT > 0 THEN
3609: x_instance_tbl => l_assembly_instances,
3610: x_return_status => l_return_status);
3611:
3612: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3613: RAISE fnd_api.g_exc_error;
3614: END IF;
3615:
3616: IF l_assembly_instances.COUNT > 0 THEN
3617:
3637: p_component_item_id => p_txn_ref.inventory_item_id,
3638: p_quantity_ratio => l_qty_ratio,
3639: x_filtered_assy_instances => l_f_assy_instances,
3640: x_return_status => l_return_status);
3641: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3642: RAISE fnd_api.g_exc_error;
3643: END IF;
3644: --end of fix 5395829
3645:
3638: p_quantity_ratio => l_qty_ratio,
3639: x_filtered_assy_instances => l_f_assy_instances,
3640: x_return_status => l_return_status);
3641: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3642: RAISE fnd_api.g_exc_error;
3643: END IF;
3644: --end of fix 5395829
3645:
3646: l_issued_instances := p_issued_instances;
3655: px_issued_instances => l_issued_instances,
3656: px_csi_txn_rec => px_csi_txn_rec,
3657: x_splitted_instances => l_splitted_instances,
3658: x_return_status => l_return_status);
3659: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3660: RAISE fnd_api.g_exc_error;
3661: END IF;
3662: ELSE
3663: l_splitted_instances := l_issued_instances;
3656: px_csi_txn_rec => px_csi_txn_rec,
3657: x_splitted_instances => l_splitted_instances,
3658: x_return_status => l_return_status);
3659: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3660: RAISE fnd_api.g_exc_error;
3661: END IF;
3662: ELSE
3663: l_splitted_instances := l_issued_instances;
3664: END IF;
3674: p_comp_serial_code => l_comp_serial_code,
3675: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3676: x_return_status => l_return_status);
3677:
3678: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3679: RAISE fnd_api.g_exc_error;
3680: END IF;
3681:
3682: dump_assy_comp_relation(
3675: x_assy_comp_map_tbl => l_assy_comp_map_tbl,
3676: x_return_status => l_return_status);
3677:
3678: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3679: RAISE fnd_api.g_exc_error;
3680: END IF;
3681:
3682: dump_assy_comp_relation(
3683: p_assy_comp_map_tbl => l_assy_comp_map_tbl);
3686: p_assy_comp_map_tbl => l_assy_comp_map_tbl,
3687: px_csi_txn_rec => px_csi_txn_rec,
3688: x_return_status => l_return_status);
3689:
3690: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3691: RAISE fnd_api.g_exc_error;
3692: END IF;
3693:
3694: END IF; -- issued_instances.count > 0
3687: px_csi_txn_rec => px_csi_txn_rec,
3688: x_return_status => l_return_status);
3689:
3690: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3691: RAISE fnd_api.g_exc_error;
3692: END IF;
3693:
3694: END IF; -- issued_instances.count > 0
3695:
3695:
3696: END IF; -- assy_instances.count > 0
3697:
3698: EXCEPTION
3699: WHEN fnd_api.g_exc_error THEN
3700: x_return_status := fnd_api.g_ret_sts_error;
3701: END build_wo_less_rltn_at_wipci;
3702:
3703:
3696: END IF; -- assy_instances.count > 0
3697:
3698: EXCEPTION
3699: WHEN fnd_api.g_exc_error THEN
3700: x_return_status := fnd_api.g_ret_sts_error;
3701: END build_wo_less_rltn_at_wipci;
3702:
3703:
3704: PROCEDURE check_mtl_txn_in_csi(
3712: FROM csi_transactions
3713: WHERE inv_material_transaction_id = p_transaction_id;
3714:
3715: BEGIN
3716: x_return_status := fnd_api.g_ret_sts_success;
3717:
3718: x_txn_found := FALSE;
3719:
3720: FOR csi_txn_rec IN csi_txn_cur
3722: x_txn_found := TRUE;
3723: END LOOP;
3724:
3725: EXCEPTION
3726: WHEN fnd_api.g_exc_error THEN
3727: x_return_status := fnd_api.g_ret_sts_error;
3728: END check_mtl_txn_in_csi;
3729:
3730: PROCEDURE check_prior_wip_txns_in_csi(
3723: END LOOP;
3724:
3725: EXCEPTION
3726: WHEN fnd_api.g_exc_error THEN
3727: x_return_status := fnd_api.g_ret_sts_error;
3728: END check_mtl_txn_in_csi;
3729:
3730: PROCEDURE check_prior_wip_txns_in_csi(
3731: p_mtl_creation_date IN date,
3746: AND msi.organization_id = mmt.organization_id
3747: AND msi.inventory_item_id = mmt.inventory_item_id
3748: AND nvl(msi.comms_nl_trackable_flag, 'N') = 'Y';
3749:
3750: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3751: l_processed_flag boolean := TRUE;
3752: l_migration_date date;
3753:
3754: BEGIN
3753:
3754: BEGIN
3755: api_log('check_prior_wip_txns_in_csi');
3756:
3757: x_return_status := fnd_api.g_ret_sts_success;
3758:
3759: l_migration_date := csi_datastructures_pub.g_install_param_rec.freeze_date;
3760:
3761: debug(' migration_date :'||l_migration_date);
3767: p_transaction_id => mtl_txn_rec.transaction_id,
3768: x_txn_found => l_processed_flag,
3769: x_return_status => l_return_status);
3770:
3771: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3772: RAISE fnd_api.g_exc_error;
3773: END IF;
3774:
3775: IF NOT( l_processed_flag ) THEN
3768: x_txn_found => l_processed_flag,
3769: x_return_status => l_return_status);
3770:
3771: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3772: RAISE fnd_api.g_exc_error;
3773: END IF;
3774:
3775: IF NOT( l_processed_flag ) THEN
3776:
3778: fnd_message.set_token('WIP_ENTITY_ID', p_wip_entity_id);
3779: fnd_message.set_token('MTL_TXN_ID', mtl_txn_rec.transaction_id);
3780:
3781: fnd_msg_pub.add;
3782: RAISE fnd_api.g_exc_error;
3783: END IF;
3784:
3785: END LOOP;
3786:
3784:
3785: END LOOP;
3786:
3787: EXCEPTION
3788: WHEN fnd_api.g_exc_error THEN
3789: x_return_status := fnd_api.g_ret_sts_error;
3790: END check_prior_wip_txns_in_csi;
3791:
3792:
3785: END LOOP;
3786:
3787: EXCEPTION
3788: WHEN fnd_api.g_exc_error THEN
3789: x_return_status := fnd_api.g_ret_sts_error;
3790: END check_prior_wip_txns_in_csi;
3791:
3792:
3793: PROCEDURE get_order_of_processing(
3820:
3821: BEGIN
3822:
3823: api_log('get_order_of_processing');
3824: x_return_status := fnd_api.g_ret_sts_success;
3825: debug(' Context :'||p_context);
3826: IF p_context = 'ISSUE' THEN
3827: l_completion_found := FALSE;
3828: l_csi_txn_found := 'N';
3877: END IF;
3878:
3879: debug(' Processing Order :'||x_order_of_process);
3880: EXCEPTION
3881: when fnd_api.g_exc_error THEN
3882: x_return_status := fnd_api.g_ret_sts_error;
3883: END get_order_of_processing;
3884:
3885:
3878:
3879: debug(' Processing Order :'||x_order_of_process);
3880: EXCEPTION
3881: when fnd_api.g_exc_error THEN
3882: x_return_status := fnd_api.g_ret_sts_error;
3883: END get_order_of_processing;
3884:
3885:
3886: /* process relationships at the time of WIP assembly completion */
3903:
3904: l_order_of_process varchar2(30);
3905:
3906: l_auto_allocate varchar2(1);
3907: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
3908: process_no_relation exception;
3909:
3910: BEGIN
3911:
3926: p_wip_entity_id => p_txn_ref.wip_entity_id,
3927: x_order_of_process => l_order_of_process,
3928: x_return_status => l_return_status);
3929:
3930: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3931: raise fnd_api.g_exc_error;
3932: END IF;
3933:
3934: IF l_order_of_process = 'COMPLETION_FIRST' THEN
3927: x_order_of_process => l_order_of_process,
3928: x_return_status => l_return_status);
3929:
3930: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3931: raise fnd_api.g_exc_error;
3932: END IF;
3933:
3934: IF l_order_of_process = 'COMPLETION_FIRST' THEN
3935: -- completion is the very first txn for this job. issues are not made yet.
3942: p_transaction_id => p_txn_ref.transaction_id,
3943: p_wip_entity_id => p_txn_ref.wip_entity_id,
3944: x_return_status => l_return_status);
3945:
3946: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3947: RAISE fnd_api.g_exc_error;
3948: END IF;
3949:
3950: -- work order less completion -- entity type = 4 (flow schedules)
3943: p_wip_entity_id => p_txn_ref.wip_entity_id,
3944: x_return_status => l_return_status);
3945:
3946: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3947: RAISE fnd_api.g_exc_error;
3948: END IF;
3949:
3950: -- work order less completion -- entity type = 4 (flow schedules)
3951: IF p_txn_ref.wip_entity_type = 4 THEN
3958: p_assembly_instances => p_assembly_instances,
3959: px_csi_txn_rec => px_csi_txn_rec,
3960: x_return_status => l_return_status);
3961:
3962: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3963: RAISE fnd_api.g_exc_error;
3964: END IF;
3965:
3966: ELSE -- wip_entity_type <> 4
3959: px_csi_txn_rec => px_csi_txn_rec,
3960: x_return_status => l_return_status);
3961:
3962: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3963: RAISE fnd_api.g_exc_error;
3964: END IF;
3965:
3966: ELSE -- wip_entity_type <> 4
3967:
3972: p_assembly_instances => p_assembly_instances,
3973: px_csi_txn_rec => px_csi_txn_rec,
3974: x_return_status => l_return_status);
3975:
3976: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3977: RAISE fnd_api.g_exc_error;
3978: END IF;
3979:
3980: ELSE
3973: px_csi_txn_rec => px_csi_txn_rec,
3974: x_return_status => l_return_status);
3975:
3976: IF l_return_status <> fnd_api.g_ret_sts_success THEN
3977: RAISE fnd_api.g_exc_error;
3978: END IF;
3979:
3980: ELSE
3981: debug('no relationship processing for wip_entity_type : '||p_txn_ref.wip_entity_type);
3992:
3993: EXCEPTION
3994: WHEN process_no_relation THEN
3995: null;
3996: WHEN fnd_api.g_exc_error THEN
3997: x_return_status := fnd_api.g_ret_sts_error;
3998: END process_relation_at_wipac;
3999:
4000: PROCEDURE process_relation_at_wipci(
3993: EXCEPTION
3994: WHEN process_no_relation THEN
3995: null;
3996: WHEN fnd_api.g_exc_error THEN
3997: x_return_status := fnd_api.g_ret_sts_error;
3998: END process_relation_at_wipac;
3999:
4000: PROCEDURE process_relation_at_wipci(
4001: p_txn_ref IN txn_ref,
4009:
4010: l_assy_serial_code number;
4011: l_qty_completed number;
4012:
4013: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4014:
4015: process_no_relation exception;
4016:
4017: BEGIN
4015: process_no_relation exception;
4016:
4017: BEGIN
4018:
4019: x_return_status := fnd_api.g_ret_sts_success;
4020:
4021: api_log('process_relation_at_wipci');
4022:
4023: IF nvl(p_txn_ref.wip_assembly_item_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4019: x_return_status := fnd_api.g_ret_sts_success;
4020:
4021: api_log('process_relation_at_wipci');
4022:
4023: IF nvl(p_txn_ref.wip_assembly_item_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4024: debug('no relationship processing for repair jobs without assembly.');
4025: RAISE process_no_relation;
4026: END IF;
4027:
4047: p_wip_entity_id => p_txn_ref.wip_entity_id,
4048: x_order_of_process => l_order_of_process,
4049: x_return_status => l_return_status);
4050:
4051: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4052: RAISE fnd_api.g_exc_error;
4053: END IF;
4054:
4055:
4048: x_order_of_process => l_order_of_process,
4049: x_return_status => l_return_status);
4050:
4051: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4052: RAISE fnd_api.g_exc_error;
4053: END IF;
4054:
4055:
4056: IF l_order_of_process = 'ISSUE_FIRST' THEN
4078: p_issued_instances => p_component_instances,
4079: px_csi_txn_rec => px_csi_txn_rec,
4080: x_return_status => l_return_status);
4081:
4082: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4083: RAISE fnd_api.g_exc_error;
4084: END IF;
4085:
4086: ELSE -- wip_entity_type <> 4
4079: px_csi_txn_rec => px_csi_txn_rec,
4080: x_return_status => l_return_status);
4081:
4082: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4083: RAISE fnd_api.g_exc_error;
4084: END IF;
4085:
4086: ELSE -- wip_entity_type <> 4
4087:
4091: p_txn_ref => p_txn_ref,
4092: px_csi_txn_rec => px_csi_txn_rec,
4093: x_return_status => l_return_status);
4094:
4095: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4096: RAISE fnd_api.g_exc_error;
4097: END IF;
4098:
4099: ELSE
4092: px_csi_txn_rec => px_csi_txn_rec,
4093: x_return_status => l_return_status);
4094:
4095: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4096: RAISE fnd_api.g_exc_error;
4097: END IF;
4098:
4099: ELSE
4100: debug('not handling relationship for wip_entity_type : '||p_txn_ref.wip_entity_type);
4111:
4112: EXCEPTION
4113: WHEN process_no_relation THEN
4114: null;
4115: WHEN fnd_api.g_exc_error THEN
4116: x_return_status := fnd_api.g_ret_sts_error;
4117: WHEN OTHERS THEN
4118: null;
4119: END process_relation_at_wipci;
4112: EXCEPTION
4113: WHEN process_no_relation THEN
4114: null;
4115: WHEN fnd_api.g_exc_error THEN
4116: x_return_status := fnd_api.g_ret_sts_error;
4117: WHEN OTHERS THEN
4118: null;
4119: END process_relation_at_wipci;
4120:
4130: l_int_party_id number;
4131: l_wip_loc_id number;
4132: BEGIN
4133:
4134: x_return_status := fnd_api.g_ret_sts_success;
4135:
4136: api_log('bld_inst_tables_for_issue');
4137:
4138: l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
4144: x_dest_loc_rec.wip_job_id := p_txn_ref.wip_entity_id;
4145: x_dest_loc_rec.instance_usage_code := 'IN_WIP';
4146: x_dest_loc_rec.last_wip_job_id := null; --bug 5376024
4147:
4148: x_dest_loc_rec.inv_organization_id := fnd_api.g_miss_num;
4149: x_dest_loc_rec.inv_subinventory_name := fnd_api.g_miss_char;
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4145: x_dest_loc_rec.instance_usage_code := 'IN_WIP';
4146: x_dest_loc_rec.last_wip_job_id := null; --bug 5376024
4147:
4148: x_dest_loc_rec.inv_organization_id := fnd_api.g_miss_num;
4149: x_dest_loc_rec.inv_subinventory_name := fnd_api.g_miss_char;
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4153: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
4146: x_dest_loc_rec.last_wip_job_id := null; --bug 5376024
4147:
4148: x_dest_loc_rec.inv_organization_id := fnd_api.g_miss_num;
4149: x_dest_loc_rec.inv_subinventory_name := fnd_api.g_miss_char;
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4153: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
4154: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
4147:
4148: x_dest_loc_rec.inv_organization_id := fnd_api.g_miss_num;
4149: x_dest_loc_rec.inv_subinventory_name := fnd_api.g_miss_char;
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4153: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
4154: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
4155:
4148: x_dest_loc_rec.inv_organization_id := fnd_api.g_miss_num;
4149: x_dest_loc_rec.inv_subinventory_name := fnd_api.g_miss_char;
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4153: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
4154: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
4155:
4156: -- build instances
4149: x_dest_loc_rec.inv_subinventory_name := fnd_api.g_miss_char;
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4153: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
4154: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
4155:
4156: -- build instances
4157: x_instances_tbl(1).ib_txn_segment_flag := 'S';
4150: x_dest_loc_rec.inv_locator_id := fnd_api.g_miss_num;
4151: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
4152: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
4153: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
4154: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
4155:
4156: -- build instances
4157: x_instances_tbl(1).ib_txn_segment_flag := 'S';
4158: x_instances_tbl(1).inventory_item_id := p_mmt_rec.inventory_item_id;
4160: x_instances_tbl(1).vld_organization_id := p_mmt_rec.organization_id;
4161: x_instances_tbl(1).inv_master_organization_id := p_txn_ref.master_organization_id;
4162: x_instances_tbl(1).serial_number := p_mmt_rec.serial_number;
4163:
4164: IF nvl(x_instances_tbl(1).serial_number,fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
4165: x_instances_tbl(1).mfg_serial_number_flag := 'Y';
4166: ELSE
4167: x_instances_tbl(1).mfg_serial_number_flag := 'N';
4168: END IF;
4174:
4175: x_instances_tbl(1).location_type_code := 'INVENTORY';
4176: x_instances_tbl(1).location_id := p_mmt_rec.subinv_location_id;
4177:
4178: IF nvl(x_instances_tbl(1).location_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
4179: x_instances_tbl(1).location_id := p_mmt_rec.hr_location_id;
4180: END IF;
4181:
4182: x_instances_tbl(1).inv_organization_id := p_mmt_rec.organization_id;
4207: px_csi_txn_rec IN OUT nocopy csi_datastructures_pub.transaction_rec,
4208: x_replace_rebuilds OUT nocopy eam_utility_grp.replace_rebuild_tbl_type,
4209: x_return_status OUT nocopy varchar2)
4210: IS
4211: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4212: l_msg_count number;
4213: l_msg_data varchar2(2000);
4214:
4215: l_replace_rebuild_tbl EAM_Utility_GRP.Replace_Rebuild_TBL_Type;
4215: l_replace_rebuild_tbl EAM_Utility_GRP.Replace_Rebuild_TBL_Type;
4216: l_entity_type NUMBER := 0; --Added for bug 7363267
4217: BEGIN
4218:
4219: x_return_status := fnd_api.g_ret_sts_success;
4220:
4221: api_log('delink_replacerebuilds');
4222:
4223: SELECT entity_type
4232: debug('Inside API : eam_utility_grp.get_replacedrebuilds');
4233:
4234: EAM_Utility_Grp.Get_ReplacedRebuilds (
4235: p_api_version => 1.0,
4236: p_commit => fnd_api.g_false,
4237: p_validation_level => fnd_api.g_valid_level_full,
4238: p_init_msg_list => fnd_api.g_true,
4239: p_wip_entity_id => p_wip_entity_id,
4240: p_organization_id => p_organization_id,
4233:
4234: EAM_Utility_Grp.Get_ReplacedRebuilds (
4235: p_api_version => 1.0,
4236: p_commit => fnd_api.g_false,
4237: p_validation_level => fnd_api.g_valid_level_full,
4238: p_init_msg_list => fnd_api.g_true,
4239: p_wip_entity_id => p_wip_entity_id,
4240: p_organization_id => p_organization_id,
4241: x_replaced_rebuild_tbl => l_replace_rebuild_tbl,
4234: EAM_Utility_Grp.Get_ReplacedRebuilds (
4235: p_api_version => 1.0,
4236: p_commit => fnd_api.g_false,
4237: p_validation_level => fnd_api.g_valid_level_full,
4238: p_init_msg_list => fnd_api.g_true,
4239: p_wip_entity_id => p_wip_entity_id,
4240: p_organization_id => p_organization_id,
4241: x_replaced_rebuild_tbl => l_replace_rebuild_tbl,
4242: x_return_status => l_return_status,
4242: x_return_status => l_return_status,
4243: x_msg_count => l_msg_count,
4244: x_msg_data => l_msg_data);
4245:
4246: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4247: RAISE fnd_api.g_exc_error;
4248: END IF;
4249:
4250: debug(' replace_rebuild_tbl.count : '||l_replace_rebuild_tbl.COUNT);
4243: x_msg_count => l_msg_count,
4244: x_msg_data => l_msg_data);
4245:
4246: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4247: RAISE fnd_api.g_exc_error;
4248: END IF;
4249:
4250: debug(' replace_rebuild_tbl.count : '||l_replace_rebuild_tbl.COUNT);
4251:
4257: p_instance_id => l_replace_rebuild_tbl(l_ind).instance_id,
4258: p_csi_txn_rec => px_csi_txn_rec,
4259: x_return_status => l_return_status);
4260:
4261: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4262: RAISE fnd_api.g_exc_error;
4263: END IF;
4264:
4265: END LOOP;
4258: p_csi_txn_rec => px_csi_txn_rec,
4259: x_return_status => l_return_status);
4260:
4261: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4262: RAISE fnd_api.g_exc_error;
4263: END IF;
4264:
4265: END LOOP;
4266: END IF;
4265: END LOOP;
4266: END IF;
4267: END IF;
4268: EXCEPTION
4269: WHEN fnd_api.g_exc_error THEN
4270: x_return_status := fnd_api.g_ret_sts_error;
4271: END Delink_ReplaceRebuilds;
4272:
4273: PROCEDURE wip_issue(
4266: END IF;
4267: END IF;
4268: EXCEPTION
4269: WHEN fnd_api.g_exc_error THEN
4270: x_return_status := fnd_api.g_ret_sts_error;
4271: END Delink_ReplaceRebuilds;
4272:
4273: PROCEDURE wip_issue(
4274: p_mmt_rec IN mtl_material_transactions%rowtype,
4298: l_c_instances_tbl csi_process_txn_grp.txn_instances_tbl;
4299: l_c_parties_tbl csi_process_txn_grp.txn_i_parties_tbl;
4300: l_c_org_units_tbl csi_process_txn_grp.txn_org_units_tbl;
4301:
4302: l_api_success varchar2(1) := fnd_api.g_ret_sts_success;
4303: l_error_message varchar2(2000);
4304: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4305: l_msg_count number;
4306: l_msg_data varchar2(2000);
4300: l_c_org_units_tbl csi_process_txn_grp.txn_org_units_tbl;
4301:
4302: l_api_success varchar2(1) := fnd_api.g_ret_sts_success;
4303: l_error_message varchar2(2000);
4304: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4305: l_msg_count number;
4306: l_msg_data varchar2(2000);
4307:
4308: l_issued_instances csi_datastructures_pub.instance_tbl;
4311: l_error_rec csi_datastructures_pub.transaction_error_rec;
4312:
4313: BEGIN
4314:
4315: x_return_status := fnd_api.g_ret_sts_success;
4316:
4317: api_log('wip_issue');
4318:
4319: l_error_rec := px_trx_error_rec;
4325: x_mmt_tbl => l_mmt_tbl,
4326: x_return_status => l_return_status);
4327:
4328: IF l_return_status <> l_api_success THEN
4329: RAISE fnd_api.g_exc_error;
4330: END IF;
4331:
4332: l_error_rec.source_header_ref := l_txn_ref.wip_entity_name;
4333: l_error_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
4362: x_org_units_tbl => l_c_org_units_tbl,
4363: x_return_status => l_return_status);
4364:
4365: IF l_return_status <> l_api_success THEN
4366: RAISE fnd_api.g_exc_error;
4367: END IF;
4368:
4369: csi_process_txn_grp.process_transaction(
4370: p_api_version => 1.0,
4367: END IF;
4368:
4369: csi_process_txn_grp.process_transaction(
4370: p_api_version => 1.0,
4371: p_commit => fnd_api.g_false,
4372: p_init_msg_list => fnd_api.g_false,
4373: p_validation_level => fnd_api.g_valid_level_full,
4374: p_validate_only_flag => fnd_api.g_false,
4375: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
4368:
4369: csi_process_txn_grp.process_transaction(
4370: p_api_version => 1.0,
4371: p_commit => fnd_api.g_false,
4372: p_init_msg_list => fnd_api.g_false,
4373: p_validation_level => fnd_api.g_valid_level_full,
4374: p_validate_only_flag => fnd_api.g_false,
4375: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
4376: p_dest_location_rec => l_c_dest_loc_rec,
4369: csi_process_txn_grp.process_transaction(
4370: p_api_version => 1.0,
4371: p_commit => fnd_api.g_false,
4372: p_init_msg_list => fnd_api.g_false,
4373: p_validation_level => fnd_api.g_valid_level_full,
4374: p_validate_only_flag => fnd_api.g_false,
4375: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
4376: p_dest_location_rec => l_c_dest_loc_rec,
4377: p_txn_rec => l_csi_txn_rec,
4370: p_api_version => 1.0,
4371: p_commit => fnd_api.g_false,
4372: p_init_msg_list => fnd_api.g_false,
4373: p_validation_level => fnd_api.g_valid_level_full,
4374: p_validate_only_flag => fnd_api.g_false,
4375: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
4376: p_dest_location_rec => l_c_dest_loc_rec,
4377: p_txn_rec => l_csi_txn_rec,
4378: p_instances_tbl => l_c_instances_tbl,
4388: x_msg_count => l_msg_count,
4389: x_msg_data => l_msg_data );
4390:
4391: IF l_return_status <> l_api_success THEN
4392: RAISE fnd_api.g_exc_error;
4393: END IF;
4394:
4395: IF l_c_instances_tbl.COUNT > 0 THEN
4396: FOR l_c_ind IN l_c_instances_tbl.FIRST .. l_c_instances_tbl.LAST
4414: p_component_instances => l_issued_instances,
4415: px_csi_txn_rec => l_csi_txn_rec,
4416: x_return_status => l_return_status);
4417:
4418: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4419: RAISE fnd_api.g_exc_error;
4420: END IF;
4421: END IF;
4422:
4415: px_csi_txn_rec => l_csi_txn_rec,
4416: x_return_status => l_return_status);
4417:
4418: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4419: RAISE fnd_api.g_exc_error;
4420: END IF;
4421: END IF;
4422:
4423: END IF;
4422:
4423: END IF;
4424:
4425: EXCEPTION
4426: WHEN fnd_api.g_exc_error THEN
4427: px_trx_error_rec := l_error_rec;
4428: x_return_status := fnd_api.g_ret_sts_error;
4429: END wip_issue;
4430:
4424:
4425: EXCEPTION
4426: WHEN fnd_api.g_exc_error THEN
4427: px_trx_error_rec := l_error_rec;
4428: x_return_status := fnd_api.g_ret_sts_error;
4429: END wip_issue;
4430:
4431: PROCEDURE wip_comp_issue(
4432: p_transaction_id IN number,
4437:
4438: l_mmt_rec mtl_material_transactions%rowtype;
4439: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
4440: l_error_rec csi_datastructures_pub.transaction_error_rec;
4441: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4442:
4443: BEGIN
4444: x_return_status := fnd_api.g_ret_sts_success;
4445:
4440: l_error_rec csi_datastructures_pub.transaction_error_rec;
4441: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4442:
4443: BEGIN
4444: x_return_status := fnd_api.g_ret_sts_success;
4445:
4446: csi_t_gen_utility_pvt.build_file_name(
4447: p_file_segment1 => 'csiwipci',
4448: p_file_segment2 => p_transaction_id);
4470: l_error_rec.source_id := p_transaction_id;
4471: l_error_rec.transaction_type_id := 71;
4472: l_error_rec.message_id := p_message_id;
4473:
4474: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
4475: l_csi_txn_rec.transaction_date := sysdate;
4476: l_csi_txn_rec.transaction_type_id := 71;
4477: l_csi_txn_rec.txn_sub_type_id := 3;
4478: l_csi_txn_rec.message_id := p_message_id;
4489: px_csi_txn_rec => l_csi_txn_rec,
4490: px_trx_error_rec => l_error_rec,
4491: x_return_status => l_return_status);
4492:
4493: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4494: RAISE fnd_api.g_exc_error;
4495: END IF;
4496:
4497: debug('wip component issue transaction successful : '||p_transaction_id);
4490: px_trx_error_rec => l_error_rec,
4491: x_return_status => l_return_status);
4492:
4493: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4494: RAISE fnd_api.g_exc_error;
4495: END IF;
4496:
4497: debug('wip component issue transaction successful : '||p_transaction_id);
4498: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4497: debug('wip component issue transaction successful : '||p_transaction_id);
4498: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4499:
4500: EXCEPTION
4501: WHEN fnd_api.g_exc_error THEN
4502: rollback to wip_comp_issue;
4503: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4504: px_trx_error_rec := l_error_rec;
4505: x_return_status := fnd_api.g_ret_sts_error;
4501: WHEN fnd_api.g_exc_error THEN
4502: rollback to wip_comp_issue;
4503: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4504: px_trx_error_rec := l_error_rec;
4505: x_return_status := fnd_api.g_ret_sts_error;
4506: debug('Error(E) :'||l_error_rec.error_text);
4507:
4508: WHEN others then
4509: rollback to wip_comp_issue;
4513: fnd_msg_pub.add;
4514:
4515: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4516: px_trx_error_rec := l_error_rec;
4517: x_return_status := fnd_api.g_ret_sts_unexp_error;
4518: debug('Error(O) :'||l_error_rec.error_text);
4519: END wip_comp_issue;
4520:
4521: PROCEDURE wip_assy_return(
4527:
4528: l_mmt_rec mtl_material_transactions%rowtype;
4529: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
4530: l_error_rec csi_datastructures_pub.transaction_error_rec;
4531: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4532:
4533: BEGIN
4534: x_return_status := fnd_api.g_ret_sts_success;
4535:
4530: l_error_rec csi_datastructures_pub.transaction_error_rec;
4531: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4532:
4533: BEGIN
4534: x_return_status := fnd_api.g_ret_sts_success;
4535:
4536: csi_t_gen_utility_pvt.build_file_name(
4537: p_file_segment1 => 'csiwipar',
4538: p_file_segment2 => p_transaction_id);
4560: l_error_rec.source_id := p_transaction_id;
4561: l_error_rec.transaction_type_id := 74;
4562: l_error_rec.message_id := p_message_id;
4563:
4564: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
4565: l_csi_txn_rec.transaction_date := sysdate;
4566: l_csi_txn_rec.transaction_type_id := 74;
4567: l_csi_txn_rec.txn_sub_type_id := 3;
4568: l_csi_txn_rec.message_id := p_message_id;
4579: px_csi_txn_rec => l_csi_txn_rec,
4580: px_trx_error_rec => l_error_rec,
4581: x_return_status => l_return_status);
4582:
4583: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4584: RAISE fnd_api.g_exc_error;
4585: END IF;
4586:
4587: debug('wip assembly return transaction successful : '||p_transaction_id);
4580: px_trx_error_rec => l_error_rec,
4581: x_return_status => l_return_status);
4582:
4583: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4584: RAISE fnd_api.g_exc_error;
4585: END IF;
4586:
4587: debug('wip assembly return transaction successful : '||p_transaction_id);
4588: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4587: debug('wip assembly return transaction successful : '||p_transaction_id);
4588: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4589:
4590: EXCEPTION
4591: WHEN fnd_api.g_exc_error THEN
4592: rollback to wip_assy_return;
4593: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4594: px_trx_error_rec := l_error_rec;
4595: x_return_status := fnd_api.g_ret_sts_error;
4591: WHEN fnd_api.g_exc_error THEN
4592: rollback to wip_assy_return;
4593: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4594: px_trx_error_rec := l_error_rec;
4595: x_return_status := fnd_api.g_ret_sts_error;
4596: debug('Error(E) :'||l_error_rec.error_text);
4597:
4598: WHEN others then
4599: rollback to wip_assy_return;
4603: fnd_msg_pub.add;
4604:
4605: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4606: px_trx_error_rec := l_error_rec;
4607: x_return_status := fnd_api.g_ret_sts_unexp_error;
4608: debug('Error(O) :'||l_error_rec.error_text);
4609: END wip_assy_return;
4610:
4611:
4620:
4621: l_mmt_rec mtl_material_transactions%rowtype;
4622: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
4623: l_error_rec csi_datastructures_pub.transaction_error_rec;
4624: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4625:
4626: BEGIN
4627: x_return_status := fnd_api.g_ret_sts_success;
4628:
4623: l_error_rec csi_datastructures_pub.transaction_error_rec;
4624: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4625:
4626: BEGIN
4627: x_return_status := fnd_api.g_ret_sts_success;
4628:
4629: csi_t_gen_utility_pvt.build_file_name(
4630: p_file_segment1 => 'csiwipbr',
4631: p_file_segment2 => p_transaction_id);
4653: l_error_rec.source_id := p_transaction_id;
4654: l_error_rec.transaction_type_id := 76;
4655: l_error_rec.message_id := p_message_id;
4656:
4657: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
4658: l_csi_txn_rec.transaction_date := sysdate;
4659: l_csi_txn_rec.transaction_type_id := 76;
4660: l_csi_txn_rec.txn_sub_type_id := 3;
4661: l_csi_txn_rec.message_id := p_message_id;
4672: px_csi_txn_rec => l_csi_txn_rec,
4673: px_trx_error_rec => l_error_rec,
4674: x_return_status => l_return_status);
4675:
4676: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4677: RAISE fnd_api.g_exc_error;
4678: END IF;
4679:
4680: debug('wip by product return transaction successful : '||p_transaction_id);
4673: px_trx_error_rec => l_error_rec,
4674: x_return_status => l_return_status);
4675:
4676: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4677: RAISE fnd_api.g_exc_error;
4678: END IF;
4679:
4680: debug('wip by product return transaction successful : '||p_transaction_id);
4681: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4680: debug('wip by product return transaction successful : '||p_transaction_id);
4681: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4682:
4683: EXCEPTION
4684: WHEN fnd_api.g_exc_error THEN
4685: rollback to wip_byproduct_return;
4686: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4687: px_trx_error_rec := l_error_rec;
4688: x_return_status := fnd_api.g_ret_sts_error;
4684: WHEN fnd_api.g_exc_error THEN
4685: rollback to wip_byproduct_return;
4686: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4687: px_trx_error_rec := l_error_rec;
4688: x_return_status := fnd_api.g_ret_sts_error;
4689: debug('Error(E) :'||l_error_rec.error_text);
4690:
4691: WHEN others then
4692: rollback to wip_byproduct_return;
4696: fnd_msg_pub.add;
4697:
4698: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4699: px_trx_error_rec := l_error_rec;
4700: x_return_status := fnd_api.g_ret_sts_unexp_error;
4701: debug('Error(O) :'||l_error_rec.error_text);
4702: END wip_byproduct_return;
4703:
4704:
4711:
4712: l_mmt_rec mtl_material_transactions%rowtype;
4713: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
4714: l_error_rec csi_datastructures_pub.transaction_error_rec;
4715: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4716:
4717: BEGIN
4718: x_return_status := fnd_api.g_ret_sts_success;
4719:
4714: l_error_rec csi_datastructures_pub.transaction_error_rec;
4715: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4716:
4717: BEGIN
4718: x_return_status := fnd_api.g_ret_sts_success;
4719:
4720: csi_t_gen_utility_pvt.build_file_name(
4721: p_file_segment1 => 'csiwipnr',
4722: p_file_segment2 => p_transaction_id);
4744: l_error_rec.source_id := p_transaction_id;
4745: l_error_rec.transaction_type_id := 71;
4746: l_error_rec.message_id := p_message_id;
4747:
4748: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
4749: l_csi_txn_rec.transaction_date := sysdate;
4750: l_csi_txn_rec.transaction_type_id := 71;
4751: l_csi_txn_rec.txn_sub_type_id := 3;
4752: l_csi_txn_rec.message_id := p_message_id;
4763: px_csi_txn_rec => l_csi_txn_rec,
4764: px_trx_error_rec => l_error_rec,
4765: x_return_status => l_return_status);
4766:
4767: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4768: RAISE fnd_api.g_exc_error;
4769: END IF;
4770:
4771: debug('wip negative component return transaction successful : '||p_transaction_id);
4764: px_trx_error_rec => l_error_rec,
4765: x_return_status => l_return_status);
4766:
4767: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4768: RAISE fnd_api.g_exc_error;
4769: END IF;
4770:
4771: debug('wip negative component return transaction successful : '||p_transaction_id);
4772: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4771: debug('wip negative component return transaction successful : '||p_transaction_id);
4772: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
4773:
4774: EXCEPTION
4775: WHEN fnd_api.g_exc_error THEN
4776: rollback to wip_neg_comp_return;
4777: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4778: px_trx_error_rec := l_error_rec;
4779: x_return_status := fnd_api.g_ret_sts_error;
4775: WHEN fnd_api.g_exc_error THEN
4776: rollback to wip_neg_comp_return;
4777: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4778: px_trx_error_rec := l_error_rec;
4779: x_return_status := fnd_api.g_ret_sts_error;
4780: debug('Error(E) :'||l_error_rec.error_text);
4781:
4782: WHEN others then
4783: rollback to wip_neg_comp_return;
4787: fnd_msg_pub.add;
4788:
4789: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
4790: px_trx_error_rec := l_error_rec;
4791: x_return_status := fnd_api.g_ret_sts_unexp_error;
4792: debug('Error(O) :'||l_error_rec.error_text);
4793: END wip_neg_comp_return;
4794:
4795: PROCEDURE get_issued_serial_instance(
4800: l_party_query_rec csi_datastructures_pub.party_query_rec;
4801: l_pty_acct_query_rec csi_datastructures_pub.party_account_query_rec;
4802:
4803: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
4804: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4805: l_msg_count number;
4806: l_msg_data varchar2(2000);
4807:
4808: BEGIN
4806: l_msg_data varchar2(2000);
4807:
4808: BEGIN
4809:
4810: x_return_status := fnd_api.g_ret_sts_success;
4811: api_log('get_issued_serial_instance');
4812:
4813: -- look for a serialized instance in csi_item_instances
4814: -- if it is in customer location then
4817: l_inst_query_rec.serial_number := px_instance_rec.serial_number;
4818:
4819: csi_item_instance_pub.get_item_instances(
4820: p_api_version => 1.0,
4821: p_commit => fnd_api.g_false,
4822: p_init_msg_list => fnd_api.g_true,
4823: p_validation_level => fnd_api.g_valid_level_full,
4824: p_instance_query_rec => l_inst_query_rec,
4825: p_party_query_rec => l_party_query_rec,
4818:
4819: csi_item_instance_pub.get_item_instances(
4820: p_api_version => 1.0,
4821: p_commit => fnd_api.g_false,
4822: p_init_msg_list => fnd_api.g_true,
4823: p_validation_level => fnd_api.g_valid_level_full,
4824: p_instance_query_rec => l_inst_query_rec,
4825: p_party_query_rec => l_party_query_rec,
4826: p_account_query_rec => l_pty_acct_query_rec,
4819: csi_item_instance_pub.get_item_instances(
4820: p_api_version => 1.0,
4821: p_commit => fnd_api.g_false,
4822: p_init_msg_list => fnd_api.g_true,
4823: p_validation_level => fnd_api.g_valid_level_full,
4824: p_instance_query_rec => l_inst_query_rec,
4825: p_party_query_rec => l_party_query_rec,
4826: p_account_query_rec => l_pty_acct_query_rec,
4827: p_transaction_id => NULL,
4824: p_instance_query_rec => l_inst_query_rec,
4825: p_party_query_rec => l_party_query_rec,
4826: p_account_query_rec => l_pty_acct_query_rec,
4827: p_transaction_id => NULL,
4828: p_resolve_id_columns => fnd_api.g_false,
4829: p_active_instance_only => fnd_api.g_false,
4830: x_instance_header_tbl => l_instance_hdr_tbl,
4831: x_return_status => l_return_status,
4832: x_msg_count => l_msg_count,
4825: p_party_query_rec => l_party_query_rec,
4826: p_account_query_rec => l_pty_acct_query_rec,
4827: p_transaction_id => NULL,
4828: p_resolve_id_columns => fnd_api.g_false,
4829: p_active_instance_only => fnd_api.g_false,
4830: x_instance_header_tbl => l_instance_hdr_tbl,
4831: x_return_status => l_return_status,
4832: x_msg_count => l_msg_count,
4833: x_msg_data => l_msg_data );
4831: x_return_status => l_return_status,
4832: x_msg_count => l_msg_count,
4833: x_msg_data => l_msg_data );
4834:
4835: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4836: RAISE fnd_api.g_exc_error;
4837: END IF;
4838:
4839: IF l_instance_hdr_tbl.count = 0 THEN
4832: x_msg_count => l_msg_count,
4833: x_msg_data => l_msg_data );
4834:
4835: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4836: RAISE fnd_api.g_exc_error;
4837: END IF;
4838:
4839: IF l_instance_hdr_tbl.count = 0 THEN
4840: px_instance_rec.instance_id := fnd_api.g_miss_num;
4836: RAISE fnd_api.g_exc_error;
4837: END IF;
4838:
4839: IF l_instance_hdr_tbl.count = 0 THEN
4840: px_instance_rec.instance_id := fnd_api.g_miss_num;
4841: ELSE
4842: IF l_instance_hdr_tbl.count = 1 THEN
4843: px_instance_rec.instance_id := l_instance_hdr_tbl(1).instance_id;
4844: ELSE
4846: END IF;
4847: END IF;
4848:
4849: EXCEPTION
4850: WHEN fnd_api.g_exc_error THEN
4851: x_return_status := fnd_api.g_ret_sts_error;
4852: END get_issued_serial_instance;
4853:
4854: -- handle only the return of WIP instances
4847: END IF;
4848:
4849: EXCEPTION
4850: WHEN fnd_api.g_exc_error THEN
4851: x_return_status := fnd_api.g_ret_sts_error;
4852: END get_issued_serial_instance;
4853:
4854: -- handle only the return of WIP instances
4855: -- after the relations are build you could have multiple
4872: l_instance_hdr_tbl csi_datastructures_pub.instance_header_tbl;
4873: l_instance_tbl csi_datastructures_pub.instance_tbl;
4874:
4875:
4876: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4877: l_msg_count number;
4878: l_msg_data varchar2(2000);
4879:
4880: BEGIN
4886: p_api_name => 'get_item_instances');
4887:
4888: csi_item_instance_pub.get_item_instances(
4889: p_api_version => 1.0,
4890: p_commit => fnd_api.g_false,
4891: p_init_msg_list => fnd_api.g_true,
4892: p_validation_level => fnd_api.g_valid_level_full,
4893: p_instance_query_rec => p_instance_query_rec,
4894: p_party_query_rec => l_party_query_rec,
4887:
4888: csi_item_instance_pub.get_item_instances(
4889: p_api_version => 1.0,
4890: p_commit => fnd_api.g_false,
4891: p_init_msg_list => fnd_api.g_true,
4892: p_validation_level => fnd_api.g_valid_level_full,
4893: p_instance_query_rec => p_instance_query_rec,
4894: p_party_query_rec => l_party_query_rec,
4895: p_account_query_rec => l_pty_acct_query_rec,
4888: csi_item_instance_pub.get_item_instances(
4889: p_api_version => 1.0,
4890: p_commit => fnd_api.g_false,
4891: p_init_msg_list => fnd_api.g_true,
4892: p_validation_level => fnd_api.g_valid_level_full,
4893: p_instance_query_rec => p_instance_query_rec,
4894: p_party_query_rec => l_party_query_rec,
4895: p_account_query_rec => l_pty_acct_query_rec,
4896: p_transaction_id => null,
4893: p_instance_query_rec => p_instance_query_rec,
4894: p_party_query_rec => l_party_query_rec,
4895: p_account_query_rec => l_pty_acct_query_rec,
4896: p_transaction_id => null,
4897: p_resolve_id_columns => fnd_api.g_false,
4898: p_active_instance_only => fnd_api.g_true,
4899: x_instance_header_tbl => l_instance_hdr_tbl,
4900: x_return_status => l_return_status,
4901: x_msg_count => l_msg_count,
4894: p_party_query_rec => l_party_query_rec,
4895: p_account_query_rec => l_pty_acct_query_rec,
4896: p_transaction_id => null,
4897: p_resolve_id_columns => fnd_api.g_false,
4898: p_active_instance_only => fnd_api.g_true,
4899: x_instance_header_tbl => l_instance_hdr_tbl,
4900: x_return_status => l_return_status,
4901: x_msg_count => l_msg_count,
4902: x_msg_data => l_msg_data);
4900: x_return_status => l_return_status,
4901: x_msg_count => l_msg_count,
4902: x_msg_data => l_msg_data);
4903:
4904: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4905: RAISE fnd_api.g_exc_error;
4906: END IF;
4907:
4908: IF l_instance_hdr_tbl.COUNT > 0 THEN
4901: x_msg_count => l_msg_count,
4902: x_msg_data => l_msg_data);
4903:
4904: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4905: RAISE fnd_api.g_exc_error;
4906: END IF;
4907:
4908: IF l_instance_hdr_tbl.COUNT > 0 THEN
4909: csi_utl_pkg.make_non_header_tbl(
4910: p_instance_header_tbl => l_instance_hdr_tbl,
4911: x_instance_tbl => l_instance_tbl,
4912: x_return_status => l_return_status);
4913:
4914: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4915: RAISE fnd_api.g_exc_error;
4916: END IF;
4917: END IF;
4918:
4911: x_instance_tbl => l_instance_tbl,
4912: x_return_status => l_return_status);
4913:
4914: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4915: RAISE fnd_api.g_exc_error;
4916: END IF;
4917: END IF;
4918:
4919: x_instance_tbl := l_instance_tbl;
4918:
4919: x_instance_tbl := l_instance_tbl;
4920:
4921: EXCEPTION
4922: WHEN fnd_api.g_exc_error THEN
4923: x_return_status := fnd_api.g_ret_sts_error;
4924: END get_instances;
4925:
4926:
4919: x_instance_tbl := l_instance_tbl;
4920:
4921: EXCEPTION
4922: WHEN fnd_api.g_exc_error THEN
4923: x_return_status := fnd_api.g_ret_sts_error;
4924: END get_instances;
4925:
4926:
4927: PROCEDURE get_issued_in_wip_instance(
4934: IS
4935:
4936: l_inst_query_rec csi_datastructures_pub.instance_query_rec;
4937: l_inst_tbl csi_datastructures_pub.instance_tbl;
4938: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4939:
4940: BEGIN
4941:
4942: x_return_status := fnd_api.g_ret_sts_success;
4938: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4939:
4940: BEGIN
4941:
4942: x_return_status := fnd_api.g_ret_sts_success;
4943: api_log('get_issued_in_wip_instance');
4944:
4945: -- first get the excess WIP instance that needs to be knocked off
4946: l_inst_query_rec.inventory_item_id := p_component_item_id;
4954: p_instance_query_rec => l_inst_query_rec,
4955: x_instance_tbl => l_inst_tbl,
4956: x_return_status => l_return_status);
4957:
4958: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4959: RAISE fnd_api.g_exc_error;
4960: END IF;
4961:
4962: debug('IN_WIP Instances COUNT :'||l_inst_tbl.COUNT);
4955: x_instance_tbl => l_inst_tbl,
4956: x_return_status => l_return_status);
4957:
4958: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4959: RAISE fnd_api.g_exc_error;
4960: END IF;
4961:
4962: debug('IN_WIP Instances COUNT :'||l_inst_tbl.COUNT);
4963: x_instance_tbl := l_inst_tbl;
4961:
4962: debug('IN_WIP Instances COUNT :'||l_inst_tbl.COUNT);
4963: x_instance_tbl := l_inst_tbl;
4964: EXCEPTION
4965: WHEN fnd_api.g_exc_error THEN
4966: x_return_status := fnd_api.g_ret_sts_error;
4967: END get_issued_in_wip_instance;
4968:
4969:
4962: debug('IN_WIP Instances COUNT :'||l_inst_tbl.COUNT);
4963: x_instance_tbl := l_inst_tbl;
4964: EXCEPTION
4965: WHEN fnd_api.g_exc_error THEN
4966: x_return_status := fnd_api.g_ret_sts_error;
4967: END get_issued_in_wip_instance;
4968:
4969:
4970: PROCEDURE get_issued_in_inv_instances(
4977: IS
4978:
4979: l_inst_query_rec csi_datastructures_pub.instance_query_rec;
4980: l_inst_tbl csi_datastructures_pub.instance_tbl;
4981: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4982:
4983: BEGIN
4984:
4985: x_return_status := fnd_api.g_ret_sts_success;
4981: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
4982:
4983: BEGIN
4984:
4985: x_return_status := fnd_api.g_ret_sts_success;
4986: api_log('get_issued_in_inv_instances');
4987:
4988: l_inst_query_rec.inventory_item_id := p_component_item_id;
4989: l_inst_query_rec.last_wip_job_id := p_wip_entity_id;
4994: p_instance_query_rec => l_inst_query_rec,
4995: x_instance_tbl => l_inst_tbl,
4996: x_return_status => l_return_status);
4997:
4998: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4999: RAISE fnd_api.g_exc_error;
5000: END IF;
5001:
5002: debug('wip in_relation instance count: '||l_inst_tbl.COUNT);
4995: x_instance_tbl => l_inst_tbl,
4996: x_return_status => l_return_status);
4997:
4998: IF l_return_status <> fnd_api.g_ret_sts_success THEN
4999: RAISE fnd_api.g_exc_error;
5000: END IF;
5001:
5002: debug('wip in_relation instance count: '||l_inst_tbl.COUNT);
5003:
5019:
5020: x_instance_tbl := l_inst_tbl;
5021:
5022: EXCEPTION
5023: WHEN fnd_api.g_exc_error THEN
5024: x_return_status := fnd_api.g_ret_sts_error;
5025: END get_issued_in_inv_instances;
5026:
5027:
5020: x_instance_tbl := l_inst_tbl;
5021:
5022: EXCEPTION
5023: WHEN fnd_api.g_exc_error THEN
5024: x_return_status := fnd_api.g_ret_sts_error;
5025: END get_issued_in_inv_instances;
5026:
5027:
5028: PROCEDURE get_issued_in_rel_instances(
5035: IS
5036:
5037: l_inst_query_rec csi_datastructures_pub.instance_query_rec;
5038: l_inst_tbl csi_datastructures_pub.instance_tbl;
5039: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5040:
5041: BEGIN
5042:
5043: x_return_status := fnd_api.g_ret_sts_success;
5039: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5040:
5041: BEGIN
5042:
5043: x_return_status := fnd_api.g_ret_sts_success;
5044: api_log('get_issued_in_rel_instances');
5045:
5046: l_inst_query_rec.inventory_item_id := p_component_item_id;
5047: l_inst_query_rec.wip_job_id := p_wip_entity_id;
5052: p_instance_query_rec => l_inst_query_rec,
5053: x_instance_tbl => l_inst_tbl,
5054: x_return_status => l_return_status);
5055:
5056: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5057: RAISE fnd_api.g_exc_error;
5058: END IF;
5059:
5060: debug('repair in_relation instance count: '||l_inst_tbl.COUNT);
5053: x_instance_tbl => l_inst_tbl,
5054: x_return_status => l_return_status);
5055:
5056: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5057: RAISE fnd_api.g_exc_error;
5058: END IF;
5059:
5060: debug('repair in_relation instance count: '||l_inst_tbl.COUNT);
5061: x_instance_tbl := l_inst_tbl;
5060: debug('repair in_relation instance count: '||l_inst_tbl.COUNT);
5061: x_instance_tbl := l_inst_tbl;
5062:
5063: EXCEPTION
5064: WHEN fnd_api.g_exc_error THEN
5065: x_return_status := fnd_api.g_ret_sts_error;
5066: END get_issued_in_rel_instances;
5067:
5068: PROCEDURE deallocate_using_qty_per_assy(
5061: x_instance_tbl := l_inst_tbl;
5062:
5063: EXCEPTION
5064: WHEN fnd_api.g_exc_error THEN
5065: x_return_status := fnd_api.g_ret_sts_error;
5066: END get_issued_in_rel_instances;
5067:
5068: PROCEDURE deallocate_using_qty_per_assy(
5069: p_qty_returned IN number,
5091: l_da_ind binary_integer := 0;
5092: l_da_tbl da_tbl;
5093:
5094: l_parent_instance_id number;
5095: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5096:
5097: BEGIN
5098: x_return_status := fnd_api.g_ret_sts_success;
5099: api_log('deallocate_using_qty_per_assy');
5094: l_parent_instance_id number;
5095: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5096:
5097: BEGIN
5098: x_return_status := fnd_api.g_ret_sts_success;
5099: api_log('deallocate_using_qty_per_assy');
5100:
5101: l_inst_tbl := p_instances_tbl;
5102:
5158: p_quantity => l_qty_dealloc,
5159: px_csi_txn_rec => px_csi_txn_rec,
5160: x_return_status => l_return_status);
5161:
5162: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5163: RAISE fnd_api.g_exc_error;
5164: END IF;
5165:
5166: l_qty_available := l_qty_available - l_qty_dealloc;
5159: px_csi_txn_rec => px_csi_txn_rec,
5160: x_return_status => l_return_status);
5161:
5162: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5163: RAISE fnd_api.g_exc_error;
5164: END IF;
5165:
5166: l_qty_available := l_qty_available - l_qty_dealloc;
5167: l_qty_remaining := l_qty_remaining - l_qty_dealloc;
5177:
5178: x_qty_remaining := l_qty_remaining;
5179:
5180: EXCEPTION
5181: WHEN fnd_api.g_exc_error THEN
5182: x_return_status := fnd_api.g_ret_sts_error;
5183: END deallocate_using_qty_per_assy;
5184:
5185:
5178: x_qty_remaining := l_qty_remaining;
5179:
5180: EXCEPTION
5181: WHEN fnd_api.g_exc_error THEN
5182: x_return_status := fnd_api.g_ret_sts_error;
5183: END deallocate_using_qty_per_assy;
5184:
5185:
5186: PROCEDURE deallocate_wip_instances(
5200: l_qty_per_assy number;
5201: l_total_qty_issued number;
5202:
5203: l_instance_tbl csi_datastructures_pub.instance_tbl;
5204: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5205:
5206: BEGIN
5207:
5208: x_return_status := fnd_api.g_ret_sts_success;
5204: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5205:
5206: BEGIN
5207:
5208: x_return_status := fnd_api.g_ret_sts_success;
5209: api_log('deallocate_wip_instances');
5210:
5211: l_qty_remaining := p_returned_quantity;
5212:
5217: p_lot_number => p_lot_number,
5218: x_instance_tbl => l_instance_tbl,
5219: x_return_status => l_return_status);
5220:
5221: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5222: RAISE fnd_api.g_exc_error;
5223: END IF;
5224:
5225: IF l_instance_tbl.COUNT > 0 THEN
5218: x_instance_tbl => l_instance_tbl,
5219: x_return_status => l_return_status);
5220:
5221: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5222: RAISE fnd_api.g_exc_error;
5223: END IF;
5224:
5225: IF l_instance_tbl.COUNT > 0 THEN
5226: IF l_instance_tbl.COUNT = 1 THEN
5236: p_quantity => l_qty_to_dealloc,
5237: px_csi_txn_rec => px_csi_txn_rec,
5238: x_return_status => l_return_status);
5239:
5240: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5241: RAISE fnd_api.g_exc_error;
5242: END IF;
5243:
5244: l_qty_remaining := l_qty_remaining - l_qty_to_dealloc;
5237: px_csi_txn_rec => px_csi_txn_rec,
5238: x_return_status => l_return_status);
5239:
5240: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5241: RAISE fnd_api.g_exc_error;
5242: END IF;
5243:
5244: l_qty_remaining := l_qty_remaining - l_qty_to_dealloc;
5245:
5258: p_component_item_id => p_component_item_id,
5259: x_qty_per_assembly => l_qty_per_assy,
5260: x_return_status => l_return_status);
5261:
5262: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5263: RAISE fnd_api.g_exc_error;
5264: END IF;
5265:
5266: get_issued_in_inv_instances(
5259: x_qty_per_assembly => l_qty_per_assy,
5260: x_return_status => l_return_status);
5261:
5262: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5263: RAISE fnd_api.g_exc_error;
5264: END IF;
5265:
5266: get_issued_in_inv_instances(
5267: p_wip_entity_id => p_wip_entity_id,
5270: p_lot_number => p_lot_number,
5271: x_instance_tbl => l_instance_tbl,
5272: x_return_status => l_return_status);
5273:
5274: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5275: RAISE fnd_api.g_exc_error;
5276: END IF;
5277:
5278: IF l_qty_per_assy = 0 AND p_auto_allocate = 'Y' THEN
5271: x_instance_tbl => l_instance_tbl,
5272: x_return_status => l_return_status);
5273:
5274: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5275: RAISE fnd_api.g_exc_error;
5276: END IF;
5277:
5278: IF l_qty_per_assy = 0 AND p_auto_allocate = 'Y' THEN
5279:
5290: px_csi_txn_rec => px_csi_txn_rec,
5291: x_qty_remaining => l_qty_remaining,
5292: x_return_status => l_return_status);
5293:
5294: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5295: RAISE fnd_api.g_exc_error;
5296: END IF;
5297:
5298: IF l_qty_remaining > 0 THEN
5291: x_qty_remaining => l_qty_remaining,
5292: x_return_status => l_return_status);
5293:
5294: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5295: RAISE fnd_api.g_exc_error;
5296: END IF;
5297:
5298: IF l_qty_remaining > 0 THEN
5299:
5304: p_lot_number => p_lot_number,
5305: x_instance_tbl => l_instance_tbl,
5306: x_return_status => l_return_status);
5307:
5308: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5309: RAISE fnd_api.g_exc_error;
5310: END IF;
5311:
5312: deallocate_using_qty_per_assy(
5305: x_instance_tbl => l_instance_tbl,
5306: x_return_status => l_return_status);
5307:
5308: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5309: RAISE fnd_api.g_exc_error;
5310: END IF;
5311:
5312: deallocate_using_qty_per_assy(
5313: p_qty_returned => l_qty_remaining,
5316: px_csi_txn_rec => px_csi_txn_rec,
5317: x_qty_remaining => l_qty_remaining,
5318: x_return_status => l_return_status);
5319:
5320: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5321: RAISE fnd_api.g_exc_error;
5322: END IF;
5323: END IF;
5324:
5317: x_qty_remaining => l_qty_remaining,
5318: x_return_status => l_return_status);
5319:
5320: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5321: RAISE fnd_api.g_exc_error;
5322: END IF;
5323: END IF;
5324:
5325: END IF;
5324:
5325: END IF;
5326: END IF;
5327: EXCEPTION
5328: WHEN fnd_api.g_exc_error THEN
5329: x_return_status := fnd_api.g_ret_sts_error;
5330: END deallocate_wip_instances;
5331:
5332:
5325: END IF;
5326: END IF;
5327: EXCEPTION
5328: WHEN fnd_api.g_exc_error THEN
5329: x_return_status := fnd_api.g_ret_sts_error;
5330: END deallocate_wip_instances;
5331:
5332:
5333: PROCEDURE bld_inst_tables_for_return(
5345:
5346: l_int_party_id number;
5347: l_auto_allocate varchar2(1);
5348: l_wip_loc_id number;
5349: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5350: l_instance_id number;
5351:
5352: --Added for bug 5376024--
5353: l_inv_item_id number;
5366: l_parent_instance_id number;
5367:
5368: BEGIN
5369:
5370: x_return_status := fnd_api.g_ret_sts_success;
5371:
5372: api_log('bld_inst_tables_for_return');
5373:
5374: l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
5378: -- build destination location attribs
5379: l_dest_loc_rec.location_type_code := 'INVENTORY';
5380: l_dest_loc_rec.location_id := p_mmt_rec.subinv_location_id;
5381:
5382: IF nvl(x_dest_loc_rec.location_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
5383: l_dest_loc_rec.location_id := p_mmt_rec.hr_location_id;
5384: END IF;
5385:
5386: l_dest_loc_rec.inv_organization_id := p_mmt_rec.organization_id;
5385:
5386: l_dest_loc_rec.inv_organization_id := p_mmt_rec.organization_id;
5387: l_dest_loc_rec.inv_subinventory_name := p_mmt_rec.subinventory_code;
5388: l_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5389: l_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5390: l_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5391: l_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5392: l_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5393: l_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5386: l_dest_loc_rec.inv_organization_id := p_mmt_rec.organization_id;
5387: l_dest_loc_rec.inv_subinventory_name := p_mmt_rec.subinventory_code;
5388: l_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5389: l_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5390: l_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5391: l_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5392: l_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5393: l_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5394: l_dest_loc_rec.instance_usage_code := 'IN_INVENTORY';
5387: l_dest_loc_rec.inv_subinventory_name := p_mmt_rec.subinventory_code;
5388: l_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5389: l_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5390: l_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5391: l_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5392: l_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5393: l_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5394: l_dest_loc_rec.instance_usage_code := 'IN_INVENTORY';
5395:
5388: l_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5389: l_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5390: l_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5391: l_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5392: l_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5393: l_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5394: l_dest_loc_rec.instance_usage_code := 'IN_INVENTORY';
5395:
5396: -- build instances
5389: l_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5390: l_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5391: l_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5392: l_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5393: l_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5394: l_dest_loc_rec.instance_usage_code := 'IN_INVENTORY';
5395:
5396: -- build instances
5397: l_instances_tbl(1).ib_txn_segment_flag := 'S';
5400: l_instances_tbl(1).vld_organization_id := p_mmt_rec.organization_id;
5401: l_instances_tbl(1).inv_master_organization_id := p_txn_ref.master_organization_id;
5402: l_instances_tbl(1).serial_number := p_mmt_rec.serial_number;
5403:
5404: IF nvl(l_instances_tbl(1).serial_number,fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
5405: l_instances_tbl(1).mfg_serial_number_flag := 'Y';
5406: ELSE
5407: l_instances_tbl(1).mfg_serial_number_flag := 'N';
5408: END IF;
5411: l_instances_tbl(1).quantity := abs(p_mmt_rec.instance_quantity);
5412: l_instances_tbl(1).unit_of_measure := p_txn_ref.primary_uom_code;
5413:
5414: l_instances_tbl(1).location_type_code := 'WIP';
5415: l_instances_tbl(1).location_id := nvl(p_mmt_rec.organization_id,fnd_api.g_miss_num); --5224875
5416: l_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5417:
5418: l_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5419: l_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5414: l_instances_tbl(1).location_type_code := 'WIP';
5415: l_instances_tbl(1).location_id := nvl(p_mmt_rec.organization_id,fnd_api.g_miss_num); --5224875
5416: l_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5417:
5418: l_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5419: l_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5420: l_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5421:
5422: l_instances_tbl(1).active_start_date := p_txn_ref.transaction_date;
5415: l_instances_tbl(1).location_id := nvl(p_mmt_rec.organization_id,fnd_api.g_miss_num); --5224875
5416: l_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5417:
5418: l_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5419: l_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5420: l_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5421:
5422: l_instances_tbl(1).active_start_date := p_txn_ref.transaction_date;
5423: l_instances_tbl(1).customer_view_flag := 'N';
5416: l_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5417:
5418: l_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5419: l_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5420: l_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5421:
5422: l_instances_tbl(1).active_start_date := p_txn_ref.transaction_date;
5423: l_instances_tbl(1).customer_view_flag := 'N';
5424: l_instances_tbl(1).merchant_view_flag := 'Y';
5439: get_issued_serial_instance(
5440: px_instance_rec => l_instances_tbl(1),
5441: x_return_status => l_return_status);
5442:
5443: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5444: RAISE fnd_api.g_exc_error;
5445: END IF;
5446:
5447: -- check the location of the instance here before further process.
5440: px_instance_rec => l_instances_tbl(1),
5441: x_return_status => l_return_status);
5442:
5443: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5444: RAISE fnd_api.g_exc_error;
5445: END IF;
5446:
5447: -- check the location of the instance here before further process.
5448:
5446:
5447: -- check the location of the instance here before further process.
5448:
5449: -- any serialized component being returned back to Inv .
5450: IF nvl(l_instances_tbl(1).instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num
5451: THEN
5452:
5453: /* 1 - EAM, 2 - AHL 0 - NULL */
5454: IF p_txn_ref.wip_maint_source_code = 2 THEN
5469: IF l_relation_found = 'Y' THEN
5470: fnd_message.set_name('CSI', 'CSI_MAINT_JOB_RTN_DISALLOWED');
5471: fnd_message.set_token('PARENT_INSTANCE_ID', l_parent_instance_id);
5472: fnd_msg_pub.add;
5473: RAISE fnd_api.g_exc_error;
5474: END IF;
5475: END IF;
5476:
5477: csi_process_txn_pvt.check_and_break_relation(
5478: p_instance_id => l_instances_tbl(1).instance_id,
5479: p_csi_txn_rec => p_csi_txn_rec ,
5480: x_return_status => l_return_status);
5481:
5482: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5483: RAISE fnd_api.g_exc_error;
5484: END IF;
5485:
5486: l_parties_tbl.delete;
5479: p_csi_txn_rec => p_csi_txn_rec ,
5480: x_return_status => l_return_status);
5481:
5482: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5483: RAISE fnd_api.g_exc_error;
5484: END IF;
5485:
5486: l_parties_tbl.delete;
5487:
5522: debug('Second no data');
5523: null;
5524: END;
5525:
5526: IF nvl(l_instance_id,fnd_api.g_miss_num) <> fnd_api.g_miss_num THEN
5527: --decrement the wip instance
5528: debug('l_instance_id '||l_instance_id);
5529: decrement_wip_instance(
5530: p_instance_id => l_instance_id,
5547: x_return_status => l_return_status);
5548:
5549: END IF;
5550:
5551: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5552: RAISE fnd_api.g_exc_error;
5553: END IF;
5554:
5555: l_instances_tbl(1).instance_id := fnd_api.g_miss_num;
5548:
5549: END IF;
5550:
5551: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5552: RAISE fnd_api.g_exc_error;
5553: END IF;
5554:
5555: l_instances_tbl(1).instance_id := fnd_api.g_miss_num;
5556:
5551: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5552: RAISE fnd_api.g_exc_error;
5553: END IF;
5554:
5555: l_instances_tbl(1).instance_id := fnd_api.g_miss_num;
5556:
5557: END IF;
5558:
5559: x_dest_loc_rec := l_dest_loc_rec;
5561: x_parties_tbl := l_parties_tbl;
5562:
5563:
5564: EXCEPTION
5565: WHEN fnd_api.g_exc_error THEN
5566: x_return_status := fnd_api.g_ret_sts_error;
5567:
5568: END bld_inst_tables_for_return;
5569:
5562:
5563:
5564: EXCEPTION
5565: WHEN fnd_api.g_exc_error THEN
5566: x_return_status := fnd_api.g_ret_sts_error;
5567:
5568: END bld_inst_tables_for_return;
5569:
5570: /* main routine for the wip component return transaction. */
5596: l_c_instances_tbl csi_process_txn_grp.txn_instances_tbl;
5597: l_c_parties_tbl csi_process_txn_grp.txn_i_parties_tbl;
5598: l_c_org_units_tbl csi_process_txn_grp.txn_org_units_tbl;
5599:
5600: l_api_success varchar2(1) := fnd_api.g_ret_sts_success;
5601: l_error_message varchar2(2000);
5602: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5603: l_msg_count number;
5604: l_msg_data varchar2(2000);
5598: l_c_org_units_tbl csi_process_txn_grp.txn_org_units_tbl;
5599:
5600: l_api_success varchar2(1) := fnd_api.g_ret_sts_success;
5601: l_error_message varchar2(2000);
5602: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5603: l_msg_count number;
5604: l_msg_data varchar2(2000);
5605: l_error_rec csi_datastructures_pub.transaction_error_rec;
5606:
5607: BEGIN
5608:
5609: savepoint wip_component_receipt;
5610:
5611: x_return_status := fnd_api.g_ret_sts_success;
5612:
5613: fnd_msg_pub.initialize;
5614:
5615:
5640: x_mmt_tbl => l_mmt_tbl,
5641: x_return_status => l_return_status);
5642:
5643: IF l_return_status <> l_api_success THEN
5644: RAISE fnd_api.g_exc_error;
5645: END IF;
5646:
5647: l_error_rec.source_header_ref := l_txn_ref.wip_entity_name;
5648: l_error_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
5654: l_error_rec.comms_nl_trackable_flag := l_txn_ref.ib_trackable_flag;
5655:
5656: IF l_mmt_tbl.COUNT > 0 THEN
5657:
5658: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
5659: l_csi_txn_rec.source_header_ref := l_txn_ref.wip_entity_name;
5660: l_csi_txn_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
5661: l_csi_txn_rec.source_transaction_date := l_txn_ref.transaction_date;
5662:
5686: x_org_units_tbl => l_c_org_units_tbl,
5687: x_return_status => l_return_status);
5688:
5689: IF l_return_status <> l_api_success THEN
5690: RAISE fnd_api.g_exc_error;
5691: END IF;
5692:
5693: csi_process_txn_grp.process_transaction(
5694: p_api_version => 1.0,
5691: END IF;
5692:
5693: csi_process_txn_grp.process_transaction(
5694: p_api_version => 1.0,
5695: p_commit => fnd_api.g_false,
5696: p_init_msg_list => fnd_api.g_false,
5697: p_validation_level => fnd_api.g_valid_level_full,
5698: p_validate_only_flag => fnd_api.g_false,
5699: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
5692:
5693: csi_process_txn_grp.process_transaction(
5694: p_api_version => 1.0,
5695: p_commit => fnd_api.g_false,
5696: p_init_msg_list => fnd_api.g_false,
5697: p_validation_level => fnd_api.g_valid_level_full,
5698: p_validate_only_flag => fnd_api.g_false,
5699: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
5700: p_dest_location_rec => l_c_dest_loc_rec,
5693: csi_process_txn_grp.process_transaction(
5694: p_api_version => 1.0,
5695: p_commit => fnd_api.g_false,
5696: p_init_msg_list => fnd_api.g_false,
5697: p_validation_level => fnd_api.g_valid_level_full,
5698: p_validate_only_flag => fnd_api.g_false,
5699: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
5700: p_dest_location_rec => l_c_dest_loc_rec,
5701: p_txn_rec => l_csi_txn_rec,
5694: p_api_version => 1.0,
5695: p_commit => fnd_api.g_false,
5696: p_init_msg_list => fnd_api.g_false,
5697: p_validation_level => fnd_api.g_valid_level_full,
5698: p_validate_only_flag => fnd_api.g_false,
5699: p_in_out_flag => l_in_out_flag, -- valid values are 'IN','OUT'
5700: p_dest_location_rec => l_c_dest_loc_rec,
5701: p_txn_rec => l_csi_txn_rec,
5702: p_instances_tbl => l_c_instances_tbl,
5712: x_msg_count => l_msg_count,
5713: x_msg_data => l_msg_data );
5714:
5715: IF l_return_status <> l_api_success THEN
5716: RAISE fnd_api.g_exc_error;
5717: END IF;
5718:
5719: END LOOP;
5720: END IF;
5722: debug('wip component return transaction successful : '||p_transaction_id);
5723: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
5724:
5725: EXCEPTION
5726: WHEN fnd_api.g_exc_error THEN
5727: rollback to wip_component_receipt;
5728: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
5729: px_trx_error_rec := l_error_rec;
5730: x_return_status := fnd_api.g_ret_sts_error;
5726: WHEN fnd_api.g_exc_error THEN
5727: rollback to wip_component_receipt;
5728: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
5729: px_trx_error_rec := l_error_rec;
5730: x_return_status := fnd_api.g_ret_sts_error;
5731:
5732: debug('Error(E) :'||l_error_rec.error_text);
5733:
5734: WHEN others then
5740: fnd_msg_pub.add;
5741:
5742: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
5743: px_trx_error_rec := l_error_rec;
5744: x_return_status := fnd_api.g_ret_sts_unexp_error;
5745:
5746: debug('Error(O) :'||l_error_rec.error_text);
5747:
5748: END wip_comp_receipt;
5759: IS
5760: l_int_party_id number;
5761: l_comp_is_assy varchar2(1) := 'N';
5762: l_issued_instances csi_datastructures_pub.instance_tbl;
5763: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5764: l_instance_found boolean := FALSE;
5765: BEGIN
5766:
5767: x_return_status := fnd_api.g_ret_sts_success;
5763: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5764: l_instance_found boolean := FALSE;
5765: BEGIN
5766:
5767: x_return_status := fnd_api.g_ret_sts_success;
5768: api_log('bld_inst_tables_for_compl');
5769:
5770: l_int_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
5771:
5773: x_dest_loc_rec.location_type_code := 'INVENTORY';
5774: x_dest_loc_rec.location_id := p_mmt_rec.subinv_location_id;
5775: x_dest_loc_rec.instance_usage_code := 'IN_INVENTORY';
5776:
5777: IF nvl(x_dest_loc_rec.location_id,fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
5778: x_dest_loc_rec.location_id := p_mmt_rec.hr_location_id;
5779: END IF;
5780:
5781: x_dest_loc_rec.inv_organization_id := p_mmt_rec.organization_id;
5781: x_dest_loc_rec.inv_organization_id := p_mmt_rec.organization_id;
5782: x_dest_loc_rec.inv_subinventory_name := p_mmt_rec.subinventory_code;
5783: x_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5784:
5785: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5786: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5787: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5788: x_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5789: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5782: x_dest_loc_rec.inv_subinventory_name := p_mmt_rec.subinventory_code;
5783: x_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5784:
5785: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5786: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5787: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5788: x_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5789: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5790:
5783: x_dest_loc_rec.inv_locator_id := p_mmt_rec.locator_id;
5784:
5785: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5786: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5787: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5788: x_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5789: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5790:
5791: -- instances
5784:
5785: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5786: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5787: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5788: x_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5789: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5790:
5791: -- instances
5792: x_instances_tbl(1).ib_txn_segment_flag := 'S';
5785: x_dest_loc_rec.pa_project_id := fnd_api.g_miss_num;
5786: x_dest_loc_rec.pa_project_task_id := fnd_api.g_miss_num;
5787: x_dest_loc_rec.in_transit_order_line_id := fnd_api.g_miss_num;
5788: x_dest_loc_rec.wip_job_id := fnd_api.g_miss_num;
5789: x_dest_loc_rec.po_order_line_id := fnd_api.g_miss_num;
5790:
5791: -- instances
5792: x_instances_tbl(1).ib_txn_segment_flag := 'S';
5793: x_instances_tbl(1).inventory_item_id := p_mmt_rec.inventory_item_id;
5798: x_instances_tbl(1).quantity := abs(p_mmt_rec.instance_quantity);
5799: x_instances_tbl(1).serial_number := p_mmt_rec.serial_number;
5800: x_instances_tbl(1).lot_number := p_mmt_rec.lot_number;
5801:
5802: IF nvl(x_instances_tbl(1).serial_number, fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
5803: x_instances_tbl(1).mfg_serial_number_flag := 'Y';
5804: END IF;
5805:
5806: x_instances_tbl(1).location_type_code := fnd_api.g_miss_char;
5802: IF nvl(x_instances_tbl(1).serial_number, fnd_api.g_miss_char) <> fnd_api.g_miss_char THEN
5803: x_instances_tbl(1).mfg_serial_number_flag := 'Y';
5804: END IF;
5805:
5806: x_instances_tbl(1).location_type_code := fnd_api.g_miss_char;
5807: x_instances_tbl(1).location_id := fnd_api.g_miss_num;
5808: x_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5809: x_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5810: x_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5803: x_instances_tbl(1).mfg_serial_number_flag := 'Y';
5804: END IF;
5805:
5806: x_instances_tbl(1).location_type_code := fnd_api.g_miss_char;
5807: x_instances_tbl(1).location_id := fnd_api.g_miss_num;
5808: x_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5809: x_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5810: x_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5811:
5804: END IF;
5805:
5806: x_instances_tbl(1).location_type_code := fnd_api.g_miss_char;
5807: x_instances_tbl(1).location_id := fnd_api.g_miss_num;
5808: x_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5809: x_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5810: x_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5811:
5812: x_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5805:
5806: x_instances_tbl(1).location_type_code := fnd_api.g_miss_char;
5807: x_instances_tbl(1).location_id := fnd_api.g_miss_num;
5808: x_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5809: x_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5810: x_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5811:
5812: x_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5813: x_instances_tbl(1).active_start_date := p_txn_ref.transaction_date;
5806: x_instances_tbl(1).location_type_code := fnd_api.g_miss_char;
5807: x_instances_tbl(1).location_id := fnd_api.g_miss_num;
5808: x_instances_tbl(1).inv_subinventory_name := fnd_api.g_miss_char;
5809: x_instances_tbl(1).inv_organization_id := fnd_api.g_miss_num;
5810: x_instances_tbl(1).inv_locator_id := fnd_api.g_miss_num;
5811:
5812: x_instances_tbl(1).last_wip_job_id := p_mmt_rec.transaction_source_id;
5813: x_instances_tbl(1).active_start_date := p_txn_ref.transaction_date;
5814: x_instances_tbl(1).customer_view_flag := 'N';
5855: p_serial_number => p_mmt_rec.serial_number,
5856: x_instance_tbl => l_issued_instances,
5857: x_return_status => l_return_status);
5858:
5859: IF x_return_status <> fnd_api.g_ret_sts_success THEN
5860: RAISE fnd_api.g_exc_error;
5861: END IF;
5862:
5863: IF l_issued_instances.count = 1 THEN
5856: x_instance_tbl => l_issued_instances,
5857: x_return_status => l_return_status);
5858:
5859: IF x_return_status <> fnd_api.g_ret_sts_success THEN
5860: RAISE fnd_api.g_exc_error;
5861: END IF;
5862:
5863: IF l_issued_instances.count = 1 THEN
5864: debug('Unique wip issued serial instance found. ID :'||l_issued_instances(1).instance_id);
5875: p_inventory_item_id => p_mmt_rec.inventory_item_id,
5876: p_serial_number => p_mmt_rec.serial_number,
5877: x_instance_tbl => l_issued_instances,
5878: x_return_status => l_return_status);
5879: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5880: RAISE fnd_api.g_exc_error;
5881: END IF;
5882: IF l_issued_instances.count = 1 THEN
5883: x_instances_tbl(1).instance_id := l_issued_instances(1).instance_id;
5876: p_serial_number => p_mmt_rec.serial_number,
5877: x_instance_tbl => l_issued_instances,
5878: x_return_status => l_return_status);
5879: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5880: RAISE fnd_api.g_exc_error;
5881: END IF;
5882: IF l_issued_instances.count = 1 THEN
5883: x_instances_tbl(1).instance_id := l_issued_instances(1).instance_id;
5884: l_instance_found := TRUE;
5891: p_instance_id => l_issued_instances(1).instance_id,
5892: p_csi_txn_rec => px_csi_txn_rec ,
5893: x_return_status => l_return_status);
5894:
5895: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5896: RAISE fnd_api.g_exc_error;
5897: END IF;
5898: END IF;
5899: END IF;
5892: p_csi_txn_rec => px_csi_txn_rec ,
5893: x_return_status => l_return_status);
5894:
5895: IF l_return_status <> fnd_api.g_ret_sts_success THEN
5896: RAISE fnd_api.g_exc_error;
5897: END IF;
5898: END IF;
5899: END IF;
5900:
5930: l_ext_attrib_values_tbl csi_process_txn_grp.txn_ext_attrib_values_tbl;
5931: l_pricing_attribs_tbl csi_process_txn_grp.txn_pricing_attribs_tbl;
5932: l_instance_asset_tbl csi_process_txn_grp.txn_instance_asset_tbl;
5933: l_ii_relationships_tbl csi_process_txn_grp.txn_ii_relationships_tbl;
5934: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
5935: l_msg_count number;
5936: l_msg_data varchar2(240);
5937:
5938: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
5941: l_c_instances_tbl csi_process_txn_grp.txn_instances_tbl;
5942: l_c_parties_tbl csi_process_txn_grp.txn_i_parties_tbl;
5943: l_c_org_units_tbl csi_process_txn_grp.txn_org_units_tbl;
5944:
5945: l_api_success varchar2(1) := fnd_api.g_ret_sts_success;
5946: l_error_message varchar2(2000);
5947:
5948: l_completed_instances csi_datastructures_pub.instance_tbl;
5949: l_c_ind binary_integer := 0;
5954: BEGIN
5955:
5956: savepoint wip_byproduct_completion;
5957:
5958: x_return_status := fnd_api.g_ret_sts_success;
5959:
5960: fnd_msg_pub.initialize;
5961:
5962: csi_t_gen_utility_pvt.build_file_name(
5985: x_mmt_tbl => l_mmt_tbl,
5986: x_return_status => l_return_status);
5987:
5988: IF l_return_status <> l_api_success THEN
5989: RAISE fnd_api.g_exc_error;
5990: END IF;
5991:
5992: l_error_rec.source_header_ref := l_txn_ref.wip_entity_name;
5993: l_error_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
5999: l_error_rec.comms_nl_trackable_flag := l_txn_ref.ib_trackable_flag;
6000:
6001: IF l_mmt_tbl.COUNT > 0 THEN
6002:
6003: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
6004: l_csi_txn_rec.source_transaction_date := l_txn_ref.transaction_date;
6005: l_csi_txn_rec.source_header_ref := l_txn_ref.wip_entity_name;
6006: l_csi_txn_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
6007:
6024: px_csi_txn_rec => l_csi_txn_rec,
6025: x_replace_rebuilds => l_replace_rebuilds,
6026: x_return_status => l_return_status);
6027:
6028: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6029: RAISE fnd_api.g_exc_error;
6030: END IF;
6031:
6032: END IF;
6025: x_replace_rebuilds => l_replace_rebuilds,
6026: x_return_status => l_return_status);
6027:
6028: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6029: RAISE fnd_api.g_exc_error;
6030: END IF;
6031:
6032: END IF;
6033:
6047: x_org_units_tbl => l_c_org_units_tbl,
6048: x_return_status => l_return_status);
6049:
6050: IF l_return_status <> l_api_success THEN
6051: RAISE fnd_api.g_exc_error;
6052: END IF;
6053:
6054: csi_process_txn_grp.process_transaction(
6055: p_api_version => 1.0,
6052: END IF;
6053:
6054: csi_process_txn_grp.process_transaction(
6055: p_api_version => 1.0,
6056: p_commit => fnd_api.g_false,
6057: p_init_msg_list => fnd_api.g_false,
6058: p_validation_level => fnd_api.g_valid_level_full,
6059: p_validate_only_flag => fnd_api.g_false,
6060: p_in_out_flag => l_in_out_flag,
6053:
6054: csi_process_txn_grp.process_transaction(
6055: p_api_version => 1.0,
6056: p_commit => fnd_api.g_false,
6057: p_init_msg_list => fnd_api.g_false,
6058: p_validation_level => fnd_api.g_valid_level_full,
6059: p_validate_only_flag => fnd_api.g_false,
6060: p_in_out_flag => l_in_out_flag,
6061: p_dest_location_rec => l_c_dest_loc_rec,
6054: csi_process_txn_grp.process_transaction(
6055: p_api_version => 1.0,
6056: p_commit => fnd_api.g_false,
6057: p_init_msg_list => fnd_api.g_false,
6058: p_validation_level => fnd_api.g_valid_level_full,
6059: p_validate_only_flag => fnd_api.g_false,
6060: p_in_out_flag => l_in_out_flag,
6061: p_dest_location_rec => l_c_dest_loc_rec,
6062: p_txn_rec => l_csi_txn_rec,
6055: p_api_version => 1.0,
6056: p_commit => fnd_api.g_false,
6057: p_init_msg_list => fnd_api.g_false,
6058: p_validation_level => fnd_api.g_valid_level_full,
6059: p_validate_only_flag => fnd_api.g_false,
6060: p_in_out_flag => l_in_out_flag,
6061: p_dest_location_rec => l_c_dest_loc_rec,
6062: p_txn_rec => l_csi_txn_rec,
6063: p_instances_tbl => l_c_instances_tbl,
6073: x_msg_count => l_msg_count,
6074: x_msg_data => l_msg_data );
6075:
6076: IF l_return_status <> l_api_success THEN
6077: RAISE fnd_api.g_exc_error;
6078: END IF;
6079:
6080: IF l_c_instances_tbl.COUNT > 0 THEN
6081: FOR l_a_ind IN l_c_instances_tbl.FIRST .. l_c_instances_tbl.LAST
6102: p_assembly_instances => l_completed_instances,
6103: px_csi_txn_rec => l_csi_txn_rec,
6104: x_return_status => l_return_status);
6105:
6106: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6107: RAISE fnd_api.g_exc_error;
6108: END IF;
6109: END IF;
6110:
6103: px_csi_txn_rec => l_csi_txn_rec,
6104: x_return_status => l_return_status);
6105:
6106: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6107: RAISE fnd_api.g_exc_error;
6108: END IF;
6109: END IF;
6110:
6111: END IF;
6112: debug('wip Byproduct completion transaction successful : '||p_transaction_id);
6113: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
6114:
6115: EXCEPTION
6116: WHEN fnd_api.g_exc_error THEN
6117: rollback to wip_byproduct_completion;
6118: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
6119: px_trx_error_rec := l_error_rec;
6120: x_return_status := fnd_api.g_ret_sts_error;
6116: WHEN fnd_api.g_exc_error THEN
6117: rollback to wip_byproduct_completion;
6118: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
6119: px_trx_error_rec := l_error_rec;
6120: x_return_status := fnd_api.g_ret_sts_error;
6121: debug('Error(E) :'||l_error_rec.error_text);
6122:
6123: WHEN others then
6124: rollback to wip_byproduct_completion;
6129: fnd_msg_pub.add;
6130:
6131: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
6132: px_trx_error_rec := l_error_rec;
6133: x_return_status := fnd_api.g_ret_sts_unexp_error;
6134: debug('Error(E) :'||l_error_rec.error_text);
6135:
6136: END wip_byproduct_completion;
6137:
6160: l_ext_attrib_values_tbl csi_process_txn_grp.txn_ext_attrib_values_tbl;
6161: l_pricing_attribs_tbl csi_process_txn_grp.txn_pricing_attribs_tbl;
6162: l_instance_asset_tbl csi_process_txn_grp.txn_instance_asset_tbl;
6163: l_ii_relationships_tbl csi_process_txn_grp.txn_ii_relationships_tbl;
6164: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6165: l_msg_count number;
6166: l_msg_data varchar2(240);
6167:
6168: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
6171: l_c_instances_tbl csi_process_txn_grp.txn_instances_tbl;
6172: l_c_parties_tbl csi_process_txn_grp.txn_i_parties_tbl;
6173: l_c_org_units_tbl csi_process_txn_grp.txn_org_units_tbl;
6174:
6175: l_api_success varchar2(1) := fnd_api.g_ret_sts_success;
6176: l_error_message varchar2(2000);
6177:
6178: l_completed_instances csi_datastructures_pub.instance_tbl;
6179: l_c_ind binary_integer := 0;
6184: BEGIN
6185:
6186: savepoint wip_assy_completion;
6187:
6188: x_return_status := fnd_api.g_ret_sts_success;
6189:
6190: fnd_msg_pub.initialize;
6191:
6192: csi_t_gen_utility_pvt.build_file_name(
6215: x_mmt_tbl => l_mmt_tbl,
6216: x_return_status => l_return_status);
6217:
6218: IF l_return_status <> l_api_success THEN
6219: RAISE fnd_api.g_exc_error;
6220: END IF;
6221:
6222: l_error_rec.source_header_ref := l_txn_ref.wip_entity_name;
6223: l_error_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
6229: l_error_rec.comms_nl_trackable_flag := l_txn_ref.ib_trackable_flag;
6230:
6231: IF l_mmt_tbl.COUNT > 0 THEN
6232:
6233: l_csi_txn_rec.transaction_id := fnd_api.g_miss_num;
6234: l_csi_txn_rec.source_transaction_date := l_txn_ref.transaction_date;
6235: l_csi_txn_rec.source_header_ref := l_txn_ref.wip_entity_name;
6236: l_csi_txn_rec.source_header_ref_id := l_txn_ref.wip_entity_id;
6237:
6254: px_csi_txn_rec => l_csi_txn_rec,
6255: x_replace_rebuilds => l_replace_rebuilds,
6256: x_return_status => l_return_status);
6257:
6258: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6259: RAISE fnd_api.g_exc_error;
6260: END IF;
6261:
6262: END IF;
6255: x_replace_rebuilds => l_replace_rebuilds,
6256: x_return_status => l_return_status);
6257:
6258: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6259: RAISE fnd_api.g_exc_error;
6260: END IF;
6261:
6262: END IF;
6263:
6277: x_org_units_tbl => l_c_org_units_tbl,
6278: x_return_status => l_return_status);
6279:
6280: IF l_return_status <> l_api_success THEN
6281: RAISE fnd_api.g_exc_error;
6282: END IF;
6283:
6284: csi_process_txn_grp.process_transaction(
6285: p_api_version => 1.0,
6282: END IF;
6283:
6284: csi_process_txn_grp.process_transaction(
6285: p_api_version => 1.0,
6286: p_commit => fnd_api.g_false,
6287: p_init_msg_list => fnd_api.g_false,
6288: p_validation_level => fnd_api.g_valid_level_full,
6289: p_validate_only_flag => fnd_api.g_false,
6290: p_in_out_flag => l_in_out_flag,
6283:
6284: csi_process_txn_grp.process_transaction(
6285: p_api_version => 1.0,
6286: p_commit => fnd_api.g_false,
6287: p_init_msg_list => fnd_api.g_false,
6288: p_validation_level => fnd_api.g_valid_level_full,
6289: p_validate_only_flag => fnd_api.g_false,
6290: p_in_out_flag => l_in_out_flag,
6291: p_dest_location_rec => l_c_dest_loc_rec,
6284: csi_process_txn_grp.process_transaction(
6285: p_api_version => 1.0,
6286: p_commit => fnd_api.g_false,
6287: p_init_msg_list => fnd_api.g_false,
6288: p_validation_level => fnd_api.g_valid_level_full,
6289: p_validate_only_flag => fnd_api.g_false,
6290: p_in_out_flag => l_in_out_flag,
6291: p_dest_location_rec => l_c_dest_loc_rec,
6292: p_txn_rec => l_csi_txn_rec,
6285: p_api_version => 1.0,
6286: p_commit => fnd_api.g_false,
6287: p_init_msg_list => fnd_api.g_false,
6288: p_validation_level => fnd_api.g_valid_level_full,
6289: p_validate_only_flag => fnd_api.g_false,
6290: p_in_out_flag => l_in_out_flag,
6291: p_dest_location_rec => l_c_dest_loc_rec,
6292: p_txn_rec => l_csi_txn_rec,
6293: p_instances_tbl => l_c_instances_tbl,
6303: x_msg_count => l_msg_count,
6304: x_msg_data => l_msg_data );
6305:
6306: IF l_return_status <> l_api_success THEN
6307: RAISE fnd_api.g_exc_error;
6308: END IF;
6309:
6310: IF l_c_instances_tbl.COUNT > 0 THEN
6311: FOR l_a_ind IN l_c_instances_tbl.FIRST .. l_c_instances_tbl.LAST
6332: p_assembly_instances => l_completed_instances,
6333: px_csi_txn_rec => l_csi_txn_rec,
6334: x_return_status => l_return_status);
6335:
6336: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6337: RAISE fnd_api.g_exc_error;
6338: END IF;
6339: END IF;
6340:
6333: px_csi_txn_rec => l_csi_txn_rec,
6334: x_return_status => l_return_status);
6335:
6336: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6337: RAISE fnd_api.g_exc_error;
6338: END IF;
6339: END IF;
6340:
6341: END IF;
6342: debug('wip assembly completion transaction successful : '||p_transaction_id);
6343: debug('end timestamp : '||to_char(sysdate, 'MM/DD/YY HH24:MI:SS'));
6344:
6345: EXCEPTION
6346: WHEN fnd_api.g_exc_error THEN
6347: rollback to wip_assy_completion;
6348: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
6349: px_trx_error_rec := l_error_rec;
6350: x_return_status := fnd_api.g_ret_sts_error;
6346: WHEN fnd_api.g_exc_error THEN
6347: rollback to wip_assy_completion;
6348: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
6349: px_trx_error_rec := l_error_rec;
6350: x_return_status := fnd_api.g_ret_sts_error;
6351: debug('Error(E) :'||l_error_rec.error_text);
6352:
6353: WHEN others then
6354: rollback to wip_assy_completion;
6359: fnd_msg_pub.add;
6360:
6361: l_error_rec.error_text := csi_t_gen_utility_pvt.dump_error_stack;
6362: px_trx_error_rec := l_error_rec;
6363: x_return_status := fnd_api.g_ret_sts_unexp_error;
6364: debug('Error(E) :'||l_error_rec.error_text);
6365:
6366: END wip_assy_completion;
6367:
6387: l_new_instance_qty number;
6388:
6389: l_iir_rec csi_datastructures_pub.ii_relationship_rec;
6390:
6391: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6392: l_msg_count number;
6393: l_msg_data varchar2(2000);
6394:
6395: BEGIN
6395: BEGIN
6396:
6397: api_log('build_ii_relation_rec');
6398:
6399: x_return_status := fnd_api.g_ret_sts_success;
6400:
6401: IF p_tld_tbl.COUNT > 0 THEN
6402: FOR l_ind IN p_tld_tbl.FIRST .. p_tld_tbl.LAST
6403: LOOP
6429: l_new_instance_qty := l_sub_tld_qty;
6430:
6431: csi_item_instance_pvt.split_item_instance (
6432: p_api_version => 1.0,
6433: p_commit => fnd_api.g_false,
6434: p_init_msg_list => fnd_api.g_true,
6435: p_validation_level => fnd_api.g_valid_level_full,
6436: p_source_instance_rec => l_source_instance_rec,
6437: p_quantity1 => l_source_instance_qty,
6430:
6431: csi_item_instance_pvt.split_item_instance (
6432: p_api_version => 1.0,
6433: p_commit => fnd_api.g_false,
6434: p_init_msg_list => fnd_api.g_true,
6435: p_validation_level => fnd_api.g_valid_level_full,
6436: p_source_instance_rec => l_source_instance_rec,
6437: p_quantity1 => l_source_instance_qty,
6438: p_quantity2 => l_new_instance_qty,
6431: csi_item_instance_pvt.split_item_instance (
6432: p_api_version => 1.0,
6433: p_commit => fnd_api.g_false,
6434: p_init_msg_list => fnd_api.g_true,
6435: p_validation_level => fnd_api.g_valid_level_full,
6436: p_source_instance_rec => l_source_instance_rec,
6437: p_quantity1 => l_source_instance_qty,
6438: p_quantity2 => l_new_instance_qty,
6439: p_copy_ext_attribs => fnd_api.g_true,
6435: p_validation_level => fnd_api.g_valid_level_full,
6436: p_source_instance_rec => l_source_instance_rec,
6437: p_quantity1 => l_source_instance_qty,
6438: p_quantity2 => l_new_instance_qty,
6439: p_copy_ext_attribs => fnd_api.g_true,
6440: p_copy_org_assignments => fnd_api.g_true,
6441: p_copy_parties => fnd_api.g_true,
6442: p_copy_accounts => fnd_api.g_true,
6443: p_copy_asset_assignments => fnd_api.g_true,
6436: p_source_instance_rec => l_source_instance_rec,
6437: p_quantity1 => l_source_instance_qty,
6438: p_quantity2 => l_new_instance_qty,
6439: p_copy_ext_attribs => fnd_api.g_true,
6440: p_copy_org_assignments => fnd_api.g_true,
6441: p_copy_parties => fnd_api.g_true,
6442: p_copy_accounts => fnd_api.g_true,
6443: p_copy_asset_assignments => fnd_api.g_true,
6444: p_copy_pricing_attribs => fnd_api.g_true,
6437: p_quantity1 => l_source_instance_qty,
6438: p_quantity2 => l_new_instance_qty,
6439: p_copy_ext_attribs => fnd_api.g_true,
6440: p_copy_org_assignments => fnd_api.g_true,
6441: p_copy_parties => fnd_api.g_true,
6442: p_copy_accounts => fnd_api.g_true,
6443: p_copy_asset_assignments => fnd_api.g_true,
6444: p_copy_pricing_attribs => fnd_api.g_true,
6445: p_txn_rec => px_txn_rec,
6438: p_quantity2 => l_new_instance_qty,
6439: p_copy_ext_attribs => fnd_api.g_true,
6440: p_copy_org_assignments => fnd_api.g_true,
6441: p_copy_parties => fnd_api.g_true,
6442: p_copy_accounts => fnd_api.g_true,
6443: p_copy_asset_assignments => fnd_api.g_true,
6444: p_copy_pricing_attribs => fnd_api.g_true,
6445: p_txn_rec => px_txn_rec,
6446: x_new_instance_rec => l_new_instance_rec,
6439: p_copy_ext_attribs => fnd_api.g_true,
6440: p_copy_org_assignments => fnd_api.g_true,
6441: p_copy_parties => fnd_api.g_true,
6442: p_copy_accounts => fnd_api.g_true,
6443: p_copy_asset_assignments => fnd_api.g_true,
6444: p_copy_pricing_attribs => fnd_api.g_true,
6445: p_txn_rec => px_txn_rec,
6446: x_new_instance_rec => l_new_instance_rec,
6447: x_return_status => l_return_status,
6440: p_copy_org_assignments => fnd_api.g_true,
6441: p_copy_parties => fnd_api.g_true,
6442: p_copy_accounts => fnd_api.g_true,
6443: p_copy_asset_assignments => fnd_api.g_true,
6444: p_copy_pricing_attribs => fnd_api.g_true,
6445: p_txn_rec => px_txn_rec,
6446: x_new_instance_rec => l_new_instance_rec,
6447: x_return_status => l_return_status,
6448: x_msg_count => l_msg_count,
6447: x_return_status => l_return_status,
6448: x_msg_count => l_msg_count,
6449: x_msg_data => l_msg_data);
6450:
6451: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6452: RAISE fnd_api.g_exc_error;
6453: END IF;
6454: l_sub_instance_id := l_new_instance_rec.instance_id;
6455:
6448: x_msg_count => l_msg_count,
6449: x_msg_data => l_msg_data);
6450:
6451: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6452: RAISE fnd_api.g_exc_error;
6453: END IF;
6454: l_sub_instance_id := l_new_instance_rec.instance_id;
6455:
6456: UPDATE csi_t_txn_line_details
6474: WHERE object_id = l_obj_instance_id
6475: AND subject_id = l_sub_instance_id;
6476: EXCEPTION
6477: WHEN no_data_found THEN
6478: l_iir_rec.relationship_id := fnd_api.g_miss_num;
6479: l_iir_rec.object_version_number := 1.0;
6480: END;
6481:
6482: END IF;
6489:
6490: x_iir_rec := l_iir_rec;
6491:
6492: EXCEPTION
6493: WHEN fnd_api.g_exc_error THEN
6494: x_return_status := fnd_api.g_ret_sts_error;
6495: END build_ii_relation_rec;
6496:
6497: PROCEDURE update_tld_status(
6490: x_iir_rec := l_iir_rec;
6491:
6492: EXCEPTION
6493: WHEN fnd_api.g_exc_error THEN
6494: x_return_status := fnd_api.g_ret_sts_error;
6495: END build_ii_relation_rec;
6496:
6497: PROCEDURE update_tld_status(
6498: p_tld_tbl IN csi_t_datastructures_grp.txn_line_detail_tbl,
6538: l_u_iir_tbl csi_datastructures_pub.ii_relationship_tbl;
6539: l_c_ind binary_integer := 0;
6540: l_u_ind binary_integer := 0;
6541:
6542: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6543: l_msg_count number;
6544: l_msg_data varchar2(2000);
6545: l_error_message varchar2(2000);
6546:
6562: WHERE wip_entity_id = p_wip_entity_id;
6563:
6564: debug(' wip_entity_name :'||l_wip_entity_name);
6565:
6566: x_return_status := fnd_api.g_ret_sts_success;
6567:
6568: l_tl_query_rec.source_transaction_table := 'WIP_ENTITIES';
6569: l_tl_query_rec.source_transaction_id := p_wip_entity_id;
6570: l_tld_query_rec.processing_status := 'UNPROCESSED';
6571:
6572: --get_transaction_details
6573: csi_t_txn_details_grp.get_transaction_details (
6574: p_api_version => 1.0,
6575: p_commit => fnd_api.g_false,
6576: p_init_msg_list => fnd_api.g_true,
6577: p_validation_level => fnd_api.g_valid_level_full,
6578: p_txn_line_query_rec => l_tl_query_rec,
6579: p_txn_line_detail_query_rec => l_tld_query_rec,
6572: --get_transaction_details
6573: csi_t_txn_details_grp.get_transaction_details (
6574: p_api_version => 1.0,
6575: p_commit => fnd_api.g_false,
6576: p_init_msg_list => fnd_api.g_true,
6577: p_validation_level => fnd_api.g_valid_level_full,
6578: p_txn_line_query_rec => l_tl_query_rec,
6579: p_txn_line_detail_query_rec => l_tld_query_rec,
6580: x_txn_line_detail_tbl => l_tld_tbl,
6573: csi_t_txn_details_grp.get_transaction_details (
6574: p_api_version => 1.0,
6575: p_commit => fnd_api.g_false,
6576: p_init_msg_list => fnd_api.g_true,
6577: p_validation_level => fnd_api.g_valid_level_full,
6578: p_txn_line_query_rec => l_tl_query_rec,
6579: p_txn_line_detail_query_rec => l_tld_query_rec,
6580: x_txn_line_detail_tbl => l_tld_tbl,
6581: p_get_parties_flag => fnd_api.g_false,
6577: p_validation_level => fnd_api.g_valid_level_full,
6578: p_txn_line_query_rec => l_tl_query_rec,
6579: p_txn_line_detail_query_rec => l_tld_query_rec,
6580: x_txn_line_detail_tbl => l_tld_tbl,
6581: p_get_parties_flag => fnd_api.g_false,
6582: x_txn_party_detail_tbl => l_tpty_tbl,
6583: p_get_pty_accts_flag => fnd_api.g_false,
6584: x_txn_pty_acct_detail_tbl => l_tpacct_tbl,
6585: p_get_ii_rltns_flag => fnd_api.g_true,
6579: p_txn_line_detail_query_rec => l_tld_query_rec,
6580: x_txn_line_detail_tbl => l_tld_tbl,
6581: p_get_parties_flag => fnd_api.g_false,
6582: x_txn_party_detail_tbl => l_tpty_tbl,
6583: p_get_pty_accts_flag => fnd_api.g_false,
6584: x_txn_pty_acct_detail_tbl => l_tpacct_tbl,
6585: p_get_ii_rltns_flag => fnd_api.g_true,
6586: x_txn_ii_rltns_tbl => l_tiir_tbl,
6587: p_get_org_assgns_flag => fnd_api.g_false,
6581: p_get_parties_flag => fnd_api.g_false,
6582: x_txn_party_detail_tbl => l_tpty_tbl,
6583: p_get_pty_accts_flag => fnd_api.g_false,
6584: x_txn_pty_acct_detail_tbl => l_tpacct_tbl,
6585: p_get_ii_rltns_flag => fnd_api.g_true,
6586: x_txn_ii_rltns_tbl => l_tiir_tbl,
6587: p_get_org_assgns_flag => fnd_api.g_false,
6588: x_txn_org_assgn_tbl => l_toa_tbl,
6589: p_get_ext_attrib_vals_flag => fnd_api.g_false,
6583: p_get_pty_accts_flag => fnd_api.g_false,
6584: x_txn_pty_acct_detail_tbl => l_tpacct_tbl,
6585: p_get_ii_rltns_flag => fnd_api.g_true,
6586: x_txn_ii_rltns_tbl => l_tiir_tbl,
6587: p_get_org_assgns_flag => fnd_api.g_false,
6588: x_txn_org_assgn_tbl => l_toa_tbl,
6589: p_get_ext_attrib_vals_flag => fnd_api.g_false,
6590: x_txn_ext_attrib_vals_tbl => l_teav_tbl,
6591: p_get_csi_attribs_flag => fnd_api.g_false,
6585: p_get_ii_rltns_flag => fnd_api.g_true,
6586: x_txn_ii_rltns_tbl => l_tiir_tbl,
6587: p_get_org_assgns_flag => fnd_api.g_false,
6588: x_txn_org_assgn_tbl => l_toa_tbl,
6589: p_get_ext_attrib_vals_flag => fnd_api.g_false,
6590: x_txn_ext_attrib_vals_tbl => l_teav_tbl,
6591: p_get_csi_attribs_flag => fnd_api.g_false,
6592: x_csi_ext_attribs_tbl => l_cea_tbl,
6593: p_get_csi_iea_values_flag => fnd_api.g_false,
6587: p_get_org_assgns_flag => fnd_api.g_false,
6588: x_txn_org_assgn_tbl => l_toa_tbl,
6589: p_get_ext_attrib_vals_flag => fnd_api.g_false,
6590: x_txn_ext_attrib_vals_tbl => l_teav_tbl,
6591: p_get_csi_attribs_flag => fnd_api.g_false,
6592: x_csi_ext_attribs_tbl => l_cea_tbl,
6593: p_get_csi_iea_values_flag => fnd_api.g_false,
6594: x_csi_iea_values_tbl => l_ceav_tbl,
6595: p_get_txn_systems_flag => fnd_api.g_false,
6589: p_get_ext_attrib_vals_flag => fnd_api.g_false,
6590: x_txn_ext_attrib_vals_tbl => l_teav_tbl,
6591: p_get_csi_attribs_flag => fnd_api.g_false,
6592: x_csi_ext_attribs_tbl => l_cea_tbl,
6593: p_get_csi_iea_values_flag => fnd_api.g_false,
6594: x_csi_iea_values_tbl => l_ceav_tbl,
6595: p_get_txn_systems_flag => fnd_api.g_false,
6596: x_txn_systems_tbl => l_tsys_tbl,
6597: x_return_status => l_return_status,
6591: p_get_csi_attribs_flag => fnd_api.g_false,
6592: x_csi_ext_attribs_tbl => l_cea_tbl,
6593: p_get_csi_iea_values_flag => fnd_api.g_false,
6594: x_csi_iea_values_tbl => l_ceav_tbl,
6595: p_get_txn_systems_flag => fnd_api.g_false,
6596: x_txn_systems_tbl => l_tsys_tbl,
6597: x_return_status => l_return_status,
6598: x_msg_count => l_msg_count,
6599: x_msg_data => l_msg_data);
6597: x_return_status => l_return_status,
6598: x_msg_count => l_msg_count,
6599: x_msg_data => l_msg_data);
6600:
6601: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6602: RAISE fnd_api.g_exc_error;
6603: END IF;
6604:
6605: debug(' txn_detail.count :'||l_tld_tbl.COUNT);
6598: x_msg_count => l_msg_count,
6599: x_msg_data => l_msg_data);
6600:
6601: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6602: RAISE fnd_api.g_exc_error;
6603: END IF;
6604:
6605: debug(' txn_detail.count :'||l_tld_tbl.COUNT);
6606: debug(' txn_rltns.count :'||l_tiir_tbl.COUNT);
6624: px_txn_rec => l_txn_rec,
6625: x_iir_rec => l_iir_rec,
6626: x_return_status => l_return_status);
6627:
6628: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6629: RAISE fnd_api.g_exc_error;
6630: END IF;
6631:
6632: IF nvl(l_iir_rec.relationship_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
6625: x_iir_rec => l_iir_rec,
6626: x_return_status => l_return_status);
6627:
6628: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6629: RAISE fnd_api.g_exc_error;
6630: END IF;
6631:
6632: IF nvl(l_iir_rec.relationship_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
6633: l_c_ind := l_c_ind + 1;
6628: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6629: RAISE fnd_api.g_exc_error;
6630: END IF;
6631:
6632: IF nvl(l_iir_rec.relationship_id, fnd_api.g_miss_num) = fnd_api.g_miss_num THEN
6633: l_c_ind := l_c_ind + 1;
6634: l_c_iir_tbl(l_c_ind) := l_iir_rec;
6635: ELSE
6636: l_u_ind := l_u_ind + 1;
6646: p_api_name => 'create_relationship');
6647:
6648: csi_ii_relationships_pub.create_relationship(
6649: p_api_version => 1.0,
6650: p_commit => fnd_api.g_false,
6651: p_init_msg_list => fnd_api.g_true,
6652: p_validation_level => fnd_api.g_valid_level_full,
6653: p_relationship_tbl => l_c_iir_tbl,
6654: p_txn_rec => l_txn_rec,
6647:
6648: csi_ii_relationships_pub.create_relationship(
6649: p_api_version => 1.0,
6650: p_commit => fnd_api.g_false,
6651: p_init_msg_list => fnd_api.g_true,
6652: p_validation_level => fnd_api.g_valid_level_full,
6653: p_relationship_tbl => l_c_iir_tbl,
6654: p_txn_rec => l_txn_rec,
6655: x_return_status => l_return_status,
6648: csi_ii_relationships_pub.create_relationship(
6649: p_api_version => 1.0,
6650: p_commit => fnd_api.g_false,
6651: p_init_msg_list => fnd_api.g_true,
6652: p_validation_level => fnd_api.g_valid_level_full,
6653: p_relationship_tbl => l_c_iir_tbl,
6654: p_txn_rec => l_txn_rec,
6655: x_return_status => l_return_status,
6656: x_msg_count => l_msg_count,
6655: x_return_status => l_return_status,
6656: x_msg_count => l_msg_count,
6657: x_msg_data => l_msg_data);
6658:
6659: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6660: RAISE fnd_api.g_exc_error;
6661: END IF;
6662: END IF;
6663:
6656: x_msg_count => l_msg_count,
6657: x_msg_data => l_msg_data);
6658:
6659: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6660: RAISE fnd_api.g_exc_error;
6661: END IF;
6662: END IF;
6663:
6664: debug('update_relationship.COUNT :'||l_u_iir_tbl.COUNT);
6669: p_api_name => 'update_relationship');
6670:
6671: debug('No code here yet for update relationship...');
6672:
6673: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6674: RAISE fnd_api.g_exc_error;
6675: END IF;
6676: END IF;
6677:
6670:
6671: debug('No code here yet for update relationship...');
6672:
6673: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6674: RAISE fnd_api.g_exc_error;
6675: END IF;
6676: END IF;
6677:
6678: update_tld_status(
6678: update_tld_status(
6679: p_tld_tbl => l_tld_tbl,
6680: x_return_status => l_return_status);
6681:
6682: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6683: RAISE fnd_api.g_exc_error;
6684: END IF;
6685:
6686: END IF;
6679: p_tld_tbl => l_tld_tbl,
6680: x_return_status => l_return_status);
6681:
6682: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6683: RAISE fnd_api.g_exc_error;
6684: END IF;
6685:
6686: END IF;
6687:
6685:
6686: END IF;
6687:
6688: EXCEPTION
6689: WHEN fnd_api.g_exc_error THEN
6690:
6691: rollback to process_manual_rltns;
6692: l_error_message := csi_t_gen_utility_pvt.dump_error_stack;
6693: debug('Error :'||l_error_message);
6692: l_error_message := csi_t_gen_utility_pvt.dump_error_stack;
6693: debug('Error :'||l_error_message);
6694:
6695: x_error_message := l_error_message;
6696: x_return_status := fnd_api.g_ret_sts_error;
6697: END process_manual_rltns;
6698:
6699: PROCEDURE eam_wip_completion(
6700: p_wip_entity_id IN number,
6713: AND msi.organization_id = mmt.organization_id
6714: AND msi.inventory_item_id = mmt.inventory_item_id
6715: AND nvl(msi.comms_nl_trackable_flag, 'N') = 'Y';
6716:
6717: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6718: l_processed_flag boolean := FALSE;
6719:
6720: CURSOR wip_inst_cur(p_wip_entity_id IN number, p_instance_id IN number) IS
6721: SELECT instance_id,
6754: END replace_rebuild;
6755:
6756: BEGIN
6757:
6758: x_return_status := fnd_api.g_ret_sts_success;
6759:
6760: csi_t_gen_utility_pvt.build_file_name(
6761: p_file_segment1 => 'csieamwc',
6762: p_file_segment2 => p_wip_entity_id);
6792: px_csi_txn_rec => l_csi_txn_rec,
6793: x_replace_rebuilds => l_replace_rebuilds,
6794: x_return_status => l_return_status);
6795:
6796: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6797: RAISE fnd_api.g_exc_error;
6798: END IF;
6799:
6800: FOR mtl_txn_rec IN mtl_txn_cur(
6793: x_replace_rebuilds => l_replace_rebuilds,
6794: x_return_status => l_return_status);
6795:
6796: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6797: RAISE fnd_api.g_exc_error;
6798: END IF;
6799:
6800: FOR mtl_txn_rec IN mtl_txn_cur(
6801: p_wip_entity_id => p_wip_entity_id,
6808: p_transaction_id => mtl_txn_rec.transaction_id,
6809: x_txn_found => l_processed_flag,
6810: x_return_status => l_return_status);
6811:
6812: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6813: RAISE fnd_api.g_exc_error;
6814: END IF;
6815:
6816: IF NOT( l_processed_flag ) THEN
6809: x_txn_found => l_processed_flag,
6810: x_return_status => l_return_status);
6811:
6812: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6813: RAISE fnd_api.g_exc_error;
6814: END IF;
6815:
6816: IF NOT( l_processed_flag ) THEN
6817:
6819: fnd_message.set_token('WIP_ENTITY_ID', p_wip_entity_id);
6820: fnd_message.set_token('MTL_TXN_ID', mtl_txn_rec.transaction_id);
6821:
6822: fnd_msg_pub.add;
6823: RAISE fnd_api.g_exc_error;
6824: END IF;
6825:
6826: END LOOP;
6827:
6845: -- eliminate replace rebuilds that are in the wip location
6846: IF NOT(replace_rebuild(wip_inst_rec.instance_id, l_replace_rebuilds)) THEN
6847:
6848: l_iir_ind := l_iir_ind + 1;
6849: l_ii_rltns_tbl(l_iir_ind).relationship_id := fnd_api.g_miss_num;
6850: l_ii_rltns_tbl(l_iir_ind).object_id := l_instance_id;
6851: l_ii_rltns_tbl(l_iir_ind).subject_id := wip_inst_rec.instance_id;
6852: l_ii_rltns_tbl(l_iir_ind).relationship_type_code := 'COMPONENT-OF';
6853:
6864: api_log(p_pkg_name => 'csi_ii_relationships_pub',p_api_name => 'create_relationship');
6865:
6866: csi_ii_relationships_pub.create_relationship(
6867: p_api_version => 1.0,
6868: p_commit => fnd_api.g_false,
6869: p_init_msg_list => fnd_api.g_true,
6870: p_validation_level => fnd_api.g_valid_level_full,
6871: p_relationship_tbl => l_ii_rltns_tbl,
6872: p_txn_rec => l_csi_txn_rec,
6865:
6866: csi_ii_relationships_pub.create_relationship(
6867: p_api_version => 1.0,
6868: p_commit => fnd_api.g_false,
6869: p_init_msg_list => fnd_api.g_true,
6870: p_validation_level => fnd_api.g_valid_level_full,
6871: p_relationship_tbl => l_ii_rltns_tbl,
6872: p_txn_rec => l_csi_txn_rec,
6873: x_return_status => l_return_status,
6866: csi_ii_relationships_pub.create_relationship(
6867: p_api_version => 1.0,
6868: p_commit => fnd_api.g_false,
6869: p_init_msg_list => fnd_api.g_true,
6870: p_validation_level => fnd_api.g_valid_level_full,
6871: p_relationship_tbl => l_ii_rltns_tbl,
6872: p_txn_rec => l_csi_txn_rec,
6873: x_return_status => l_return_status,
6874: x_msg_count => l_msg_count,
6873: x_return_status => l_return_status,
6874: x_msg_count => l_msg_count,
6875: x_msg_data => l_msg_data);
6876:
6877: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6878: RAISE fnd_api.g_exc_error;
6879: END IF;
6880:
6881: END IF;
6874: x_msg_count => l_msg_count,
6875: x_msg_data => l_msg_data);
6876:
6877: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6878: RAISE fnd_api.g_exc_error;
6879: END IF;
6880:
6881: END IF;
6882:
6882:
6883: debug('eam_wip_completion successful');
6884:
6885: EXCEPTION
6886: WHEN fnd_api.g_exc_error THEN
6887: x_return_status := fnd_api.g_ret_sts_error;
6888: END eam_wip_completion;
6889:
6890: PROCEDURE eam_rebuildable_return(
6883: debug('eam_wip_completion successful');
6884:
6885: EXCEPTION
6886: WHEN fnd_api.g_exc_error THEN
6887: x_return_status := fnd_api.g_ret_sts_error;
6888: END eam_wip_completion;
6889:
6890: PROCEDURE eam_rebuildable_return(
6891: p_wip_entity_id IN number,
6894: px_trx_error_rec OUT nocopy csi_datastructures_pub.transaction_error_rec,
6895: x_return_status OUT nocopy varchar2)
6896: IS
6897: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
6898: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6899: BEGIN
6900:
6901: x_return_status := fnd_api.g_ret_sts_success;
6902:
6897: l_csi_txn_rec csi_datastructures_pub.transaction_rec;
6898: l_return_status varchar2(1) := fnd_api.g_ret_sts_success;
6899: BEGIN
6900:
6901: x_return_status := fnd_api.g_ret_sts_success;
6902:
6903: csi_t_gen_utility_pvt.build_file_name(
6904: p_file_segment1 => 'csieamrr',
6905: p_file_segment2 => p_wip_entity_id);
6934: p_instance_id => p_instance_id,
6935: p_csi_txn_rec => l_csi_txn_rec ,
6936: x_return_status => l_return_status);
6937:
6938: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6939: RAISE fnd_api.g_exc_error;
6940: END IF;
6941:
6942: debug('eam_rebuildable_return successful');
6935: p_csi_txn_rec => l_csi_txn_rec ,
6936: x_return_status => l_return_status);
6937:
6938: IF l_return_status <> fnd_api.g_ret_sts_success THEN
6939: RAISE fnd_api.g_exc_error;
6940: END IF;
6941:
6942: debug('eam_rebuildable_return successful');
6943:
6941:
6942: debug('eam_rebuildable_return successful');
6943:
6944: EXCEPTION
6945: WHEN fnd_api.g_exc_error THEN
6946: x_return_status := fnd_api.g_ret_sts_error;
6947: END eam_rebuildable_return;
6948:
6949: END csi_wip_trxs_pkg;
6942: debug('eam_rebuildable_return successful');
6943:
6944: EXCEPTION
6945: WHEN fnd_api.g_exc_error THEN
6946: x_return_status := fnd_api.g_ret_sts_error;
6947: END eam_rebuildable_return;
6948:
6949: END csi_wip_trxs_pkg;