30: TYPE t_indexes IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
31:
32: -- vsingava bug6638552 23rd Nov '08
33: -- performance fix for model report
34: TYPE tNodeId IS TABLE OF cz_model_ref_expls.model_ref_expl_id%TYPE INDEX BY BINARY_INTEGER;
35: TYPE tParentId IS TABLE OF cz_model_ref_expls.parent_expl_node_id%TYPE INDEX BY BINARY_INTEGER;
36: TYPE tComponentId IS TABLE OF cz_model_ref_expls.component_id%TYPE INDEX BY BINARY_INTEGER;
37: TYPE tReferringId IS TABLE OF cz_model_ref_expls.referring_node_id%TYPE INDEX BY BINARY_INTEGER;
38: TYPE tNodeType IS TABLE OF cz_model_ref_expls.ps_node_type%TYPE INDEX BY BINARY_INTEGER;
31:
32: -- vsingava bug6638552 23rd Nov '08
33: -- performance fix for model report
34: TYPE tNodeId IS TABLE OF cz_model_ref_expls.model_ref_expl_id%TYPE INDEX BY BINARY_INTEGER;
35: TYPE tParentId IS TABLE OF cz_model_ref_expls.parent_expl_node_id%TYPE INDEX BY BINARY_INTEGER;
36: TYPE tComponentId IS TABLE OF cz_model_ref_expls.component_id%TYPE INDEX BY BINARY_INTEGER;
37: TYPE tReferringId IS TABLE OF cz_model_ref_expls.referring_node_id%TYPE INDEX BY BINARY_INTEGER;
38: TYPE tNodeType IS TABLE OF cz_model_ref_expls.ps_node_type%TYPE INDEX BY BINARY_INTEGER;
39:
32: -- vsingava bug6638552 23rd Nov '08
33: -- performance fix for model report
34: TYPE tNodeId IS TABLE OF cz_model_ref_expls.model_ref_expl_id%TYPE INDEX BY BINARY_INTEGER;
35: TYPE tParentId IS TABLE OF cz_model_ref_expls.parent_expl_node_id%TYPE INDEX BY BINARY_INTEGER;
36: TYPE tComponentId IS TABLE OF cz_model_ref_expls.component_id%TYPE INDEX BY BINARY_INTEGER;
37: TYPE tReferringId IS TABLE OF cz_model_ref_expls.referring_node_id%TYPE INDEX BY BINARY_INTEGER;
38: TYPE tNodeType IS TABLE OF cz_model_ref_expls.ps_node_type%TYPE INDEX BY BINARY_INTEGER;
39:
40: -- tables to cache model explosion data
33: -- performance fix for model report
34: TYPE tNodeId IS TABLE OF cz_model_ref_expls.model_ref_expl_id%TYPE INDEX BY BINARY_INTEGER;
35: TYPE tParentId IS TABLE OF cz_model_ref_expls.parent_expl_node_id%TYPE INDEX BY BINARY_INTEGER;
36: TYPE tComponentId IS TABLE OF cz_model_ref_expls.component_id%TYPE INDEX BY BINARY_INTEGER;
37: TYPE tReferringId IS TABLE OF cz_model_ref_expls.referring_node_id%TYPE INDEX BY BINARY_INTEGER;
38: TYPE tNodeType IS TABLE OF cz_model_ref_expls.ps_node_type%TYPE INDEX BY BINARY_INTEGER;
39:
40: -- tables to cache model explosion data
41: v_NodeId tNodeId;
34: TYPE tNodeId IS TABLE OF cz_model_ref_expls.model_ref_expl_id%TYPE INDEX BY BINARY_INTEGER;
35: TYPE tParentId IS TABLE OF cz_model_ref_expls.parent_expl_node_id%TYPE INDEX BY BINARY_INTEGER;
36: TYPE tComponentId IS TABLE OF cz_model_ref_expls.component_id%TYPE INDEX BY BINARY_INTEGER;
37: TYPE tReferringId IS TABLE OF cz_model_ref_expls.referring_node_id%TYPE INDEX BY BINARY_INTEGER;
38: TYPE tNodeType IS TABLE OF cz_model_ref_expls.ps_node_type%TYPE INDEX BY BINARY_INTEGER;
39:
40: -- tables to cache model explosion data
41: v_NodeId tNodeId;
42: v_ParentId tParentId;
662:
663: BEGIN
664: l_delta := p_curr_node_depth - p_new_parent_expl_node_depth;
665:
666: FOR i IN(SELECT * FROM CZ_MODEL_REF_EXPLS
667: START WITH model_ref_expl_id=p_model_ref_expl_id AND deleted_flag='0'
668: CONNECT BY PRIOR model_ref_expl_id=parent_expl_node_id AND deleted_flag='0'
669: AND PRIOR deleted_flag='0')
670: LOOP
667: START WITH model_ref_expl_id=p_model_ref_expl_id AND deleted_flag='0'
668: CONNECT BY PRIOR model_ref_expl_id=parent_expl_node_id AND deleted_flag='0'
669: AND PRIOR deleted_flag='0')
670: LOOP
671: x_expl_nodes_tbl(i.model_ref_expl_id) := allocateId('CZ_MODEL_REF_EXPLS_S');
672: --dbms_output.put_line('i.model_ref_expl_id:'||i.model_ref_expl_id);
673: --dbms_output.put_line(x_expl_nodes_tbl(i.model_ref_expl_id));
674: END LOOP;
675:
679: IF l_index IS NULL THEN
680: EXIT;
681: END IF;
682:
683: FOR i IN(SELECT * FROM CZ_MODEL_REF_EXPLS
684: WHERE model_ref_expl_id = l_index )
685: LOOP
686:
687: l_referring_node_id := NULL;
707: ELSE
708: l_referring_node_id := i.referring_node_id;
709: END IF;
710:
711: INSERT INTO CZ_MODEL_REF_EXPLS
712: (
713: MODEL_REF_EXPL_ID
714: ,COMPONENT_ID
715: ,PARENT_EXPL_NODE_ID
818:
819: -- if not a reference node, get the model_refexpl_id record in model ref expls
820: IF l_reference_id IS NULL THEN
821: SELECT model_ref_expl_id, node_depth INTO l_expl_id, l_curr_node_depth
822: FROM CZ_MODEL_REF_EXPLS
823: WHERE model_id=l_model_id AND component_id=l_component_id AND
824: child_model_expl_id IS NULL AND deleted_flag='0';
825: ELSE
826: SELECT MIN(node_depth) INTO l_min_node_depth
823: WHERE model_id=l_model_id AND component_id=l_component_id AND
824: child_model_expl_id IS NULL AND deleted_flag='0';
825: ELSE
826: SELECT MIN(node_depth) INTO l_min_node_depth
827: FROM CZ_MODEL_REF_EXPLS
828: WHERE model_id=l_model_id AND referring_node_id=p_node_id
829: AND deleted_flag='0';
830:
831: SELECT model_ref_expl_id, node_depth INTO l_expl_id, l_curr_node_depth
828: WHERE model_id=l_model_id AND referring_node_id=p_node_id
829: AND deleted_flag='0';
830:
831: SELECT model_ref_expl_id, node_depth INTO l_expl_id, l_curr_node_depth
832: FROM CZ_MODEL_REF_EXPLS
833: WHERE model_id=l_model_id AND referring_node_id=p_node_id AND
834: node_depth=l_min_node_depth AND deleted_flag='0';
835: END IF;
836:
835: END IF;
836:
837: -- get the ref expl id and node depth of the destination node in ref expls
838: SELECT model_ref_expl_id,node_depth INTO l_new_pr_expl_id, l_node_depth
839: FROM CZ_MODEL_REF_EXPLS
840: WHERE model_id=l_model_id AND component_id=(SELECT component_id
841: FROM CZ_PS_NODES WHERE ps_node_id = p_new_parent_id) AND referring_node_id IS NULL AND
842: child_model_expl_id IS NULL AND deleted_flag='0';
843:
1085:
1086: END LOOP;
1087:
1088: IF (l_virtual_flag='1' OR l_virtual_flag IS NULL) AND l_parent_id IS NOT NULL AND l_ps_node_type IN(COMPONENT_TYPE) THEN
1089: FOR i IN(SELECT model_ref_expl_id, node_depth FROM CZ_MODEL_REF_EXPLS
1090: WHERE parent_expl_node_id=l_expl_id AND
1091: (referring_node_id IS NULL AND component_id IN
1092: (SELECT ps_node_id FROM CZ_PS_NODES
1093: START WITH ps_node_id=p_node_id
1093: START WITH ps_node_id=p_node_id
1094: CONNECT BY PRIOR ps_node_id=parent_id AND
1095: deleted_flag='0' AND PRIOR deleted_flag='0'))
1096: UNION
1097: SELECT model_ref_expl_id, node_depth FROM CZ_MODEL_REF_EXPLS
1098: WHERE parent_expl_node_id=l_expl_id AND
1099: (referring_node_id IS NOT NULL AND referring_node_id IN
1100: (SELECT ps_node_id FROM CZ_PS_NODES
1101: START WITH ps_node_id=p_node_id
1221: END IF;
1222:
1223: IF (l_ps_node_type_tbl(l_index) IN (263, 264)) THEN
1224: SELECT model_ref_expl_id INTO l_new_expl_id
1225: FROM cz_model_ref_expls a, cz_ps_nodes b
1226: WHERE a.referring_node_id = l_ps_nodes_tbl(l_index)
1227: AND a.referring_node_id = b.ps_node_id
1228: AND b.devl_project_id = l_model_id
1229: AND a.model_id = l_model_id
1235: FROM cz_ps_nodes
1236: WHERE ps_node_id=l_ps_nodes_tbl(l_index);
1237:
1238: SELECT model_ref_expl_id INTO l_new_expl_id
1239: FROM cz_model_ref_expls a, cz_ps_nodes b
1240: WHERE a.component_id = b.ps_node_id
1241: AND b.ps_node_id = l_new_component_id
1242: AND b.devl_project_id = l_model_id
1243: AND a.model_id = b.devl_project_id
1263: EXIT;
1264: END IF;
1265: IF (l_ps_node_type_tbl(l_index) IN (263, 264)) THEN
1266:
1267: FOR k IN (SELECT * FROM cz_model_ref_expls
1268: START WITH model_id=l_model_id AND referring_node_id = l_index
1269: AND component_id = l_comp_tbl(l_index) AND ps_node_type = l_ps_node_type_tbl(l_index)
1270: AND deleted_flag = '0'
1271: CONNECT BY PRIOR model_ref_expl_id = parent_expl_node_id
1327: EXIT;
1328: END IF;
1329: IF (l_ps_node_type_tbl(l_index) IN (263, 264)) THEN
1330:
1331: FOR k IN (SELECT * FROM cz_model_ref_expls
1332: START WITH model_id=l_model_id AND referring_node_id = l_index
1333: AND component_id = l_comp_tbl(l_index) AND ps_node_type = l_ps_node_type_tbl(l_index)
1334: AND deleted_flag = '0'
1335: CONNECT BY PRIOR model_ref_expl_id = parent_expl_node_id
1903: --
1904: WHEN NO_DATA_FOUND THEN -- node is under some referenced model
1905: -- find ps_node_id of nearest reference above
1906: FOR p IN (SELECT referring_node_id
1907: FROM cz_model_ref_expls
1908: START WITH model_ref_expl_id=l_model_ref_expl_id
1909: CONNECT by PRIOR parent_expl_node_id=model_ref_expl_id AND
1910: deleted_flag='0' AND PRIOR deleted_flag='0' AND
1911: PRIOR referring_node_id IS NULL)
2791: IF l_ps_node_id IS NOT NULL THEN
2792: RETURN l_model_path;
2793: END IF;
2794:
2795: FOR i IN(SELECT * FROM CZ_MODEL_REF_EXPLS
2796: START WITH model_ref_expl_id=p_model_ref_expl_id
2797: CONNECT BY PRIOR parent_expl_node_id=model_ref_expl_id
2798: AND deleted_flag='0' AND PRIOR deleted_flag='0')
2799: LOOP
3057: --If ps_node_id is in the model with model_id = p_model_id then full path is equal to absolute path.
3058:
3059: IF l_ps_node_id IS NOT NULL THEN RETURN l_model_path; END IF;
3060:
3061: FOR i IN (SELECT * FROM cz_model_ref_expls
3062: START WITH model_ref_expl_id = p_model_ref_expl_id
3063: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id
3064: AND deleted_flag='0' AND PRIOR deleted_flag='0') LOOP
3065:
8696: EXIT;
8697: END LOOP;
8698: FOR c_node IN (SELECT NULL FROM cz_ps_nodes WHERE deleted_flag = '0'
8699: AND devl_project_id IN
8700: (SELECT component_id FROM cz_model_ref_expls
8701: WHERE deleted_flag = '0'
8702: AND model_id = v_devl_project_id
8703: AND ps_node_type IN (PS_NODE_TYPE_REFERENCE, PS_NODE_TYPE_CONNECTOR))
8704: AND name = c_name.name)LOOP
9706: -- vsingava: 24-Nov-2008; Bug 7297669; Populate the data for all non-ModelReport runs
9707: IF NOT modelReportRun THEN
9708: SELECT model_ref_expl_id, parent_expl_node_id, component_id, referring_node_id, ps_node_type
9709: BULK COLLECT INTO v_NodeId, v_ParentId, v_ComponentId, v_ReferringId, v_NodeType
9710: FROM cz_model_ref_expls
9711: WHERE model_id = v_devl_project_id
9712: AND deleted_flag = '0';
9713:
9714: FOR i IN 1..v_NodeId.COUNT LOOP
9947: IF(p_base_expl_id = p_node_expl_id)THEN RETURN YES; END IF;
9948:
9949: SELECT model_id,component_id,referring_node_id
9950: INTO l_root_model_id, l_component_id, l_referring_node_id
9951: FROM CZ_MODEL_REF_EXPLS WHERE model_ref_expl_id=p_node_expl_id;
9952:
9953: IF l_referring_node_id IS NULL THEN
9954: SELECT devl_project_id INTO l_model_id FROM CZ_PS_NODES
9955: WHERE ps_node_id=l_component_id;
9988: END IF;
9989:
9990: SELECT model_ref_expl_id, expl_node_type
9991: BULK COLLECT INTO v_base_expl_id_tab, v_base_expl_type_tab
9992: FROM cz_model_ref_expls
9993: WHERE deleted_flag = '0'
9994: START WITH model_ref_expl_id = p_base_expl_id
9995: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
9996:
9995: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
9996:
9997: SELECT model_ref_expl_id, expl_node_type
9998: BULK COLLECT INTO v_node_expl_id_tab, v_node_expl_type_tab
9999: FROM cz_model_ref_expls
10000: WHERE deleted_flag = '0'
10001: START WITH model_ref_expl_id = p_node_expl_id
10002: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10003:
10098: BEGIN
10099:
10100: SELECT component_id, referring_node_id
10101: INTO l_component_id, l_referring_node_id
10102: FROM cz_model_ref_expls WHERE model_ref_expl_id = p_base_expl_id;
10103:
10104: IF(p_base_node_id <> NVL(l_referring_node_id, l_component_id))THEN base_is_in_subtree := TRUE; END IF;
10105:
10106: SELECT component_id, referring_node_id
10104: IF(p_base_node_id <> NVL(l_referring_node_id, l_component_id))THEN base_is_in_subtree := TRUE; END IF;
10105:
10106: SELECT component_id, referring_node_id
10107: INTO l_component_id, l_referring_node_id
10108: FROM cz_model_ref_expls WHERE model_ref_expl_id = p_node_expl_id;
10109:
10110: IF(p_node_node_id <> NVL(l_referring_node_id, l_component_id))THEN node_is_in_subtree := TRUE; END IF;
10111:
10112: SELECT model_ref_expl_id, expl_node_type
10110: IF(p_node_node_id <> NVL(l_referring_node_id, l_component_id))THEN node_is_in_subtree := TRUE; END IF;
10111:
10112: SELECT model_ref_expl_id, expl_node_type
10113: BULK COLLECT INTO v_base_expl_id_tab, v_base_expl_type_tab
10114: FROM cz_model_ref_expls
10115: WHERE deleted_flag = '0'
10116: START WITH model_ref_expl_id = p_base_expl_id
10117: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10118:
10117: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10118:
10119: SELECT model_ref_expl_id, expl_node_type
10120: BULK COLLECT INTO v_node_expl_id_tab, v_node_expl_type_tab
10121: FROM cz_model_ref_expls
10122: WHERE deleted_flag = '0'
10123: START WITH model_ref_expl_id = p_node_expl_id
10124: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10125:
10243: END IF;
10244:
10245: SELECT model_ref_expl_id, referring_node_id, ps_node_type
10246: BULK COLLECT INTO v_base_expl_id_tab, v_base_ref_id_tab, v_base_expl_type_tab
10247: FROM cz_model_ref_expls
10248: WHERE deleted_flag = '0'
10249: START WITH model_ref_expl_id = p_base_expl_id
10250: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10251:
10250: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10251:
10252: SELECT model_ref_expl_id, referring_node_id, ps_node_type
10253: BULK COLLECT INTO v_node_expl_id_tab, v_node_ref_id_tab, v_node_expl_type_tab
10254: FROM cz_model_ref_expls
10255: WHERE deleted_flag = '0'
10256: START WITH model_ref_expl_id = p_node_expl_id
10257: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
10258:
10563: END;
10564: ---------------------------------------------------------------------------------------
10565: PROCEDURE verify_explosion(p_expl_id IN NUMBER) IS
10566: BEGIN
10567: SELECT NULL INTO aux_flag FROM cz_model_ref_expls
10568: WHERE deleted_flag = '0' AND model_ref_expl_id = p_expl_id
10569: AND model_id = v_model_id;
10570: EXCEPTION
10571: WHEN OTHERS THEN
11170: IF(p_base_pers_id = p_node_pers_id AND p_base_expl_id = p_node_expl_id)THEN RETURN NULL; END IF;
11171:
11172: SELECT model_ref_expl_id, referring_node_id, ps_node_type, component_id
11173: BULK COLLECT INTO v_base_expl_id_tab, v_base_ref_id_tab, v_base_expl_type_tab, v_base_component_id_tab
11174: FROM cz_model_ref_expls
11175: WHERE deleted_flag = '0'
11176: START WITH model_ref_expl_id = p_base_expl_id
11177: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
11178:
11177: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
11178:
11179: SELECT model_ref_expl_id, referring_node_id, ps_node_type, component_id
11180: BULK COLLECT INTO v_node_expl_id_tab, v_node_ref_id_tab, v_node_expl_type_tab, v_node_component_id_tab
11181: FROM cz_model_ref_expls
11182: WHERE deleted_flag = '0'
11183: START WITH model_ref_expl_id = p_node_expl_id
11184: CONNECT BY PRIOR parent_expl_node_id = model_ref_expl_id;
11185:
11726: END IF;
11727: END LOOP;
11728:
11729: SELECT referring_node_id, parent_expl_node_id INTO v_parent_id, v_expl_id
11730: FROM cz_model_ref_expls
11731: WHERE deleted_flag = '0'
11732: AND model_ref_expl_id = v_expl_id;
11733: END LOOP;
11734:
11796: FUNCTION annotated_node_path(p_model_id IN NUMBER,
11797: p_model_ref_expl_id IN NUMBER,
11798: p_ps_node_id IN NUMBER) RETURN VARCHAR2
11799: IS
11800: v_model_expl_id cz_model_ref_expls.model_ref_expl_id%TYPE;
11801: BEGIN
11802:
11803: SELECT model_ref_expl_id INTO v_model_expl_id FROM cz_model_ref_expls
11804: WHERE deleted_flag = '0'
11799: IS
11800: v_model_expl_id cz_model_ref_expls.model_ref_expl_id%TYPE;
11801: BEGIN
11802:
11803: SELECT model_ref_expl_id INTO v_model_expl_id FROM cz_model_ref_expls
11804: WHERE deleted_flag = '0'
11805: AND model_id = p_model_id
11806: AND parent_expl_node_id IS NULL;
11807:
11984: modelReportRun := TRUE; -- vsingava: 24-Nov-2008; Bug 7297669
11985: --Intitialize the explosion data.
11986: SELECT model_ref_expl_id, parent_expl_node_id, component_id, referring_node_id, ps_node_type
11987: BULK COLLECT INTO v_NodeId, v_ParentId, v_ComponentId, v_ReferringId, v_NodeType
11988: FROM cz_model_ref_expls
11989: WHERE model_id IN (SELECT component_id FROM cz_model_ref_expls
11990: WHERE model_id = p_devl_project_id AND deleted_flag = '0')
11991: AND deleted_flag = '0';
11992:
11985: --Intitialize the explosion data.
11986: SELECT model_ref_expl_id, parent_expl_node_id, component_id, referring_node_id, ps_node_type
11987: BULK COLLECT INTO v_NodeId, v_ParentId, v_ComponentId, v_ReferringId, v_NodeType
11988: FROM cz_model_ref_expls
11989: WHERE model_id IN (SELECT component_id FROM cz_model_ref_expls
11990: WHERE model_id = p_devl_project_id AND deleted_flag = '0')
11991: AND deleted_flag = '0';
11992:
11993: h_ParentId.DELETE;