DBA Data[Home] [Help]

PACKAGE: APPS.CZ_FCE_COMPILE

Source


1 PACKAGE CZ_FCE_COMPILE AS
2 /*	$Header: czfcecps.pls 120.39 2008/05/12 21:06:12 asiaston ship $		*/
3 ---------------------------------------------------------------------------------------
4 TYPE type_varchar1_table          IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
5 TYPE type_varchar16_table         IS TABLE OF VARCHAR2(16) INDEX BY BINARY_INTEGER;
6 TYPE type_varchar4000_table       IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
7 TYPE type_integer_table           IS TABLE OF PLS_INTEGER INDEX BY BINARY_INTEGER;
8 TYPE type_number_table            IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
9 TYPE type_date_table              IS TABLE OF DATE INDEX BY BINARY_INTEGER;
10 TYPE type_byte_table              IS TABLE OF RAW(1) INDEX BY VARCHAR2(30);
11 
12 TYPE type_meta_hashtable          IS TABLE OF PLS_INTEGER INDEX BY VARCHAR2(30);
13 TYPE type_data_hashtable          IS TABLE OF PLS_INTEGER INDEX BY VARCHAR2(4000);
14 TYPE type_node_hashtable          IS TABLE OF NUMBER INDEX BY VARCHAR2(4000);
15 TYPE type_name_hashtable          IS TABLE OF VARCHAR2(4000) INDEX BY VARCHAR2(4000);
16 TYPE type_flag_hashtable          IS TABLE OF VARCHAR2(1) INDEX BY VARCHAR2(4000);
17 TYPE type_date_hashtable          IS TABLE OF DATE INDEX BY VARCHAR2(4000);
18 TYPE type_bool_hashtable          IS TABLE OF BOOLEAN INDEX BY VARCHAR2(4000);
19 
20 TYPE type_datahashtable_hashtable IS TABLE OF type_data_hashtable INDEX BY VARCHAR2(4000);
21 TYPE type_integertable_hashtable  IS TABLE OF type_integer_table INDEX BY VARCHAR2(4000);
22 TYPE type_numbertable_hashtable   IS TABLE OF type_number_table INDEX BY VARCHAR2(4000);
23 TYPE type_nodehashtable_hashtable IS TABLE OF type_node_hashtable INDEX BY VARCHAR2(4000);
24 TYPE type_numbertable_table       IS TABLE OF type_number_table INDEX BY PLS_INTEGER;
25 TYPE type_integertable_table      IS TABLE OF type_integer_table INDEX BY PLS_INTEGER;
26 TYPE type_nodehashtable_table     IS TABLE OF type_node_hashtable INDEX BY PLS_INTEGER;
27 TYPE type_datahashtable_table     IS TABLE OF type_data_hashtable INDEX BY PLS_INTEGER;
28 TYPE type_varchar4000table_table  IS TABLE OF type_varchar4000_table INDEX BY PLS_INTEGER;
29 
30 TYPE expression_context           IS RECORD (
31     context_type                  PLS_INTEGER
32   , context_num_data              PLS_INTEGER
33   , context_data                  VARCHAR2(4000)
34   );
35 
36 TYPE type_iterator_node           IS RECORD (
37     ps_node_id                    NUMBER
38   , model_ref_expl_id             NUMBER
39   , argument_name                 VARCHAR2(4000)
40   , expr_index                    PLS_INTEGER
41   );
42 
43 TYPE type_iteratornode_table      IS TABLE OF type_iterator_node INDEX BY BINARY_INTEGER;
44 
45 TYPE type_iterator_value          IS RECORD (
46     value_type                    PLS_INTEGER
47   , ps_node_id                    NUMBER
48   , model_ref_expl_id             NUMBER
49   , data_value                    VARCHAR2(4000)
50   , data_num_value                NUMBER
51   , data_type                     NUMBER
52   );
53 
54 TYPE type_iterator_table          IS TABLE OF type_iterator_value INDEX BY BINARY_INTEGER;
55 TYPE type_iteratortable_table     IS TABLE OF type_iterator_table INDEX BY BINARY_INTEGER;
56 
57 TYPE type_contributor_record      IS RECORD (
58     effective_from                DATE
59   , effective_until               DATE
60   , effective_usage_mask          VARCHAR2(16)
61   , interval_key                  VARCHAR2(4000)
62   , quantifiers                   type_varchar4000_table
63   , hash_quantifiers              type_data_hashtable
64   );
65 
66 TYPE type_contributor_table       IS TABLE OF type_contributor_record INDEX BY BINARY_INTEGER;
67 TYPE type_contributortable_table  IS TABLE OF type_contributor_table INDEX BY BINARY_INTEGER;
68 
69 TYPE type_compat_table            IS RECORD (
70     participants                  type_iteratornode_table
71   , combinations                  type_iteratortable_table
72   );
73 
74 TYPE type_compattable_table       IS TABLE OF type_compat_table INDEX BY BINARY_INTEGER;
75 
76 TYPE type_iterator_hashtable      IS TABLE OF type_iterator_value INDEX BY VARCHAR2(4000);
77 TYPE type_iteratorhashtable_table IS TABLE OF type_iterator_hashtable INDEX BY BINARY_INTEGER;
78 
79 TYPE type_integervalue_table      IS TABLE OF type_integertable_table INDEX BY BINARY_INTEGER;
80 TYPE type_numbervalue_table       IS TABLE OF type_numbertable_table INDEX BY BINARY_INTEGER;
81 TYPE type_varchar4000value_table  IS TABLE OF type_varchar4000table_table INDEX BY BINARY_INTEGER;
82 ---------------------------------------------------------------------------------------
83 -- Exceptions and Messages
84 ---------------------------------------------------------------------------------------
85 -- Warning exceptions are reported and logic gen will not be stopped
86 -- User warnings: User can make corrections to avoid warnings
87 CZ_LOGICGEN_WARNING     EXCEPTION; -- (Must use CZ_FCE_W_ prefix for message names)
88 -- System warnings: Caused due to either an environment or code issues
89 CZ_LOGICGEN_SYS_WARNING EXCEPTION; -- (Must use CZ_FCE_SW_ prefix for message names)
90 -- Errors are reoprted and logic gen will be stopped
91 -- User errors: User can make corrections to avoid these errors
92 CZ_LOGICGEN_ERROR       EXCEPTION; -- (Must use CZ_FCE_E_ prefix for message names)
93 -- System errors: Caused due to either an environment or code issues
94 CZ_LOGICGEN_SYS_ERROR   EXCEPTION; -- (Must use CZ_FCE_SE_ prefix for message names)
95 
96 ---------------------------------------------------------------------------------------
97 -- Messages that must be translated
98 ---------------------------------------------------------------------------------------
99 --  Note: Use this query to get this list from the FND_NEW_MESSAGES
100 /* select mtext from (
101 select message_name, message_name || ' CONSTANT VARCHAR2(30) := ''' || message_name || ''';' mtext from fnd_new_messages where message_name like 'CZ_FCE%'
102 UNION ALL
103 select message_name, '--  ' || REPLACE(message_text, '&', '^') mtext from fnd_new_messages where message_name like 'CZ_FCE%'
104 )
105 order by message_name desc, mtext asc */
106 ---------------------------------------------------------------------------------------
107 --  The rule is incomplete because a property is undefined. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
108 CZ_FCE_W_UNDEFINED_PROPERTY CONSTANT VARCHAR2(30) := 'CZ_FCE_W_UNDEFINED_PROPERTY';
109 --  Invalid or incomplete rule, please check the rule. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
110 CZ_FCE_W_TEMPLATE_INVALID CONSTANT VARCHAR2(30) := 'CZ_FCE_W_TEMPLATE_INVALID';
111 --  Defaults and search decisions cannot be defined across different models.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
112 CZ_FCE_W_SD_NOT_ACROSS_MODELS CONSTANT VARCHAR2(30) := 'CZ_FCE_W_SD_NOT_ACROSS_MODELS';
113 --  Property ^PROP_NAME has no value for node ^NODE_NAME. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
114 CZ_FCE_W_PROPERTY_NULL_VALUE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_PROPERTY_NULL_VALUE';
115 --  Parsing errors found. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
116 CZ_FCE_W_PARSE_FAILED CONSTANT VARCHAR2(30) := 'CZ_FCE_W_PARSE_FAILED';
117 --  Property ^PROP_NAME is not defined for node ^NODE_NAME.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
118 CZ_FCE_W_NO_PROPERTY_FOR_NODE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NO_PROPERTY_FOR_NODE';
119 --  The primary feature in the design chart is either missing or duplicated.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
120 CZ_FCE_W_NO_PRIMARY_FEAT_DC CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NO_PRIMARY_FEAT_DC';
121 --  BOM node ^NODE_NAME has no optional selections to participate in rule. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
122 CZ_FCE_W_NO_OPTIONAL_CHILDREN CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NO_OPTIONAL_CHILDREN';
123 --  System properties DefinitionMinInstances and DefinitionMaxInstances cannot directly participate in rules.  Rule ^RULE_NAME  in the Model ^MODEL_NAME ignored.
124 -- CZ_FCE_W_NO_MINMAX_INSTANCES CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NO_MINMAX_INSTANCES';
125 --  No selection made between primary and defining feature in design chart rule. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
126 CZ_FCE_W_NO_COMBINATIONS_DC CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NO_COMBINATIONS_DC';
127 --  Node ^NODE_NAME has no children.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
128 CZ_FCE_W_NODE_MUST_HAVE_CHILD CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NODE_MUST_HAVE_CHILD';
129 --  Rule participant ^NODE_NAME has been deleted.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
130 CZ_FCE_W_NODE_DELETED CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NODE_DELETED';
131 --  COLLECT DISTINCT and FOR ALL operations are not supported when there is more than one iterator.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
132 CZ_FCE_W_MORE_THAN_ONE_IT_LIM CONSTANT VARCHAR2(30) := 'CZ_FCE_W_MORE_THAN_ONE_IT_LIM';
133 --  Right-hand side participants are missing.  Logic rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
134 CZ_FCE_W_LR_MISSING_RHS_PARTS CONSTANT VARCHAR2(30) := 'CZ_FCE_W_LR_MISSING_RHS_PARTS';
135 --  Left-hand side participants are missing.  Logic rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
136 CZ_FCE_W_LR_MISSING_LHS_PARTS CONSTANT VARCHAR2(30) := 'CZ_FCE_W_LR_MISSING_LHS_PARTS';
137 --  No one-to-one correspondence between options of primary and defining feature in design chart rule. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
138 CZ_FCE_W_INVALID_NUM_COMB_DC CONSTANT VARCHAR2(30) := 'CZ_FCE_W_INVALID_NUM_COMB_DC';
139 --  A contribution expression that uses a participant which is under an instantiable Component or referenced Model cannot also use another participant. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
140 CZ_FCE_W_INVALID_CONTRIB CONSTANT VARCHAR2(30) := 'CZ_FCE_W_INVALID_CONTRIB';
141 --  The reference ^NODE_NAME is invalid. At least one node does not exist in the Model or is not effective when the rule is effective. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
142 CZ_FCE_W_INCORRECT_REFERENCE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_INCORRECT_REFERENCE';
143 --  Incomplete simple Property-based Compatibility rule. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
144 CZ_FCE_W_INCOMPLETE_PROPBASED CONSTANT VARCHAR2(30) := 'CZ_FCE_W_INCOMPLETE_PROPBASED';
145 --  Heuristic operators (IncMin, DecMax, Assign, MinFirst, MaxFirst) can only be used in defaults or search decisions.  Rule ^RULE_NAME in model ^MODEL_NAME ignored.
146 CZ_FCE_W_HEUR_ONLY_IN_DEF CONSTANT VARCHAR2(30) := 'CZ_FCE_W_HEUR_ONLY_IN_DEF';
147 --  Rule definition is empty.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
148 CZ_FCE_W_EMPTY_RULE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_EMPTY_RULE';
149 --  Design chart is empty.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
150 CZ_FCE_W_EMPTY_DESIGN_CHART CONSTANT VARCHAR2(30) := 'CZ_FCE_W_EMPTY_DESIGN_CHART';
151 --  System Property ^PROP_NAME is invalid in WHERE clause of a COMPATIBLE or FORALL operator because it is translatable. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
152 CZ_FCE_W_DESCRIPTION_IN_WHERE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_DESCRIPTION_IN_WHERE';
153 --  Only one participant of a compatibility rule is allowed to have non-mutually-exclusive children.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
154 CZ_FCE_W_CT_ONLY_ONE_NON_MEXC CONSTANT VARCHAR2(30) := 'CZ_FCE_W_CT_ONLY_ONE_NON_MEXC';
155 -- Incomplete Compatibility rule: participants or selections are missing.  Rule ^RULE_NAME in the model ^MODEL_NAME ignored.
156 CZ_FCE_W_CT_INCOMPLETE_RULE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_CT_INCOMPLETE_RULE';
157 --  Cyclic relationship between compatibility rule participants.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
158 CZ_FCE_W_CT_CYCLIC_RELATION CONSTANT VARCHAR2(30) := 'CZ_FCE_W_CT_CYCLIC_RELATION';
159 --  Right-hand side participants are missing.  Comparison rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
160 CZ_FCE_W_CR_MISSING_RHS_PARTS CONSTANT VARCHAR2(30) := 'CZ_FCE_W_CR_MISSING_RHS_PARTS';
161 --  Compatibility rule must have at least two participating features. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
162 CZ_FCE_W_COMPAT_SINGLE_FEAT CONSTANT VARCHAR2(30) := 'CZ_FCE_W_COMPAT_SINGLE_FEAT';
163 --  No valid combinations. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
164 CZ_FCE_W_COMPAT_NO_COMB CONSTANT VARCHAR2(30) := 'CZ_FCE_W_COMPAT_NO_COMB';
165 --  Invalid participant in compatibility rule.  Valid participants are Option Feature or BOM Option Class nodes.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
166 CZ_FCE_W_CMR_INVALID_PART CONSTANT VARCHAR2(30) := 'CZ_FCE_W_CMR_INVALID_PART';
167 --  Unable to resolve Model node reference ^NODE_NAME because it is ambiguous. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
168 CZ_FCE_W_AMBIGUOUS_REFERENCE CONSTANT VARCHAR2(30) := 'CZ_FCE_W_AMBIGUOUS_REFERENCE';
169 --  Property ^PROP_NAME is only applicable to nodes that can contain instances. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
170 CZ_FCE_W_PROP_ONLY_ICOMP_REF CONSTANT VARCHAR2(30) := 'CZ_FCE_W_PROP_ONLY_ICOMP_REF';
171 --  Property ^PROP_NAME is invalid for the node ^NODE_NAME. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
172 CZ_FCE_W_INVALID_PROPERTY CONSTANT VARCHAR2(30) := 'CZ_FCE_W_INVALID_PROPERTY';
173 -- Only static System Properties are allowed in the WHERE clause of a COMPATIBLE or FORALL operator.
174 -- The value of the System Property ^PROPERTY_NAME can change at runtime, therefore it is invalid in
175 -- this context. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
176 CZ_FCE_W_PROPERTY_NOT_STATIC CONSTANT VARCHAR2(30) := 'CZ_FCE_W_PROPERTY_NOT_STATIC';
177 -- Rule participant ^NODE_NAME is not accessible. May be its model reference has been deleted. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
178 CZ_FCE_W_NODE_NOT_FOUND CONSTANT VARCHAR2(30) := 'CZ_FCE_W_NODE_NOT_FOUND';
179 -- Incorrect COLLECT or FOR ALL Rule: The conditional expression in the WHERE clause must be static. A dynamic source for
180 -- a value provided for iterator ^ITER was detected.  Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.
181 CZ_FCE_W_DYNAMIC_ITERATOR CONSTANT VARCHAR2(30) := 'CZ_FCE_W_DYNAMIC_ITERATOR';
182 
183 --  Unknown Error:
184 CZ_FCE_UE_GENERIC_PREFIX CONSTANT VARCHAR2(30) := 'CZ_FCE_UE_GENERIC_PREFIX';
185 --  System Warning: Generally caused by environment or system issues.
186 CZ_FCE_SW_GENERIC_PREFIX CONSTANT VARCHAR2(30) := 'CZ_FCE_SW_GENERIC_PREFIX';
187 --  System Error: Generally caused by environment or system issues.
188 CZ_FCE_SE_GENERIC_PREFIX CONSTANT VARCHAR2(30) := 'CZ_FCE_SE_GENERIC_PREFIX';
189 --  Invalid problem definition: Option Feature with maximum quantity greater than 0 must have children. The Option Feature is ^NODE_NAME in the Model ^MODEL_NAME.
190 CZ_FCE_E_OPTION_MAXQ_NO_CHILD CONSTANT VARCHAR2(30) := 'CZ_FCE_E_OPTION_MAXQ_NO_CHILD';
191 --  Node ^NODE_NAME in Model ^MODEL_NAME is a Connector. In this release, Connectors are only supported in Orginal Configuration Engine type models.
192 CZ_FCE_E_CONNECTNOTSUPPORTED CONSTANT VARCHAR2(30) := 'CZ_FCE_E_CONNECTNOTSUPPORTED';
193 
194 ---------------------------------------------------------------------------------------
195 -- Messages that do not need translations
196 ---------------------------------------------------------------------------------------
197 -- System Errors
198 CZ_FCE_SE_POINTER_TOO_LONG CONSTANT VARCHAR2(4000) :=
199     'Pointer too long in emit_ldc.';
200 CZ_FCE_SE_STRING_TOO_LONG CONSTANT VARCHAR2(4000) :=
201     'String constant is too long.';
202 CZ_FCE_SE_INTEGER_TOO_LONG CONSTANT VARCHAR2(4000) :=
203     'Integer constant is too long, value = ^VALUE.';
204 CZ_FCE_SE_LONG_TOO_LONG CONSTANT VARCHAR2(4000) :=
205     'Long constant is too long, value = ^VALUE.';
206 CZ_FCE_SE_METHODIX_OUTOFRANGE CONSTANT VARCHAR2(4000) :=
207     'Method descriptor index is out of range, value = ^VALUE.';
208 CZ_FCE_SE_UNKNOWN_OPERATION CONSTANT VARCHAR2(4000) :=
209     'Unknown register operation: ^OPERATION';
210 CZ_FCE_SE_INVALID_ACCESS_VAR CONSTANT VARCHAR2(4000) :=
211     '"^OPERATION" instruction can only access variables from 0 to 255, attempt to access variable #^VAR.';
212 CZ_FCE_SE_INVALID_ACCESS_VARW CONSTANT VARCHAR2(4000) :=
213     '"^OPERATION_w" instruction can only access variables from 0 to 65535, attempt to access variable #^VAR.';
214 CZ_FCE_SE_UNDEFINED_LOCAL_VAR CONSTANT VARCHAR2(4000) :=
215     'Local variable is not defined for key: "^KEY".';
216 CZ_FCE_SE_NO_MORE_REGISTERS CONSTANT VARCHAR2(4000) :=
217     'No registers available, all are allocated.';
218 CZ_FCE_SE_UNDEFINED_REGISTER CONSTANT VARCHAR2(4000) :=
219     'Register is not defined for key: "^KEY".';
220 CZ_FCE_SE_INCORRECT_IX CONSTANT VARCHAR2(4000) :=
221     'Incorrect index "^VALUE" to object type for array.';
222 CZ_FCE_SE_EXCEED_INTTABLESIZE CONSTANT VARCHAR2(4000) :=
223     'Exceeded maximum supported integer table, size of the current table is "^VALUE".';
224 CZ_FCE_SE_UNKNOWN_IN_RULE  CONSTANT VARCHAR2(4000) :=
225     'In the rule ^RULE_NAME, unknown system error occurred.';
226 CZ_FCE_SE_REVCONNMODELNOTFOUND CONSTANT VARCHAR2(4000) :=
227     'Reverse Connector target model "^MODELNAME" not found in the repository.';
228 CZ_FCE_SE_OPTION_MAXQ_NOT_ZERO CONSTANT VARCHAR2(4000) :=
229     'Invalid problem definition: maximum quantity per option cannot be 0 for a "option quantities" enabled Option Feature "^NODE_NAME".';
230 
231 -- System Warnings
232 
233 CZ_FCE_SW_NO_VALID_CHILDREN   CONSTANT VARCHAR2(4000)  :=
234   'Node ^NODE_NAME has no children. Rule ^RULE_NAME in the Model ^MODEL_NAME" ignored.';
235 CZ_FCE_SW_UKNOWN_OP_IN_COMPAT  CONSTANT VARCHAR2(4000) :=
236   'Unknown operator in the WHERE clause. Rule ^RULE_NAME in the Model ^MODEL_NAME ignored.';
237 CZ_FCE_SW_UNKNOWN_EXPR_TYPE      CONSTANT VARCHAR2(4000) :=
238   'Unknown expression type in the rule. Rule ^RULE_NAME in the Model ^MODEL_NAME" ignored.';
239 CZ_FCE_SW_UNKNOWN_OP_TYPE  CONSTANT VARCHAR2(4000) :=
240   'Unknown operator type "^OPERTYPE" in the rule. Rule ^RULE_NAME in the Model ^MODEL_NAME" ignored.';
241 CZ_FCE_SW_WRONG_OPER_IN_COMPAT   CONSTANT VARCHAR2(4000) :=
242   'Invalid operator in compatibility rule. Rule ^RULE_NAME in the Model ^MODEL_NAME" ignored.';
243 CZ_FCE_SW_NODEINCORRECTEFFSET CONSTANT VARCHAR2(4000) :=
244     'Effectivity set, assigned to the node ^NODE_NAME in the Model ^MODEL_NAME, does not exist. Effectivity interval of the node will be used.';
245 CZ_FCE_SW_RULEINCORRECTEFFSET CONSTANT VARCHAR2(4000) :=
249 CZ_FCE_SW_BOM_INVAL_CHILD_TYP CONSTANT VARCHAR2(4000) :=
246     'Effectivity set, assigned to the rule ^RULE_NAME in the Model ^MODEL_NAME, does not exist. Effectivity interval of the rule will be used.';
247 CZ_FCE_SW_INCORRECT_EXPL_ID CONSTANT VARCHAR2(4000) :=
248      'Incorrect explosion_id "^EXPLOSION_ID" occurred. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
250     'Type ^TYPE is not a known BOM child node type. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
251 CZ_FCE_SW_UNKNOWN_TEMPLATE CONSTANT VARCHAR2(4000) :=
252     'Unknown property template "^TEMPLATE" found. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
253 CZ_FCE_SW_OPTIONS_PARENT_NULL CONSTANT VARCHAR2(4000) :=
254     'Parent is null for property Options() in logical context. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
255 CZ_FCE_SW_OPTIONS_PARENT_INVA CONSTANT VARCHAR2(4000) :=
256     'Invalid parent operator "^OPERATOR" for property options(). Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
257 CZ_FCE_SW_BOM_NUM_INVALPROP CONSTANT VARCHAR2(4000) :=
258     'In the numeric context invalid property applied to a BOM node. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
259 CZ_FCE_SW_UNKNOWN_CONTEXT CONSTANT VARCHAR2(4000) :=
260     'Unknown context occurred for options(). Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
261 CZ_FCE_SW_INVALID_LIT_DTYPE CONSTANT VARCHAR2(4000) :=
262     'Invalid literal data type "^TYPE" found for the expression with the id ^EXPR_ID. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
263 CZ_FCE_SW_INVAL_CONST_DTYPE CONSTANT VARCHAR2(4000) :=
264     'Invalid constant data type "^TYPE" found. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
265 CZ_FCE_SW_NULL_CONSTANT_VALUE CONSTANT VARCHAR2(4000) :=
266     'Null constant value occurred. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
267 CZ_FCE_SW_NO_PROP_ID_EXPR_ID CONSTANT VARCHAR2(4000) :=
268     'No property id found for the expression id "^EXPR_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
269 CZ_FCE_SW_NO_TYPE_FOR_PROP_ID CONSTANT VARCHAR2(4000) :=
270     'No property type foound for the property id "^PROP_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
271 CZ_FCE_SW_NOT_STATIC_PROPERTY CONSTANT VARCHAR2(4000) :=
272     'Property with the template id "^PROP_ID" is not static. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
273 CZ_FCE_SW_FAILED_NODE_PROP CONSTANT VARCHAR2(4000) :=
274     'Node ''^NODE_NAME'' property with the id "^PROP_ID" is failed. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
275 CZ_FCE_SW_NO_TEXT_PROP CONSTANT VARCHAR2(4000) :=
276     'Found property with the id "^PROP_ID" as text property. Rules cannot handle text properties. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
277 CZ_FCE_SW_CT_INCORRECT_SIZE CONSTANT VARCHAR2(4000) :=
278     'Incorrect size of a compatible combination occurred. Compatibility Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
279 CZ_FCE_SW_NO_VALUE_PARAMSTK CONSTANT VARCHAR2(4000) :=
280     'Value does not exist on parameter stack for parameter "^PARAM". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
281 CZ_FCE_SW_INVAL_VAL_PARAMSTK CONSTANT VARCHAR2(4000) :=
282     'In paramater stack invalid value type ^VALUE_TYPE associated with the parameter "^PARAM". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
283 CZ_FCE_SW_INVAL_E_ID_IN_WHERE CONSTANT VARCHAR2(4000) :=
284     'Unknown expression node type in the WHERE clause, expr_node_id "^EXPR_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
285 CZ_FCE_SW_INVALID_EXPR_NODE CONSTANT VARCHAR2(4000) :=
286     'Invalid expression node of type ''^EXPR_TYPE'' found in iterator definition. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
287 CZ_FCE_SW_INCOMPLETE_FOR_ALL CONSTANT VARCHAR2(4000) :=
288     'Incomplete forall rule, no iterator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
289 CZ_FCE_SW_NO_PROP_IN_WHERE CONSTANT VARCHAR2(4000) :=
290     'WHERE clause do not have property. Only "literal iterator" can have where clause without any property. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
291 CZ_FCE_SW_INVALID_IT_VALUE CONSTANT VARCHAR2(4000) :=
292     'Found invalid iterator value type "^VALUE". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
293 CZ_FCE_SW_NON_LIT_IN_COLLECT CONSTANT VARCHAR2(4000) :=
294     'Found non-literal value type in COLLECT DISTINCT. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
295 CZ_FCE_SW_INVALID_ARG_PARAM CONSTANT VARCHAR2(4000) :=
296     'Invalid parameter of type "^EXPR_TYPE" specified for the "^ARG_LOCATION" argument of the property-based compatibility template application. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
297 CZ_FCE_SW_PROP_NOT_DEFINED CONSTANT VARCHAR2(4000) :=
298     'Property is not defined. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
299 CZ_FCE_SW_INVALID_STRUCTURE CONSTANT VARCHAR2(4000) :=
300     'Invalid structure of a compatibility rule. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
301 CZ_FCE_SW_NO_ITERATOR CONSTANT VARCHAR2(4000) :=
302     'No iterator specified. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
303 CZ_FCE_SW_INVALID_NUMBER CONSTANT VARCHAR2(4000) :=
304     'Invalid number "^VALUE" found. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
305 CZ_FCE_SW_LR_MISSING_LHS_OP CONSTANT VARCHAR2(4000) :=
306     'Left-hand side operator is either not-specified or invalid. Logic rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
307 CZ_FCE_SW_LR_MISSING_LOGIC_OP CONSTANT VARCHAR2(4000) :=
308     'Logic operator is either not-specified or invalid. Logic rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
309 CZ_FCE_SW_LR_MISSING_RHS_OP CONSTANT VARCHAR2(4000) :=
310     'Right-hand side operator is either not-specified or invalid. Logic rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
311 CZ_FCE_SW_CR_NO_LHS_OPAND CONSTANT VARCHAR2(4000) :=
312     'Left-hand side operands to comparison operator is either not-specified or invalid. Comparison rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
313 CZ_FCE_SW_CR_NO_OPERATOR CONSTANT VARCHAR2(4000) :=
314     'Comparison operator is either not-specified or invalid. Comparison rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
315 CZ_FCE_SW_CR_NO_RHS_OPAND CONSTANT VARCHAR2(4000) :=
316     'Right-hand side operand to comparison operator is either not-specified or invalid. Comparison rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
320     'Right-hand side operator is either not-specified or invalid. Comparison rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
317 CZ_FCE_SW_CR_NO_LOGIC_OP CONSTANT VARCHAR2(4000) :=
318     'Logic operator is either not-specified or invalid. Comparison rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
319 CZ_FCE_SW_CR_NO_RHS_OP CONSTANT VARCHAR2(4000) :=
321 CZ_FCE_SW__NO_MATH_CONST CONSTANT VARCHAR2(4000) :=
322     'Mathematical constant is not implemented for template_id "^TEMPL_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
323 CZ_FCE_SW__NO_MATH_OP CONSTANT VARCHAR2(4000) :=
324     'Mathematical operator is not implemented for template_id "^TEMPL_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
325 CZ_FCE_SW_INVAL_SPROP_SELECT CONSTANT VARCHAR2(4000) :=
326     'Invalid system property is used with the "Selection()" operator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
327 
328 -- Rule Expression(RE) level Warnings
329 CZ_FCE_SW_RE_ENODE_CHILDREN CONSTANT VARCHAR2(4000) :=
330     'The expression node with the id-^EXPR_ID must have child expression nodes. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
331 CZ_FCE_SW_RE_ENODE_ONE_CHILD CONSTANT VARCHAR2(4000) :=
332     'The expression node with the id-^EXPR_ID must have exactly one child. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
333 CZ_FCE_SW_RE_ENODE_TWO_CHILD CONSTANT VARCHAR2(4000) :=
334     'The expression node with the id-^EXPR_ID must have exactly one child. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
335 CZ_FCE_SW_RE_ENODE_NO_DTYPE CONSTANT VARCHAR2(4000) :=
336     'Unable to get context data type for expression node with the id "^EXPR_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
337 CZ_FCE_SW_RE_ENSARG_NO_DTYPE CONSTANT VARCHAR2(4000) :=
338     'Unable to get the data type of the argument "^ARG_IX" for signature "^SIGNATURE_ID". Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
339 
340 CZ_FCE_SW_DEFPROP_INVAL_CTX CONSTANT VARCHAR2(4000) :=
341     'Invalid context found for applying default property. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
342 
343 CZ_FCE_SW_INVALID_PROP_USAGE CONSTANT VARCHAR2(4000) :=
344     'In the rule ^RULE_NAME, found invalid usage of the property. Only structure nodes can have user or system properties. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
345 
346 -- Simple accumulator rules (AR) related
347 CZ_FCE_SW_AR_NO_LHS_OPAND CONSTANT VARCHAR2(4000) :=
348     'Left-hand side operand to comparison operator is either not-specified or invalid. Accumulator Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
349 CZ_FCE_SW_AR_NO_MLTIPLIER CONSTANT VARCHAR2(4000) :=
350     'Multiplier not-specified. Accumulator Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
351 CZ_FCE_SW_AR_NO_OPERATOR CONSTANT VARCHAR2(4000) :=
352     'Accumulator operator is either not-specified or invalid. Accumulator Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
353 CZ_FCE_SW_AR_NO_ROUND_OP CONSTANT VARCHAR2(4000) :=
354     'Round operator is either not-specified or invalid. Accumulator Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
355 CZ_FCE_SW_AR_NO_RHS_OPAND VARCHAR2(4000) :=
356     'Right-hand side operand to accumulator operator is either not-specified or invalid. Accumulator Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
357 
358 CZ_FCE_SW_INVAL_FEAT_TYPE_DC CONSTANT VARCHAR2(4000) :=
359     'Found invalid feature type "^FEAT_TYPE". Design Chart Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
360 
361 -- Compile Constraints
362 CZ_FCE_SW_UNDEFINED_STRUC_NODE CONSTANT VARCHAR2(4000) :=
363     'Incomplete rule: structure node is undefined. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
364 CZ_FCE_SW_UNDEFINED_SYS_PROP CONSTANT VARCHAR2(4000) :=
365     'Incomplete rule: system property is undefined. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
366 CZ_FCE_SW_UNDEFINED_OPERATOR CONSTANT VARCHAR2(4000) :=
367     'Incomplete rule: operator is undefined. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
368 CZ_FCE_SW_UNDEFINED_OP_TEMPL CONSTANT VARCHAR2(4000) :=
369     'Incomplete rule: operator template is undefined. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
370 CZ_FCE_SW_UNDEFINED_OP_BY_NAME CONSTANT VARCHAR2(4000) :=
371     'Incomplete rule: operator by name is undefined. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
372 CZ_FCE_SW_NO_INTL_TEXT CONSTANT VARCHAR2(4000) :=
373     'Localized text record does not exist for reason_id. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
374 
375 -- must have children
376  -- parse_where_clause
377 CZ_FCE_SW_SNODE_WHERE_LIMITS CONSTANT VARCHAR2(4000) :=
378     'Structure node can only participate in a WHERE clause of a Property-based Compatibility rule. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
379  -- generate_iterator
380 CZ_FCE_SW_INCOMPLETE_FORALL CONSTANT VARCHAR2(4000) :=
381     'Incomplete forall rule, empty iterator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
382  -- parse_template_application
383  -- generate_heuristics
384 CZ_FCE_SW_INCOMPLETE_SEARCH CONSTANT VARCHAR2(4000) :=
385     'Incomplete Default or Search Decision. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
386  -- generate_power
387 CZ_FCE_SW_INCOMPLETE_POWER CONSTANT VARCHAR2(4000) :=
388     'Incomplete power operator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
389  -- generate_mathrounding
390 CZ_FCE_SW_INCOMPLETE_MROUND CONSTANT VARCHAR2(4000) :=
391     'Incomplete math rounding operator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
392  -- generate_trigonometric
393 CZ_FCE_SW_INCOMPLETE_TRIG CONSTANT VARCHAR2(4000) :=
394     'Incomplete math trigonometric operator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
395  -- generate_aggregatesum
396 CZ_FCE_SW_INCOMPLETE_AGSUM CONSTANT VARCHAR2(4000) :=
397     'Incomplete AggregateSum operator. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
398 -- must_be_structure_node
399 CZ_FCE_SW_SD_OPAND_STRUCT_N CONSTANT VARCHAR2(4000) :=
400     'Invalid default or search decision is found. Here operand can only be a structure node. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
401 CZ_FCE_SW_AS_OPAND_STRUCT_N CONSTANT VARCHAR2(4000) :=
405     'Expression node expr_node_id ^EXPR_ID must represent a structure node. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
402     'Invalid AggregateSum operator is found. Here operand can only be a structure node. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
403 
404 CZ_FCE_SW_EXPR_N_MUST_STRUC_N CONSTANT VARCHAR2(4000) :=
406 CZ_FCE_SW_EXP_PWR_MUST_BE_INT CONSTANT VARCHAR2(4000) :=
407     'The exponent of the power operaror must be an integer constant. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
408 
409 -- node_must_be_port
410 CZ_FCE_SW_NODE_MUST_BE_PORT CONSTANT VARCHAR2(4000) :=
411     'Node ^NODE_NAME must be a component or model reference or connector. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
412   -- generate_expression
413 CZ_FCE_SW_AS_PORT_LIMITS CONSTANT VARCHAR2(4000) :=
414     'Only References and Components can participate in Union or SubsetOf operations. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
415 CZ_FCE_SW_COMPARE_TXPROP_TXLIT CONSTANT VARCHAR2(4000) :=
416     'Selection with text property can only be compared to a text literal. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
417 CZ_FCE_SW_SELECT_PROP_NOTALLOW CONSTANT VARCHAR2(4000) :=
418     '"Selection()" property is allowed only for Option Feature or BOM Option Class. Rule ^RULE_NAME in the model ^MODEL_NAME ignored.';
419 
420 ---------------------------------------------------------------------------------------
421 --These tables are used in Property-based Compatibility and ForAll rule generation. The
422 --names are hard-coded in corresponding procedures, do not change just here.
423 
424 c_                                type_compat_table;
425 o_                                type_iteratortable_table;
426 n_                                type_numbervalue_table;
427 s_                                type_integer_table;
428 t_                                type_varchar4000value_table;
429 b_                                type_integervalue_table;
430 ---------------------------------------------------------------------------------------
431 
432 h_inst                            type_byte_table;
433 
434 h_psntypes                        type_meta_hashtable;
435 h_instantiability                 type_meta_hashtable;
436 h_ruletypes                       type_meta_hashtable;
437 h_ruleclasses                     type_meta_hashtable;
438 h_designtypes                     type_meta_hashtable;
439 h_exprtypes                       type_meta_hashtable;
440 h_datatypes                       type_meta_hashtable;
441 h_templates                       type_meta_hashtable;
442 h_javatypes                       type_meta_hashtable;
443 h_mathconstants                   type_meta_hashtable;
444 
445 h_operators_1                     type_varchar4000_table;
446 h_operators_2                     type_varchar4000_table;
447 h_operators_2_int                 type_varchar4000_table;
448 h_operators_2_double              type_varchar4000_table;
449 h_operators_2_boolean             type_varchar4000_table;
450 h_operators_2_text                type_varchar4000_table;
451 h_operators_3                     type_varchar4000_table;
452 h_operators_3_opt                 type_varchar4000_table;
453 h_heuristic_ops                   type_varchar4000_table;
454 h_template_tokens                 type_varchar4000_table;
455 h_quantities                      type_varchar4000_table;
456 h_mathrounding_ops                type_varchar4000_table;
457 
458 h_methoddescriptors               type_data_hashtable;
459 
460 h_accumulation_ops                type_integer_table;
461 h_rounding_ops                    type_integer_table;
462 h_logical_ops                     type_integer_table;
463 h_numeric_ops                     type_integer_table;
464 h_trigonometric_ops               type_integer_table;
465 h_runtime_properties              type_integer_table;
466 
467 const_string_tag                  CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (1), 4);
468 const_integer_tag                 CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (3), 4);
469 const_float_tag                   CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (4), 4);
470 const_long_tag                    CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (5), 4);
471 const_double_tag                  CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (6), 4);
472 const_method_tag                  CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (10), 4);
473 const_date_tag                    CONSTANT RAW(1) := UTL_RAW.SUBSTR (UTL_RAW.CAST_FROM_BINARY_INTEGER (20), 4);
474 ---------------------------------------------------------------------------------------
475 /*#
476  * Reporting procedure.
477  *
478  * @param p_message Message text.
479  * @param p_urgency Urgency level of the message.
480  * @param p_run_id Unique id of the compilation session.
481  */
482  /*
483  PROCEDURE report ( p_message IN VARCHAR2
484                   , p_urgency IN PLS_INTEGER
485                   , p_run_id  IN NUMBER
486                   );
487                   */
488 ---------------------------------------------------------------------------------------
489 /*#
490  * Default method to generate logic for a model in the database in debug mode.
491  *
492  * @param p_object_id Database model id.
493  * @param x_run_id Unique id of the compilation session. If NULL value is passes, the
494  * id will be generated.
495  */
496 
497 PROCEDURE debug_logic ( p_object_id IN NUMBER
498                       , x_run_id    IN OUT NOCOPY NUMBER
499                       );
500 ---------------------------------------------------------------------------------------
501 /*#
502  * Default method to generate logic for a model in the database.
503  *
504  * @param p_object_id Database model id.
505  * @param x_run_id Unique id of the compilation session. If NULL value is passes, the
506  * id will be generated.
507  */
508 
509 PROCEDURE compile_logic ( p_object_id IN NUMBER
510                         , x_run_id    IN OUT NOCOPY NUMBER
511                         );
512 ---------------------------------------------------------------------------------------
513 /*#
514  * This method enables logic compiler to work remotely in a distributed transaction even
515  * if the model contains property-based compatibility rules - bug #2028790.
516  * DDL used in the property-based compatibility rules makes implicit commits and commits
517  * are not allowed in a distributed transaction when the remote procedure has parameters
518  * of type OUT.
519  *
520  * @param p_object_id Database model id.
521  * @param p_run_id Unique id of the compilation session, specified by the caller.
522  */
523 
524 PROCEDURE compile_logic__ ( p_object_id IN NUMBER
525                           , p_run_id    IN NUMBER
526                           );
527 ---------------------------------------------------------------------------------------
528 END;