33:
34: CONSTANT_PI CONSTANT VARCHAR2(3) := 'pi';
35: CONSTANT_E CONSTANT VARCHAR2(3) := 'e';
36:
37: NewLine CONSTANT VARCHAR2(25) := FND_GLOBAL.NEWLINE;
38:
39: CZ_UPRT_MULTIPLE_ROOTS EXCEPTION;
40: CZ_UPRT_UNKNOWN_TYPE EXCEPTION;
41: CZ_UPRT_INCORRECT_PROP EXCEPTION;
168: h_FullName(p_ps_node_id) := 1;
169: EXIT;
170: END LOOP;
171: ELSIF(c_name.parent_id IS NOT NULL)THEN -- This is to exclude the root model name from the path.
172: v_Name := '''' || c_name.name || '''' || FND_GLOBAL.LOCAL_CHR(8) || v_Name;
173: END IF;
174: END LOOP;
175:
176: h_ModelPath(p_ps_node_id) := v_Name;
212: NULL;
213: END;
214: END IF;
215:
216: IF(v_ModelName IS NOT NULL)THEN v_ModelName := FND_GLOBAL.LOCAL_CHR(7) || '''' || v_ModelName || ''''; END IF;
217:
218: IF(v_Name IS NULL)THEN v_Name := generate_model_path(h_ReferringId(v_Node)) || v_ModelName;
219: ELSE v_Name := generate_model_path(h_ReferringId(v_Node)) || v_ModelName || FND_GLOBAL.LOCAL_CHR(8) || v_Name;
220: END IF;
215:
216: IF(v_ModelName IS NOT NULL)THEN v_ModelName := FND_GLOBAL.LOCAL_CHR(7) || '''' || v_ModelName || ''''; END IF;
217:
218: IF(v_Name IS NULL)THEN v_Name := generate_model_path(h_ReferringId(v_Node)) || v_ModelName;
219: ELSE v_Name := generate_model_path(h_ReferringId(v_Node)) || v_ModelName || FND_GLOBAL.LOCAL_CHR(8) || v_Name;
220: END IF;
221: END IF;
222:
223: v_Node := h_ParentId(v_Node);
257: v_level := 1;
258:
259: LOOP
260:
261: v_subthis := SUBSTR(v_this, INSTR(v_this, FND_GLOBAL.LOCAL_CHR(8), -1, v_level) + 1);
262: v_subthat := SUBSTR(v_that, INSTR(v_that, FND_GLOBAL.LOCAL_CHR(8), -1, v_level) + 1);
263:
264: IF(v_subthis = v_this)THEN EXIT; END IF;
265: IF(v_subthat = v_that)THEN v_Level := v_Level + 1; EXIT; END IF;
258:
259: LOOP
260:
261: v_subthis := SUBSTR(v_this, INSTR(v_this, FND_GLOBAL.LOCAL_CHR(8), -1, v_level) + 1);
262: v_subthat := SUBSTR(v_that, INSTR(v_that, FND_GLOBAL.LOCAL_CHR(8), -1, v_level) + 1);
263:
264: IF(v_subthis = v_this)THEN EXIT; END IF;
265: IF(v_subthat = v_that)THEN v_Level := v_Level + 1; EXIT; END IF;
266: IF(v_subthis <> v_subthat)THEN EXIT; END IF;
276:
277: --Bug #4590481 - in this case we also need to concatenate the path. If the full path is not
278: --required, the second line will reset it to just the node name.
279:
280: v_name := v_this || FND_GLOBAL.LOCAL_CHR(8) || v_name;
281: IF(NOT h_FullName.EXISTS(v_ExprPsNodeId(j)))THEN v_name := h_NodeName(v_ExprPsNodeId(j)); END IF;
282: ELSE v_name := SUBSTR(v_this, INSTR(v_this, FND_GLOBAL.LOCAL_CHR(8), -1, v_depth) + 1) || FND_GLOBAL.LOCAL_CHR(8) || v_name;
283: END IF;
284: END IF;
278: --required, the second line will reset it to just the node name.
279:
280: v_name := v_this || FND_GLOBAL.LOCAL_CHR(8) || v_name;
281: IF(NOT h_FullName.EXISTS(v_ExprPsNodeId(j)))THEN v_name := h_NodeName(v_ExprPsNodeId(j)); END IF;
282: ELSE v_name := SUBSTR(v_this, INSTR(v_this, FND_GLOBAL.LOCAL_CHR(8), -1, v_depth) + 1) || FND_GLOBAL.LOCAL_CHR(8) || v_name;
283: END IF;
284: END IF;
285:
286: v_Index := vi_ExprId.COUNT + 1;
286: v_Index := vi_ExprId.COUNT + 1;
287: vi_ExprId(v_Index) := v_ExprId(j);
288:
289: v_Level := 1;
290: WHILE(INSTR(v_name, FND_GLOBAL.LOCAL_CHR(8), 1, v_Level) <> 0)LOOP v_Level := v_Level + 1; END LOOP;
291: vi_Depth(v_Index) := v_Level;
292:
293: v_name := REPLACE(v_name, '''' || FND_GLOBAL.LOCAL_CHR(7) || '''', '''.''');
294: v_name := REPLACE(v_name, '''' || FND_GLOBAL.LOCAL_CHR(8) || '''', '''.''');
289: v_Level := 1;
290: WHILE(INSTR(v_name, FND_GLOBAL.LOCAL_CHR(8), 1, v_Level) <> 0)LOOP v_Level := v_Level + 1; END LOOP;
291: vi_Depth(v_Index) := v_Level;
292:
293: v_name := REPLACE(v_name, '''' || FND_GLOBAL.LOCAL_CHR(7) || '''', '''.''');
294: v_name := REPLACE(v_name, '''' || FND_GLOBAL.LOCAL_CHR(8) || '''', '''.''');
295:
296: v_aux := 1;
297:
290: WHILE(INSTR(v_name, FND_GLOBAL.LOCAL_CHR(8), 1, v_Level) <> 0)LOOP v_Level := v_Level + 1; END LOOP;
291: vi_Depth(v_Index) := v_Level;
292:
293: v_name := REPLACE(v_name, '''' || FND_GLOBAL.LOCAL_CHR(7) || '''', '''.''');
294: v_name := REPLACE(v_name, '''' || FND_GLOBAL.LOCAL_CHR(8) || '''', '''.''');
295:
296: v_aux := 1;
297:
298: FOR i IN 1..vi_Name.COUNT LOOP