119: RAISE;
120: END;
121:
122:
123: FUNCTION findOrCreateRuleFolder(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE) RETURN cz_rules.rule_folder_id%TYPE AS
124: p_rule_folderid cz_rules.rule_folder_id%TYPE;
125: p_parent_rule_fldr cz_rules.rule_folder_id%TYPE;
126:
127: CURSOR c_rule_fld IS
323:
324:
325:
326: --This procedure removes the effectivity information from Total, Resource, Integer Feat, Decimal Feat, and Virtual Component.
327: PROCEDURE processUI(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE) AS
328: l_msg VARCHAR2(2000);
329: l_api_name constant VARCHAR2(30) := 'processUI';
330: BEGIN
331:
716: END processUI;
717:
718:
719: --This procedure removes the effectivity information from Total, Resource, Integer Feat, Decimal Feat, and Virtual Component.
720: PROCEDURE removeEffectivityInfo(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE) AS
721: l_msg VARCHAR2(2000);
722: l_api_name constant VARCHAR2(30) := 'removeEffectivityInfo';
723: BEGIN
724:
783:
784:
785:
786: FUNCTION createConstraintRuleRecord(p_rulefolderid IN cz_rules.rule_folder_id%TYPE, p_ps_node_id IN cz_ps_nodes.ps_node_id%TYPE,
787: p_devl_project_id IN cz_devl_projects.devl_project_id%TYPE , p_default_rule boolean DEFAULT FALSE) RETURN cz_rules.rule_id%TYPE AS
788: l_rule_id cz_rules.rule_id%TYPE;
789: l_msg VARCHAR2(2000);
790: l_api_name constant VARCHAR2(30) := 'createConstraintRuleRecord';
791: l_ps_node_name cz_ps_nodes.name%type;
846: END;
847:
848:
849: --Create implies rule for initial values on Boolean features .refer section 4..1.3.3 for Boolean features
850: PROCEDURE insertImpliesRuleRecords(dev_project_id IN cz_devl_projects.devl_project_id%TYPE, ps_node_id IN cz_ps_nodes.ps_node_id%TYPE,
851: ps_node_type IN cz_ps_nodes.ps_node_type%TYPE, l_rule_id IN cz_rules.rule_id%TYPE, initialvalue IN cz_ps_nodes.initial_value%TYPE) AS
852: l_msg VARCHAR2(2000);
853: l_api_name constant VARCHAR2(30) := 'insertImpliesRuleRecords';
854: l_expression_node_id cz_expression_nodes.expr_node_id%TYPE;
936:
937: --Procedure to create the expression tree for a contribute/consume target
938: --This procedure adds an ADDTO rule for a contribute/consume rule where the initial value of target is not null
939:
940: PROCEDURE createAccumulatorRule(dev_project_id IN cz_devl_projects.devl_project_id%TYPE, ps_node_id IN cz_ps_nodes.ps_node_id%TYPE,
941: ps_node_type IN cz_ps_nodes.ps_node_type%TYPE, initialvalue IN cz_ps_nodes.initial_value%TYPE, minvalue IN cz_ps_nodes.minimum%TYPE,
942: l_rule_id IN cz_rules.rule_id%TYPE ,p_model_ref_expl_id IN cz_expression_nodes.model_ref_expl_id%TYPE,p_feature_type IN cz_ps_nodes.feature_type%TYPE) AS
943: l_msg VARCHAR2(2000);
944: l_api_name constant VARCHAR2(30) := 'createAccumulatorRule';
1043: END createAccumulatorRule;
1044:
1045:
1046: --Procedure to create accumulator rule records for contribute/consume rule initial values
1047: PROCEDURE createRules(p_devl_project_id IN cz_devl_projects.devl_project_id%TYPE, p_ps_node_id IN cz_ps_nodes.ps_node_id%TYPE,
1048: p_ps_node_type IN cz_ps_nodes.ps_node_type%TYPE, feature_type IN cz_ps_nodes.feature_type%TYPE,
1049: initialvalue IN cz_ps_nodes.initial_value%TYPE, minvalue IN cz_ps_nodes.maximum%TYPE, rulefolderid IN cz_rules.rule_folder_id%TYPE,
1050: maxvalue IN cz_ps_nodes.maximum%TYPE) AS
1051: --cursor to find all contribute/consume sources for a given target
1058: p.name devname,
1059: r.reason_id,
1060: e1.model_ref_expl_id
1061: FROM cz_rules r,
1062: cz_devl_projects p,
1063: cz_expression_nodes e,
1064: cz_expression_nodes e1,
1065: cz_ps_nodes ps
1066: WHERE r.deleted_flag = '0'
1082: l_rule_id cz_rules.rule_id%TYPE;
1083: l_rulefolderid cz_rules.rule_folder_id%TYPE;
1084: l_rule_class cz_rules.rule_class%TYPE;
1085: l_ps_node_name cz_ps_nodes.name%type;
1086: l_previous_devl_project_id cz_devl_projects.devl_project_id%type;
1087: l_has_mult_down_cont_cons boolean;
1088:
1089: l_devl_project_id cz_devl_projects.devl_project_id%type;
1090: l_model_ref_expl_id cz_expression_nodes.model_ref_expl_id%type;
1085: l_ps_node_name cz_ps_nodes.name%type;
1086: l_previous_devl_project_id cz_devl_projects.devl_project_id%type;
1087: l_has_mult_down_cont_cons boolean;
1088:
1089: l_devl_project_id cz_devl_projects.devl_project_id%type;
1090: l_model_ref_expl_id cz_expression_nodes.model_ref_expl_id%type;
1091:
1092:
1093: ACC_RULE_CREATED boolean;
1200: END createRules;
1201:
1202:
1203: -- procedure to remove initial values from nodes
1204: PROCEDURE clearinitialvalues(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE) AS
1205: l_msg VARCHAR2(2000);
1206: l_api_name constant VARCHAR2(30) := 'ClearInitialValues';
1207: BEGIN
1208: UPDATE cz_ps_nodes
1222:
1223:
1224: --procedure to fill in min/max domain range values per type where no value has been defined by the modeler
1225: --Reference TD section 4.1.3.2
1226: PROCEDURE assignDefaultMinMaxvalues(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE) AS
1227: l_msg VARCHAR2(2000);
1228: l_api_name constant VARCHAR2(30) := 'assignDefaultMinMaxvalues';
1229: BEGIN
1230: FOR c_processing IN
1439:
1440:
1441: --procedure to convert existing rules to those suitable for the FCE
1442: --Refer section 4.1.4 rule requirements
1443: PROCEDURE convertRules(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE, p_rulefolderid IN cz_rules.rule_folder_id%TYPE) AS
1444:
1445: -- cursor to fetch ATAN2 rules which will be converted into ATAN
1446: CURSOR c_atan IS
1447: SELECT ex.*
1946:
1947:
1948: --This procedure removes effectivity info and displays messages for conversion of total and resources to float and
1949: -- also messages for contribute/consume rule conversion.
1950: PROCEDURE processModel(p_dev_project_id IN cz_devl_projects.devl_project_id%TYPE, p_rule_folderid cz_rules.rule_folder_id%TYPE) AS
1951: --Cursor to fetch Multi-Instantiable BOM Model Reference
1952: CURSOR c_bom_minmax IS
1953: SELECT ps_node_id
1954: FROM cz_ps_nodes psout
2064: displayMessage(0,v_models.remote_model_id , NULL ,v_models.remote_model_id,l_api_name, 'Model record');
2065:
2066:
2067: --mark this model as a fusion model
2068: UPDATE cz_devl_projects
2069: SET config_engine_type = 'F' ,post_migr_change_flag =NULL
2070: WHERE devl_project_id = v_models.remote_model_id;
2071:
2072: l_rule_folderid := findOrCreateRuleFolder(v_models.remote_model_id);