454: -----------------------------------------------------------------------
455: -- Start of Comments --
456: -- Procedure name : Populate_Appl_MRs
457: -- Type : Private
458: -- Function : Calls FMP and populates the AHL_APPLICABLE_MRS table.
459: -- Pre-reqs :
460: -- Parameters :
461: --
462: -- Populate_Appl_MRs Parameters:
480:
481: BEGIN
482:
483: -- Initialize temporary table.
484: DELETE FROM AHL_APPLICABLE_MRS;
485:
486: -- call api to fetch all applicable mrs for ASO installation.
487: AHL_FMP_PVT.get_applicable_mrs(
488: p_api_version => l_api_version,
504: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
505: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
506: END IF;
507:
508: -- Populate temporary table ahl_applicable_mrs.
509: IF (l_appl_mrs_tbl.COUNT > 0) THEN
510: FOR i IN l_appl_mrs_tbl.FIRST..l_appl_mrs_tbl.LAST LOOP
511: -- dbms_output.put_line( l_appl_mrs_tbl(i).item_instance_id||' '||
512: -- l_appl_mrs_tbl(i).mr_header_id);
509: IF (l_appl_mrs_tbl.COUNT > 0) THEN
510: FOR i IN l_appl_mrs_tbl.FIRST..l_appl_mrs_tbl.LAST LOOP
511: -- dbms_output.put_line( l_appl_mrs_tbl(i).item_instance_id||' '||
512: -- l_appl_mrs_tbl(i).mr_header_id);
513: INSERT INTO AHL_APPLICABLE_MRS (
514: CSI_ITEM_INSTANCE_ID,
515: MR_HEADER_ID,
516: MR_EFFECTIVITY_ID,
517: REPETITIVE_FLAG ,
539: --------------------------------------------------------------------
540: PROCEDURE Process_Group_MRs
541: IS
542: --
543: CURSOR ahl_applicable_mrs_csr IS
544: SELECT distinct mr_header_id, csi_item_instance_id, descendent_count
545: FROM ahl_applicable_mrs
546: WHERE descendent_count > 0;
547:
541: IS
542: --
543: CURSOR ahl_applicable_mrs_csr IS
544: SELECT distinct mr_header_id, csi_item_instance_id, descendent_count
545: FROM ahl_applicable_mrs
546: WHERE descendent_count > 0;
547:
548: --
549: l_mr_header_id NUMBER;
554:
555: -- Initialize temporary table.
556: DELETE FROM AHL_APPLICABLE_MR_RELNS;
557:
558: OPEN ahl_applicable_mrs_csr;
559: LOOP
560: FETCH ahl_applicable_mrs_csr INTO l_mr_header_id,
561: l_csi_ii_id, l_desc_count;
562: EXIT WHEN ahl_applicable_mrs_csr%NOTFOUND;
556: DELETE FROM AHL_APPLICABLE_MR_RELNS;
557:
558: OPEN ahl_applicable_mrs_csr;
559: LOOP
560: FETCH ahl_applicable_mrs_csr INTO l_mr_header_id,
561: l_csi_ii_id, l_desc_count;
562: EXIT WHEN ahl_applicable_mrs_csr%NOTFOUND;
563: IF (l_desc_count > 0) THEN
564: process_group_mr_instance(
558: OPEN ahl_applicable_mrs_csr;
559: LOOP
560: FETCH ahl_applicable_mrs_csr INTO l_mr_header_id,
561: l_csi_ii_id, l_desc_count;
562: EXIT WHEN ahl_applicable_mrs_csr%NOTFOUND;
563: IF (l_desc_count > 0) THEN
564: process_group_mr_instance(
565: p_top_mr_id => l_mr_header_id,
566: p_top_item_instance_id => l_csi_ii_id);
565: p_top_mr_id => l_mr_header_id,
566: p_top_item_instance_id => l_csi_ii_id);
567: END IF;
568: END LOOP;
569: CLOSE ahl_applicable_mrs_csr;
570:
571: END Process_Group_MRs;
572:
573: -----------------------------------------------------------------------
647: --
648: CURSOR ahl_appl_parent_mr_csr(p_mr_id IN NUMBER) IS
649:
650: SELECT distinct csi_item_instance_id
651: FROM ahl_applicable_mrs
652: WHERE mr_header_id = p_mr_id;
653: --
654: CURSOR ahl_appl_child_mrs_csr(p_mr_id IN NUMBER,
655: p_item_instance_id IN NUMBER) IS
657: --Priyan Changed the SQl Query for performance tuning reasons
658: --Refer to Bug # 4918807
659:
660: /*SELECT distinct csi_item_instance_id
661: FROM ahl_applicable_mrs
662: WHERE mr_header_id = p_mr_id
663: AND (csi_item_instance_id = p_item_instance_id
664: OR csi_item_instance_id IN (SELECT subject_id
665: FROM csi_ii_relationships
674: ); */
675:
676: /* Modified for performance in R12.0. replaced with WITH clause
677: SELECT distinct csi_item_instance_id
678: FROM ahl_applicable_mrs amr,
679: (SELECT subject_id
680: FROM csi_ii_relationships
681: START WITH object_id = p_item_instance_id
682: AND relationship_type_code = 'COMPONENT-OF'
708: FROM DUAL)
709: SELECT csi_item_instance_id
710: FROM INST
711: WHERE EXISTS (SELECT 'x'
712: FROM ahl_applicable_mrs AMR
713: WHERE amr.mr_header_id = p_mr_id
714: AND amr.csi_item_instance_id = inst.csi_item_instance_id);
715: */
716:
716:
717: SELECT subject_id csi_item_instance_id
718: FROM csi_ii_relationships
719: WHERE EXISTS (SELECT 'x'
720: FROM ahl_applicable_mrs AMR
721: WHERE amr.mr_header_id = p_mr_id
722: AND amr.csi_item_instance_id = subject_id)
723: START WITH object_id = p_item_instance_id
724: AND relationship_type_code = 'COMPONENT-OF'
731: UNION ALL
732: SELECT p_item_instance_id csi_item_instance_id
733: FROM DUAL
734: WHERE EXISTS (SELECT 'x'
735: FROM ahl_applicable_mrs AMR
736: WHERE amr.mr_header_id = p_mr_id
737: AND amr.csi_item_instance_id = p_item_instance_id);
738: --
739: CURSOR ahl_appl_mrs_csr(p_mr_id IN NUMBER,