132: p_out_flag OUT NOCOPY INTEGER) IS
133:
134: BEGIN
135: p_out_flag:=0;
136: SELECT 1 INTO p_out_flag FROM CZ_PS_NODES
137: WHERE deleted_flag = NO_FLAG
138: AND ps_node_id=p_ps_node_id AND ps_node_type IN(COMPONENT_TYPE,PRODUCT_TYPE,
139: REFERENCE_TYPE,CONNECTOR_TYPE,BOM_MODEL_TYPE)
140: AND ps_node_id NOT IN
137: WHERE deleted_flag = NO_FLAG
138: AND ps_node_id=p_ps_node_id AND ps_node_type IN(COMPONENT_TYPE,PRODUCT_TYPE,
139: REFERENCE_TYPE,CONNECTOR_TYPE,BOM_MODEL_TYPE)
140: AND ps_node_id NOT IN
141: (SELECT ps_node_id FROM CZ_PS_NODES nodes
142: WHERE deleted_flag = NO_FLAG
143: AND devl_project_id =p_model_id
144: AND ps_node_type IN(COMPONENT_TYPE,REFERENCE_TYPE,CONNECTOR_TYPE,BOM_MODEL_TYPE)
145: AND MINIMUM = 1
167: p_out_flag OUT NOCOPY INTEGER) IS
168:
169: BEGIN
170: p_out_flag:=0;
171: SELECT 1 INTO p_out_flag FROM CZ_PS_NODES
172: WHERE deleted_flag = NO_FLAG
173: AND ps_node_id=p_ps_node_id AND (instantiable_flag IN (OPTIONAL_EXPL_TYPE,OPTIONAL_EXPL_TYPE) OR
174: (ps_node_type IN(COMPONENT_TYPE,PRODUCT_TYPE,REFERENCE_TYPE,CONNECTOR_TYPE,BOM_MODEL_TYPE) AND NOT(MAXIMUM=1 AND MINIMUM=1)));
175: EXCEPTION
315: p_model_id IN INTEGER) RETURN BOOLEAN IS
316:
317: v_iret INTEGER:=0;
318: v_bret BOOLEAN:=FALSE;
319: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
320:
321: BEGIN
322: SELECT instantiable_flag INTO v_instantiable_flag
323: FROM CZ_PS_NODES
319: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
320:
321: BEGIN
322: SELECT instantiable_flag INTO v_instantiable_flag
323: FROM CZ_PS_NODES
324: WHERE ps_node_id=p_ps_node_id;
325: IF v_instantiable_flag IN(OPTIONAL_EXPL_TYPE,MINMAX_EXPL_TYPE) THEN
326: RETURN TRUE;
327: ELSE
523:
524: PROCEDURE pop(p_id IN NUMBER) IS
525: v_ind NUMBER:=0;
526: BEGIN
527: FOR i IN(SELECT DISTINCT devl_project_id FROM CZ_PS_NODES a
528: WHERE reference_id=p_id AND deleted_flag=NO_FLAG AND
529: devl_project_id IN(SELECT object_id FROM CZ_RP_ENTRIES
530: WHERE object_id=a.devl_project_id AND object_type='PRJ' AND deleted_flag=NO_FLAG))
531: LOOP
833:
834: -- release memory allocated for t_subtree_tbl array
835: t_subtree_tbl.DELETE;
836:
837: FOR i IN(SELECT ps_node_id, devl_project_id FROM CZ_PS_NODES a
838: WHERE reference_id=p_model_id AND deleted_flag='0'
839: AND EXISTS (SELECT NULL FROM cz_devl_projects
840: WHERE devl_project_id = a.devl_project_id
841: AND deleted_flag='0'))
1210:
1211: t_subtree_tbl ArrayId; -- stores subtree array
1212: t_prev_level_expl_ids_tbl IntArray; -- stores expl_ids of the target subtree
1213: -- which will be used as child_expl_ids on the next level
1214: v_parent_ps_node_id CZ_PS_NODES.ps_node_id%TYPE; -- ps_node_id of new subtree root node
1215: v_parent_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE; -- expl_id of new subtree root node
1216: v_parent_level CZ_MODEL_REF_EXPLS.node_depth%TYPE; -- node_depth of new subtree root node
1217: v_target_root_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE; -- root expl_id of the target model
1218: v_next_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE; -- stores expl_id generated by sequence
1355: p_out_ps_node_id:=NULL_VALUE;
1356: p_out_expl_id:=NULL_VALUE;
1357: p_out_level:=NULL_VALUE;
1358:
1359: FOR i IN (SELECT ps_node_id,ps_node_type,parent_id FROM CZ_PS_NODES
1360: WHERE ps_node_id=p_ps_node_id AND deleted_flag=NO_FLAG)
1361: LOOP
1362: get_Expl_Id(i.ps_node_id,p_project_id,v_expl_id,p_out_level,i.ps_node_type);
1363:
1403: p_out_expl_id:=v_expl_id;
1404: RAISE NODE_FOUND;
1405: END IF;
1406:
1407: FOR i IN (SELECT ps_node_id,parent_id FROM CZ_PS_NODES
1408: WHERE parent_id=p_ps_node_id AND deleted_flag=NO_FLAG)
1409: LOOP
1410: get_Expl_Id(i.ps_node_id,p_project_id,v_expl_id,p_out_level);
1411:
1516: IF p_mode=MINUS_MODE THEN
1517: v_model_ref_id:=p_deleted_expl_id;
1518: END IF;
1519:
1520: FOR i IN (SELECT ps_node_id,ps_node_type,NAME FROM CZ_PS_NODES
1521: START WITH devl_project_id=p_project_id AND deleted_flag=NO_FLAG AND ps_node_id=p_ps_node_id
1522: CONNECT BY PRIOR ps_node_id=parent_id AND NVL(virtual_flag,'1')='1' AND deleted_flag=NO_FLAG
1523: AND PRIOR deleted_flag=NO_FLAG)
1524: LOOP
1805: BEGIN
1806:
1807: SELECT persistent_node_id
1808: BULK COLLECT INTO t_persistent_node_id_tbl
1809: FROM CZ_PS_NODES
1810: START WITH ps_node_id=p_ps_node_id AND deleted_flag='0' AND
1811: (reference_id IS NULL AND component_id=p_component_id)
1812: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag='0' AND
1813: PRIOR deleted_flag='0' AND (reference_id IS NULL AND component_id=p_component_id);
1942: LOOP
1943: BEGIN
1944: SELECT '1' INTO v_exist_bom_nodes
1945: FROM dual WHERE
1946: EXISTS(SELECT NULL FROM CZ_PS_NODES WHERE devl_project_id=i.component_id
1947: AND ps_node_type=436 AND deleted_flag=NO_FLAG);
1948:
1949: IF i.referring_node_id IS NOT NULL THEN
1950: v_ret:=i.referring_node_id;
1973: p_out_expl_id IN OUT NOCOPY INTEGER,
1974: p_out_level IN OUT NOCOPY INTEGER) IS
1975:
1976: v_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE:=NULL_VALUE;
1977: v_parent_id CZ_PS_NODES.parent_id%TYPE:=NULL_VALUE;
1978:
1979: BEGIN
1980:
1981: p_out_ps_node_id:=NULL_VALUE;
1988: --
1989: ERROR_CODE:=1001;
1990:
1991: SELECT parent_id INTO v_parent_id
1992: FROM CZ_PS_NODES WHERE ps_node_id=p_ps_node_id;
1993:
1994: IF v_parent_id IS NULL THEN
1995: p_out_ps_node_id:=p_ps_node_id;
1996: --
2009: WHEN OTHERS THEN
2010: LOG_REPORT('get_from_Node_Up','ERROR CODE : '||TO_CHAR(ERROR_CODE)||' ERROR MESSAGE : '||SQLERRM);
2011: END;
2012:
2013: FOR i IN (SELECT ps_node_id,parent_id,virtual_flag FROM CZ_PS_NODES
2014: WHERE ps_node_id=v_parent_id AND deleted_flag=NO_FLAG)
2015: LOOP
2016:
2017: IF i.virtual_flag=NO_FLAG OR i.parent_id IS NULL THEN
2068: v_old_expl_id:=t_old_expl_ids(i);
2069: v_new_expl_id:=t_new_expl_ids(i);
2070:
2071: IF v_old_expl_id IS NOT NULL AND v_new_expl_id IS NOT NULL THEN
2072: FOR n IN(SELECT ps_node_id FROM CZ_PS_NODES
2073: START WITH ps_node_id=p_ps_node_id AND deleted_flag=NO_FLAG
2074: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag=NO_FLAG AND PRIOR deleted_flag=NO_FLAG)
2075: LOOP
2076: UPDATE CZ_EXPRESSION_NODES SET model_ref_expl_id=v_new_expl_id
2122:
2123: t_child_nodes IntArray;
2124: v_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
2125: v_model_id CZ_MODEL_REF_EXPLS.model_id%TYPE;
2126: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2127:
2128: BEGIN
2129: IF t_chain.COUNT=0 THEN
2130: RETURN;
2378:
2379: -- get the info from the node to be copied
2380: SELECT devl_project_id,parent_id,reference_id,component_id,virtual_flag, ps_node_type
2381: INTO l_model_id,l_parent_id,l_reference_id,l_component_id,l_virtual_flag, l_ps_node_type
2382: FROM CZ_PS_NODES
2383: WHERE ps_node_id=p_ps_node_id AND deleted_flag = NO_FLAG;
2384:
2385: -- if not a reference node, get the model_refexpl_id record in model ref expls
2386: IF l_reference_id IS NULL THEN
2419: FOR i IN(SELECT model_ref_expl_id, node_depth FROM CZ_MODEL_REF_EXPLS
2420: WHERE parent_expl_node_id=v_up_expl_id AND
2421: deleted_flag = NO_FLAG AND
2422: (referring_node_id IS NULL AND component_id IN
2423: (SELECT ps_node_id FROM CZ_PS_NODES
2424: START WITH ps_node_id=p_ps_node_id
2425: CONNECT BY PRIOR ps_node_id=parent_id AND
2426: deleted_flag = NO_FLAG AND PRIOR deleted_flag = NO_FLAG)) OR
2427: (referring_node_id IS NOT NULL AND referring_node_id IN
2424: START WITH ps_node_id=p_ps_node_id
2425: CONNECT BY PRIOR ps_node_id=parent_id AND
2426: deleted_flag = NO_FLAG AND PRIOR deleted_flag = NO_FLAG)) OR
2427: (referring_node_id IS NOT NULL AND referring_node_id IN
2428: (SELECT ps_node_id FROM CZ_PS_NODES
2429: START WITH ps_node_id=p_ps_node_id
2430: CONNECT BY PRIOR ps_node_id=parent_id AND
2431: deleted_flag = NO_FLAG AND PRIOR deleted_flag = NO_FLAG)))
2432: LOOP
2523:
2524: l_loop_ind := l_paths_tbl.NEXT(l_loop_ind);
2525: END LOOP;
2526:
2527: FOR n IN (SELECT * FROM CZ_PS_NODES a
2528: WHERE reference_id=p_current_model_id AND
2529: ps_node_type IN(REFERENCE_TYPE,CONNECTOR_TYPE) AND deleted_flag=NO_FLAG AND
2530: devl_project_id IN(SELECT object_id FROM CZ_RP_ENTRIES
2531: WHERE object_id=a.devl_project_id AND object_type='PRJ' AND deleted_flag=NO_FLAG)
2684: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2685:
2686: PROCEDURE populate_COMPONENT_ID(p_model_id IN NUMBER) IS
2687:
2688: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2689: v_parent_id CZ_PS_NODES.parent_id%TYPE;
2690: v_ps_id CZ_PS_NODES.ps_node_id%TYPE;
2691:
2692: BEGIN
2685:
2686: PROCEDURE populate_COMPONENT_ID(p_model_id IN NUMBER) IS
2687:
2688: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2689: v_parent_id CZ_PS_NODES.parent_id%TYPE;
2690: v_ps_id CZ_PS_NODES.ps_node_id%TYPE;
2691:
2692: BEGIN
2693: FND_MSG_PUB.initialize;
2686: PROCEDURE populate_COMPONENT_ID(p_model_id IN NUMBER) IS
2687:
2688: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2689: v_parent_id CZ_PS_NODES.parent_id%TYPE;
2690: v_ps_id CZ_PS_NODES.ps_node_id%TYPE;
2691:
2692: BEGIN
2693: FND_MSG_PUB.initialize;
2694:
2691:
2692: BEGIN
2693: FND_MSG_PUB.initialize;
2694:
2695: FOR i IN(SELECT ps_node_id,parent_id,ps_node_type,virtual_flag,devl_project_id,reference_id FROM CZ_PS_NODES
2696: START WITH devl_project_id=p_model_id AND parent_id IS NULL and deleted_flag='0'
2697: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag='0' AND PRIOR deleted_flag='0')
2698: LOOP
2699: IF i.ps_node_type IN (REFERENCE_TYPE,CONNECTOR_TYPE) THEN
2696: START WITH devl_project_id=p_model_id AND parent_id IS NULL and deleted_flag='0'
2697: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag='0' AND PRIOR deleted_flag='0')
2698: LOOP
2699: IF i.ps_node_type IN (REFERENCE_TYPE,CONNECTOR_TYPE) THEN
2700: UPDATE CZ_PS_NODES SET component_id=i.reference_id
2701: WHERE ps_node_id=i.ps_node_id AND component_id<>i.reference_id;
2702: GOTO CONTINUE_LOOP;
2703: END IF;
2704: IF i.parent_id IS NULL OR i.virtual_flag='0' THEN
2701: WHERE ps_node_id=i.ps_node_id AND component_id<>i.reference_id;
2702: GOTO CONTINUE_LOOP;
2703: END IF;
2704: IF i.parent_id IS NULL OR i.virtual_flag='0' THEN
2705: UPDATE CZ_PS_NODES SET component_id=i.ps_node_id
2706: WHERE ps_node_id=i.ps_node_id AND component_id<>i.ps_node_id;
2707: GOTO CONTINUE_LOOP;
2708: END IF;
2709: IF NVL(i.virtual_flag,'1')='1' AND i.ps_node_type NOT IN(REFERENCE_TYPE,CONNECTOR_TYPE) AND i.parent_id IS NOT NULL THEN
2706: WHERE ps_node_id=i.ps_node_id AND component_id<>i.ps_node_id;
2707: GOTO CONTINUE_LOOP;
2708: END IF;
2709: IF NVL(i.virtual_flag,'1')='1' AND i.ps_node_type NOT IN(REFERENCE_TYPE,CONNECTOR_TYPE) AND i.parent_id IS NOT NULL THEN
2710: SELECT ps_node_id,parent_id INTO v_ps_node_id,v_parent_id FROM CZ_PS_NODES a
2711: WHERE devl_project_id=i.devl_project_id AND
2712: EXISTS(SELECT NULL FROM CZ_PS_NODES WHERE ps_node_id=a.parent_id AND
2713: (virtual_flag='0' OR parent_id IS NULL) AND deleted_flag='0')
2714: START WITH ps_node_id=i.ps_node_id
2708: END IF;
2709: IF NVL(i.virtual_flag,'1')='1' AND i.ps_node_type NOT IN(REFERENCE_TYPE,CONNECTOR_TYPE) AND i.parent_id IS NOT NULL THEN
2710: SELECT ps_node_id,parent_id INTO v_ps_node_id,v_parent_id FROM CZ_PS_NODES a
2711: WHERE devl_project_id=i.devl_project_id AND
2712: EXISTS(SELECT NULL FROM CZ_PS_NODES WHERE ps_node_id=a.parent_id AND
2713: (virtual_flag='0' OR parent_id IS NULL) AND deleted_flag='0')
2714: START WITH ps_node_id=i.ps_node_id
2715: CONNECT BY PRIOR parent_id=ps_node_id AND deleted_flag='0' AND NVL(virtual_flag,'1')='1';
2716:
2719: ELSE
2720: v_ps_id:=v_parent_id;
2721: END IF;
2722:
2723: UPDATE CZ_PS_NODES SET component_id=v_ps_id
2724: WHERE ps_node_id=i.ps_node_id AND component_id<>v_ps_id;
2725: END IF;
2726:
2727: <
2756: v_up_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
2757: v_up_level CZ_MODEL_REF_EXPLS.node_depth%TYPE;
2758: v_curr_expl_node_type CZ_MODEL_REF_EXPLS.expl_node_type%TYPE;
2759:
2760: v_up_id CZ_PS_NODES.ps_node_id%TYPE;
2761: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2757: v_up_level CZ_MODEL_REF_EXPLS.node_depth%TYPE;
2758: v_curr_expl_node_type CZ_MODEL_REF_EXPLS.expl_node_type%TYPE;
2759:
2760: v_up_id CZ_PS_NODES.ps_node_id%TYPE;
2761: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2765: v_maximum CZ_PS_NODES.MAXIMUM%TYPE;
2758: v_curr_expl_node_type CZ_MODEL_REF_EXPLS.expl_node_type%TYPE;
2759:
2760: v_up_id CZ_PS_NODES.ps_node_id%TYPE;
2761: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2765: v_maximum CZ_PS_NODES.MAXIMUM%TYPE;
2766: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
2759:
2760: v_up_id CZ_PS_NODES.ps_node_id%TYPE;
2761: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2765: v_maximum CZ_PS_NODES.MAXIMUM%TYPE;
2766: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
2767: v_parent_expl_node_id NUMBER;
2760: v_up_id CZ_PS_NODES.ps_node_id%TYPE;
2761: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2765: v_maximum CZ_PS_NODES.MAXIMUM%TYPE;
2766: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
2767: v_parent_expl_node_id NUMBER;
2768: v_component_id NUMBER;
2761: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2765: v_maximum CZ_PS_NODES.MAXIMUM%TYPE;
2766: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
2767: v_parent_expl_node_id NUMBER;
2768: v_component_id NUMBER;
2769: v_comp_expl_id NUMBER;
2762: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2763: v_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2764: v_minimum CZ_PS_NODES.MINIMUM%TYPE;
2765: v_maximum CZ_PS_NODES.MAXIMUM%TYPE;
2766: v_instantiable_flag CZ_PS_NODES.instantiable_flag%TYPE;
2767: v_parent_expl_node_id NUMBER;
2768: v_component_id NUMBER;
2769: v_comp_expl_id NUMBER;
2770: v_ndebug NUMBER;
2798: p_out_virtual_flag:=1;
2799:
2800: SELECT instantiable_flag,ps_node_type,minimum,maximum,component_id
2801: INTO v_instantiable_flag,v_ps_node_type,v_minimum,v_maximum,v_component_id
2802: FROM CZ_PS_NODES
2803: WHERE ps_node_id=p_ps_node_id;
2804:
2805: -- Developer passes max/min
2806: v_minimum := p_minimum;
2808:
2809: IF NOT(v_minimum=1 AND v_maximum=1) AND v_ps_node_type<>BOM_MODEL_TYPE
2810: AND v_instantiable_flag=MANDATORY_EXPL_TYPE THEN
2811: p_out_err:=m_RUN_ID;
2812: LOG_REPORT('check_Node','CZ_PS_NODES.instantiable_flag=2 violates min/max=1/1.');
2813: RETURN;
2814: END IF;
2815:
2816:
2835: IF v_ps_node_type=CONNECTOR_TYPE THEN
2836: v_instantiable_flag:=CONNECTOR_EXPL_TYPE;
2837: END IF;
2838:
2839: UPDATE CZ_PS_NODES
2840: SET minimum=p_minimum,
2841: maximum=p_maximum,
2842: instantiable_flag=v_instantiable_flag
2843: WHERE ps_node_id=p_ps_node_id;
2888: -- add root node
2889: --
2890: add_root_Model_record(p_ps_node_id,v_ps_node_type);
2891:
2892: UPDATE CZ_PS_NODES
2893: SET component_id=p_model_id,
2894: minimum=p_minimum,
2895: maximum=p_maximum,
2896: instantiable_flag=MANDATORY_EXPL_TYPE
2923: ELSE
2924: p_out_virtual_flag:=YES_FLAG;
2925: END IF;
2926:
2927: UPDATE CZ_PS_NODES
2928: SET virtual_flag=p_out_virtual_flag,
2929: minimum=p_minimum,
2930: maximum=p_maximum
2931: WHERE ps_node_id=p_ps_node_id;
3084: -- reset childs nodes
3085: --
3086: t_childs.DELETE;
3087:
3088: SELECT ps_node_id BULK COLLECT INTO t_childs FROM CZ_PS_NODES
3089: WHERE devl_project_id=p_model_id AND ps_node_id<>p_ps_node_id AND
3090: (
3091: (ps_node_type in(COMPONENT_TYPE,PRODUCT_TYPE) AND ps_node_id IN ---- fix for bug #3161931
3092: (SELECT component_id FROM CZ_MODEL_REF_EXPLS
3090: (
3091: (ps_node_type in(COMPONENT_TYPE,PRODUCT_TYPE) AND ps_node_id IN ---- fix for bug #3161931
3092: (SELECT component_id FROM CZ_MODEL_REF_EXPLS
3093: WHERE model_id=p_model_id AND deleted_flag=NO_FLAG AND parent_expl_node_id=v_up_expl_id AND
3094: component_id IN(SELECT ps_node_id FROM CZ_PS_NODES
3095: START WITH ps_node_id=p_ps_node_id AND deleted_flag=NO_FLAG
3096: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag=NO_FLAG AND PRIOR deleted_flag=NO_FLAG)
3097: )
3098: )
3099: OR
3100: (ps_node_type in(REFERENCE_TYPE,CONNECTOR_TYPE) AND ps_node_id IN ---- fix for bug #3161931
3101: (SELECT referring_node_id FROM CZ_MODEL_REF_EXPLS
3102: WHERE model_id=p_model_id AND deleted_flag=NO_FLAG AND parent_expl_node_id=v_up_expl_id AND
3103: referring_node_id IN(SELECT ps_node_id FROM CZ_PS_NODES
3104: START WITH ps_node_id=p_ps_node_id AND deleted_flag=NO_FLAG
3105: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag=NO_FLAG AND PRIOR deleted_flag=NO_FLAG)
3106: )
3107: )
3238: p_out_err OUT NOCOPY INTEGER,
3239: p_del_logically IN VARCHAR2 -- DEFAULT '1'
3240: ) IS
3241:
3242: v_component_id CZ_PS_NODES.component_id%TYPE;
3243: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
3244: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
3245:
3246: BEGIN
3239: p_del_logically IN VARCHAR2 -- DEFAULT '1'
3240: ) IS
3241:
3242: v_component_id CZ_PS_NODES.component_id%TYPE;
3243: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
3244: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
3245:
3246: BEGIN
3247: Initialize;
3240: ) IS
3241:
3242: v_component_id CZ_PS_NODES.component_id%TYPE;
3243: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
3244: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
3245:
3246: BEGIN
3247: Initialize;
3248: p_out_err:=0;
3267: ERROR_CODE:=1002;
3268:
3269: END LOOP;
3270: ELSE
3271: SELECT component_id,NVL(virtual_flag,'1') INTO v_component_id,v_virtual_flag FROM CZ_PS_NODES
3272: WHERE ps_node_id=p_ps_node_id;
3273:
3274: IF v_virtual_flag='0' THEN
3275: FOR i IN (SELECT model_ref_expl_id FROM CZ_MODEL_REF_EXPLS a
3297: WHERE parent_expl_node_id IN
3298: (SELECT model_ref_expl_id FROM CZ_MODEL_REF_EXPLS
3299: WHERE model_id=a.model_id AND component_id=v_component_id AND deleted_flag='0')
3300: AND (component_id IN
3301: (SELECT ps_node_id FROM CZ_PS_NODES
3302: START WITH ps_node_id=p_ps_node_id
3303: CONNECT BY PRIOR ps_node_id=parent_id)
3304: OR
3305: referring_node_id IN
3302: START WITH ps_node_id=p_ps_node_id
3303: CONNECT BY PRIOR ps_node_id=parent_id)
3304: OR
3305: referring_node_id IN
3306: (SELECT ps_node_id FROM cz_ps_nodes
3307: START WITH ps_node_id=p_ps_node_id
3308: CONNECT BY PRIOR ps_node_id=parent_id)
3309: )
3310: )
3565: var_subroot_id INTEGER;
3566: var_subroot_level INTEGER;
3567: v_temp INTEGER;
3568: err INTEGER;
3569: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
3570: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
3571:
3572: v_ref_up_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
3573: v_ref_up_level CZ_MODEL_REF_EXPLS.node_depth%TYPE;
3566: var_subroot_level INTEGER;
3567: v_temp INTEGER;
3568: err INTEGER;
3569: v_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
3570: v_virtual_flag CZ_PS_NODES.virtual_flag%TYPE;
3571:
3572: v_ref_up_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
3573: v_ref_up_level CZ_MODEL_REF_EXPLS.node_depth%TYPE;
3574: v_contains_non_virt BOOLEAN:=FALSE;
3607: ERROR_CODE:=1300;
3608:
3609: SELECT ps_node_type,NVL(virtual_flag,YES_FLAG),parent_id,component_id
3610: INTO v_ps_node_type,v_virtual_flag,v_parent_id,v_component_id
3611: FROM CZ_PS_NODES
3612: WHERE ps_node_id=p_from_ps_node_id;
3613:
3614: LOG_REPORT('*','p_from_ps_node_id='||to_char(p_from_ps_node_id)||
3615: ' v_parent_id='||to_char(v_parent_id));
3735: SELECT model_ref_expl_id
3736: BULK COLLECT INTO t_model_ref_expl
3737: FROM CZ_MODEL_REF_EXPLS
3738: WHERE parent_expl_node_id=v_from_up_expl_id AND model_id=p_project_id AND
3739: component_id IN(SELECT ps_node_id FROM CZ_PS_NODES
3740: START WITH ps_node_id=p_from_ps_node_id AND deleted_flag=NO_FLAG
3741: CONNECT BY PRIOR ps_node_id=parent_id AND deleted_flag=NO_FLAG
3742: AND PRIOR deleted_flag=NO_FLAG);
3743:
3866:
3867: SELECT MIN(model_ref_expl_id) INTO v_comp_expl_id
3868: FROM CZ_MODEL_REF_EXPLS
3869: WHERE model_id=p_project_id AND component_id=
3870: (SELECT component_id FROM CZ_PS_NODES WHERE ps_node_id=p_to_ps_node_id) AND
3871: deleted_flag='0';
3872:
3873: refresh_UI_Expl_Ids(p_ps_node_id => p_from_ps_node_id,
3874: p_component_id => v_component_id,
3924: p_ref_parent_node_id IN INTEGER,
3925: p_ref_target_model_id IN INTEGER,
3926: p_out_status_code OUT NOCOPY INTEGER) IS
3927:
3928: v_BOM_node1 CZ_PS_NODES.ps_node_id%TYPE;
3929: v_BOM_node2 CZ_PS_NODES.ps_node_id%TYPE;
3930: v_instanciable INTEGER;
3931:
3932: BEGIN
3925: p_ref_target_model_id IN INTEGER,
3926: p_out_status_code OUT NOCOPY INTEGER) IS
3927:
3928: v_BOM_node1 CZ_PS_NODES.ps_node_id%TYPE;
3929: v_BOM_node2 CZ_PS_NODES.ps_node_id%TYPE;
3930: v_instanciable INTEGER;
3931:
3932: BEGIN
3933: p_out_status_code:=0;
3937: --
3938: ERROR_CODE:=1400;
3939:
3940: BEGIN
3941: SELECT ps_node_id INTO v_BOM_node1 FROM CZ_PS_NODES
3942: WHERE devl_project_id=p_refroot_model_id AND ps_node_type=BOM_MODEL_TYPE
3943: AND deleted_flag=NO_FLAG AND rownum<2;
3944: EXCEPTION
3945: WHEN NO_DATA_FOUND THEN
3999: PROCEDURE SolutionBasedModelcheck
4000: (p_model_id IN INTEGER,
4001: p_instanciable OUT NOCOPY INTEGER) IS
4002:
4003: v_bom_node_id CZ_PS_NODES.ps_node_id%TYPE;
4004:
4005: BEGIN
4006: p_instanciable:=0;
4007: v_bom_node_id:=containsBOM(p_model_id,p_instanciable);
4133:
4134: t_m_chain_tbl IntArray;
4135: t_trk_tbl IntArray;
4136: t_nontrk_tbl IntArray;
4137: v_ib_trackable CZ_PS_NODES.ib_trackable%TYPE;
4138:
4139: BEGIN
4140:
4141: SELECT DISTINCT model_id BULK COLLECT INTO t_m_chain_tbl FROM
4153: FOR i IN t_m_chain_tbl.First..t_m_chain_tbl.Last
4154: LOOP
4155: --
4156: -- set has_trackable_children to '1' for those references in explosion tree of t_m_chain_tbl(i) model
4157: -- which points to models which have CZ_PS_NODES.ib_trackable='1'. So here we assume
4158: -- that CZ_PS_NODES.ib_trackable is populated correctly by Import
4159: --
4160: UPDATE cz_model_ref_expls
4161: SET has_trackable_children='1'
4154: LOOP
4155: --
4156: -- set has_trackable_children to '1' for those references in explosion tree of t_m_chain_tbl(i) model
4157: -- which points to models which have CZ_PS_NODES.ib_trackable='1'. So here we assume
4158: -- that CZ_PS_NODES.ib_trackable is populated correctly by Import
4159: --
4160: UPDATE cz_model_ref_expls
4161: SET has_trackable_children='1'
4162: WHERE model_id=t_m_chain_tbl(i) AND component_id=t_m_chain_tbl(i) AND deleted_flag=NO_FLAG AND
4161: SET has_trackable_children='1'
4162: WHERE model_id=t_m_chain_tbl(i) AND component_id=t_m_chain_tbl(i) AND deleted_flag=NO_FLAG AND
4163: EXISTS(SELECT NULL FROM CZ_MODEL_REF_EXPLS m WHERE model_id=t_m_chain_tbl(i) AND ps_node_type=REFERENCE_TYPE
4164: AND deleted_flag=NO_FLAG AND
4165: EXISTS(SELECT NULL FROM CZ_PS_NODES
4166: WHERE devl_project_id = m.component_id AND
4167: ib_trackable = '1' AND deleted_flag = NO_FLAG));
4168:
4169: IF SQL%ROWCOUNT=0 THEN
4169: IF SQL%ROWCOUNT=0 THEN
4170: BEGIN
4171: v_ib_trackable:=NO_FLAG;
4172: SELECT '1' INTO v_ib_trackable FROM dual
4173: WHERE EXISTS(SELECT NULL FROM CZ_PS_NODES WHERE devl_project_id=t_m_chain_tbl(i)
4174: AND deleted_flag=NO_FLAG AND ib_trackable='1');
4175: v_ib_trackable:='1';
4176: t_trk_tbl(t_trk_tbl.COUNT+1):=t_m_chain_tbl(i);
4177: EXCEPTION
4224:
4225: FOR i IN(SELECT expr_node_id,rule_id
4226: FROM CZ_EXPRESSION_NODES
4227: WHERE rule_id IN(SELECT rule_id FROM CZ_RULES
4228: WHERE devl_project_id IN(SELECT devl_project_id FROM CZ_PS_NODES
4229: WHERE ps_node_id=p_ps_node_id) AND deleted_flag=NO_FLAG AND disabled_flag=NO_FLAG) AND
4230: ps_node_id=p_ps_node_id AND expr_type=205 AND deleted_flag=NO_FLAG)
4231: LOOP
4232: BEGIN
4281:
4282: x_run_id := 0; x_validation_flag := NO_FLAG;
4283:
4284: SELECT instantiable_flag INTO l_instantiable_flag
4285: FROM CZ_PS_NODES
4286: WHERE ps_node_id=p_ps_node_id;
4287:
4288: l_contribute := check_Rules_For_Ps_Node(p_ps_node_id);
4289:
4374: IF (l_children_index.EXISTS(l_expr_node_id(i))) THEN
4375: l_children := l_number_of_children(l_expr_node_id(i));
4376: FOR j IN l_children_index(l_expr_node_id(i))..l_children_index(l_expr_node_id(i)) + l_children LOOP
4377: IF (l_expr_type(j) IN (207,210) AND l_template_id(j) IN (43,44)) THEN
4378: FOR k IN (SELECT instantiable_flag FROM cz_ps_nodes
4379: WHERE ps_node_id = l_ps_node_id(i)
4380: AND deleted_flag = NO_FLAG) LOOP
4381: IF (k.instantiable_flag = '2') THEN
4382: IF (l_template_id(j) = 43) THEN