[Home] [Help]
PACKAGE BODY: APPS.CZ_LC_MGR
Source
1 PACKAGE BODY CZ_LC_MGR AS
2 /* $Header: czlcmgrb.pls 115.21 2004/05/17 19:46:48 skudravs ship $ */
3
4 PROCEDURE get_BATCH_size IS
5 BEGIN
6 SELECT TO_NUMBER(VALUE) INTO BATCH_size FROM CZ_DB_SETTINGS
7 WHERE UPPER(SETTING_ID)='BATCHSIZE';
8 EXCEPTION
9 WHEN NO_DATA_FOUND THEN
10 BATCH_size:=5000;
11 WHEN OTHERS THEN
12 BATCH_size:=5000;
13 END;
14
15 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
16 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
17
18 PROCEDURE assess_data IS
19 BEGIN
20 NULL;
21 END;
22
23
24 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
25 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
26
27 PROCEDURE redo_statistics IS
28 BEGIN
29 cz_base_mgr.REDO_STATISTICS('LC');
30 END;
31
32 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
33 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
34
35 PROCEDURE triggers_enabled
36 (Switch IN VARCHAR2) IS
37 BEGIN
38 cz_base_mgr.TRIGGERS_ENABLED('LC',Switch);
39 END;
40
41 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
42 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
43
44 PROCEDURE constraints_enabled
45 (Switch IN VARCHAR2) IS
46 BEGIN
47 cz_base_mgr.CONSTRAINTS_ENABLED('LC',Switch);
48 END;
49
50 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
51 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
52
53 PROCEDURE redo_sequences
54 (RedoStart_Flag IN VARCHAR2,
55 incr IN INTEGER DEFAULT NULL) IS
56 BEGIN
57 cz_base_mgr.REDO_SEQUENCES('LC',RedoStart_Flag,incr);
58 END;
59
60 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
61 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
62
63 PROCEDURE Propogate_DeletedFlag IS
64 BEGIN
65 CZ_BASE_MGR.exec('CZ_LCE_HEADERS','where deleted_flag='''||'0'||''' AND '||
66 'component_id in(select ps_node_id from CZ_PS_NODES where deleted_flag='''||'1'||''')',
67 'lce_header_id',FALSE);
68
69 CZ_BASE_MGR.exec('CZ_LCE_LOAD_SPECS','where deleted_flag='''||'0'||''' AND '||
70 'lce_header_id in(select lce_header_id from CZ_LCE_HEADERS where deleted_flag='''||'1'||''')',
71 'lce_header_id','attachment_expl_id','required_expl_id',FALSE);
72
73 CZ_BASE_MGR.exec('CZ_LCE_TEXTS','where '||
74 'lce_header_id in(select lce_header_id from CZ_LCE_HEADERS where deleted_flag='''||'1'||''')',
75 'lce_header_id','seq_nbr',TRUE);
76 END;
77
78 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
79 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
80
81 PROCEDURE purge IS
82 BEGIN
83 Propogate_DeletedFlag;
84 cz_base_mgr.PURGE('LC');
85 END;
86
87 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
88 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
89
90 PROCEDURE RESET_CLEAR IS
91 BEGIN
92 NULL;
93 END;
94
95 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
96 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
97
98 PROCEDURE modified
99 (AS_OF IN OUT NOCOPY DATE) IS
100 BEGIN
101 cz_base_mgr.MODIFIED('LC',AS_OF);
102 END;
103
104 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
105 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
106
107 FUNCTION makeOperator(inCode IN NUMBER) RETURN VARCHAR2 IS
108 v_operator_return VARCHAR2(20);
109 BEGIN
110
111 IF inCode = OPERATOR_LT THEN
112 v_operator_return := '<';
113 ELSIF inCode = OPERATOR_GT THEN
114 v_operator_return := '>';
115 ELSIF inCode = OPERATOR_EQUALS THEN
116 v_operator_return := '=';
117 ELSIF inCode = OPERATOR_NOTEQUALS THEN
118 v_operator_return := '!=';
119 ELSIF inCode = OPERATOR_NOT THEN
120 v_operator_return := '!=';
121 ELSIF inCode = OPERATOR_LE THEN
122 v_operator_return := '<=';
123 ELSIF inCode = OPERATOR_GE THEN
124 v_operator_return := '>=';
125 ELSIF inCode = OPERATOR_ADD THEN
126 v_operator_return := '+';
127 ELSIF inCode = OPERATOR_SUB THEN
128 v_operator_return := '-';
129 ELSIF inCode = OPERATOR_MULT THEN
130 v_operator_return := '*';
131 ELSIF inCode = OPERATOR_DIV THEN
132 v_operator_return := '/';
133 ELSIF inCode = OPERATOR_MIN THEN
134 v_operator_return := 'min';
135 ELSIF inCode = OPERATOR_MAX THEN
136 v_operator_return := 'max';
137 ELSE
138 v_operator_return := null;
139 END IF;
140 RETURN v_operator_return;
141 END;
142
143 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
144 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
145
146
147 PROCEDURE generate_lce_varchar(lce_header_id IN NUMBER)
148 AS
149
150 p_lce_header_id NUMBER;
151 Batch_Counter INTEGER:=0;
152
153 CURSOR header_cursor IS
154 SELECT lce_header_id,
155 desc_text,
156 component_id,
157 gen_version
158 FROM cz_lce_headers
159 WHERE Lce_header_id = p_lce_header_id;
160
161 CURSOR lines_cursor(p_lce_header_id NUMBER) IS
162 SELECT lce_line_id,
163 int_operand1,
164 int_operand2,
165 fp_operand,
166 operator, name,
167 prior_line_id,
168 line_type,
169 intl_text_id,
170 int_operand3
171 FROM cz_lce_lines
172 WHERE lce_header_id = p_lce_header_id
173 ORDER BY lce_line_id ;
174
175 CURSOR operands_cursor(p_lce_header_id NUMBER ) IS
176 SELECT lce_line_id,
177 operand_seq,
178 operand_type,
179 name
180 FROM cz_lce_operands
181 WHERE lce_header_id = p_lce_header_id
182 ORDER BY lce_line_id, operand_seq;
183
184 v_header_cursor header_cursor%ROWTYPE;
185 v_lines_cursor lines_cursor%ROWTYPE;
186 v_operands_cursor operands_cursor%ROWTYPE;
187 v_op_type cz_lce_operands.operand_type%TYPE;
188 v_name VARCHAR2(255);
189 v_generic_type CHAR(1);
190 v_line_type CHAR(1);
191 v_op1 VARCHAR2(255);
192 v_op2 VARCHAR2(255);
193 v_op3 VARCHAR2(255);
194 v_operator NUMBER;
195 v_right_op VARCHAR2(255);
196 v_result_op VARCHAR2(255);
197 v_operator_return VARCHAR2(3);
198 v_op VARCHAR2(255);
199 v_buffer VARCHAR2(2000):=' ';
200 text VARCHAR2(2000);
201 v_xx_count NUMBER:= 0;
202 v_buffer_length NUMBER:=0;
203 counter NUMBER := 1;
204 init_counter NUMBER := 1;
205 line_id_found BOOLEAN:= FALSE;
206 v_seq_no INTEGER:=0;
207 var_sgn VARCHAR2(3);
208 v_prop VARCHAR2(255);
209 v_withcell_value VARCHAR2(255);
210
211 TYPE t_operandsRecord IS RECORD (
212 lce_line_id cz_lce_operands.lce_line_id%TYPE,
213 operand_seq cz_lce_operands.operand_seq%TYPE,
214 operand_type cz_lce_operands.operand_type%TYPE,
215 name cz_lce_operands.name%TYPE
216 );
217
218 TYPE operandsTable IS TABLE OF t_operandsRecord INDEX BY BINARY_INTEGER;
219 TYPE text_field_Table IS TABLE OF cz_lce_texts.lce_text%TYPE INDEX BY BINARY_INTEGER;
220 v_operandsTable operandsTable;
221 v_text_field_Table text_field_Table;
222 text_field_counter NUMBER:=0;
223
224 BEGIN
225 get_BATCH_size;
226 p_lce_header_id := lce_header_id;
227
228 OPEN header_cursor;
229 LOOP
230 FETCH header_cursor
231 INTO v_header_cursor ;
232 EXIT WHEN header_cursor%NOTFOUND ;
233 END LOOP;
234 CLOSE header_cursor;
235
236
237 OPEN operands_cursor(v_header_cursor.lce_header_id);
238 LOOP
239 FETCH operands_cursor INTO v_operands_cursor;
240 EXIT WHEN operands_cursor%NOTFOUND;
241 v_operandsTable(counter).lce_line_id := v_operands_cursor.lce_line_id;
242 v_operandsTable(counter).operand_seq := v_operands_cursor.operand_seq;
243 v_operandsTable(counter).operand_type := v_operands_cursor.operand_type;
244 v_operandsTable(counter).name := v_operands_cursor.name;
245 counter := counter +1;
246 END LOOP;
247 CLOSE operands_cursor;
248
249 text_field_counter := text_field_counter + 1;
250 v_text_field_Table(text_field_counter) :='REM Generated LCE file';
251 text_field_counter := text_field_counter + 1;
252 v_text_field_Table(text_field_counter) := ENDOFLINE1;
253 text_field_counter := text_field_counter + 1;
254 v_text_field_Table(text_field_counter) :='REM DO NOT EDIT THIS FILE';
255 text_field_counter := text_field_counter + 1;
256 v_text_field_Table(text_field_counter) := ENDOFLINE1;
257 text_field_counter := text_field_counter + 1;
258 v_text_field_Table(text_field_counter) :='CONTROL NOSPEC';
259 text_field_counter := text_field_counter + 1;
260 v_text_field_Table(text_field_counter) := ENDOFLINE1;
261 text_field_counter := text_field_counter + 1;
262 v_text_field_Table(text_field_counter) :='VERSION 3 3';
263 text_field_counter := text_field_counter + 1;
264 v_text_field_Table(text_field_counter) := ENDOFLINE1;
265 text_field_counter := text_field_counter + 1;
266 v_text_field_Table(text_field_counter):='SETDEFAULTDELTA F';
267 text_field_counter := text_field_counter + 1;
268 v_text_field_Table(text_field_counter) := ENDOFLINE1;
269
270 text_field_counter := text_field_counter + 1;
271 v_text_field_Table(text_field_counter):='REM -- Component: '||to_char(v_header_cursor.component_id)||ENDOFLINE1;
272 text_field_counter := text_field_counter + 1;
273 v_text_field_Table(text_field_counter) := ENDOFLINE1;
274 text_field_counter := text_field_counter + 1;
275 v_text_field_Table(text_field_counter):='REM -- Description: '||v_header_cursor.desc_text||ENDOFLINE1;
276 text_field_counter := text_field_counter + 1;
277 v_text_field_Table(text_field_counter) := ENDOFLINE1;
278
279 OPEN lines_cursor(v_header_cursor.lce_header_id);
280 LOOP
281 FETCH lines_cursor INTO v_lines_cursor;
282 EXIT WHEN lines_cursor%NOTFOUND;
283
284 IF (v_lines_cursor.line_type = LOGIC_VERB_OBJECT) THEN
285 text_field_counter := text_field_counter + 1;
286 v_text_field_Table(text_field_counter) :='OBJECT '||v_lines_cursor.name ;
287 IF (v_lines_cursor.int_operand3=1) THEN
288 v_text_field_Table(text_field_counter):=v_text_field_Table(text_field_counter)||' R';
289 END IF;
290 LOOP
291 EXIT WHEN (init_counter >=counter);
292 EXIT WHEN(( v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id )OR (init_counter =counter));
293 text_field_counter := text_field_counter + 1;
294 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
295 init_counter := init_counter + 1;
296 END LOOP;
297 text_field_counter := text_field_counter + 1;
298 v_text_field_Table(text_field_counter) := ENDOFLINE1;
299
300 ELSIF ( v_lines_cursor.line_type = LOGIC_VERB_TOTAL) THEN
301 text_field_counter := text_field_counter + 1;
302 v_text_field_Table(text_field_counter) :='TOTAL '||v_lines_cursor.name;
303
304 IF (v_lines_cursor.int_operand2 = 1) THEN
305 text_field_counter := text_field_counter + 1;
306 v_text_field_Table(text_field_counter) :=' R';
307 END IF;
308
309 IF (v_lines_cursor.int_operand3 <> -1) THEN
310 text_field_counter := text_field_counter + 1;
311 v_text_field_Table(text_field_counter) :=' '||v_lines_cursor.fp_operand;
312 END IF;
313 IF (v_lines_cursor.int_operand1 = 1) THEN
314 text_field_counter := text_field_counter + 1;
315 v_text_field_Table(text_field_counter) :=' D+';
316 END IF;
317
318 text_field_counter := text_field_counter + 1;
319 v_text_field_Table(text_field_counter):= ENDOFLINE1;
320
321 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_SG0) THEN
322 text_field_counter := text_field_counter + 1;
323 v_text_field_Table(text_field_counter) :='SGO '||v_lines_cursor.name ;
324 LOOP
325 EXIT WHEN (init_counter >=counter);
326 EXIT WHEN((v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
327 text_field_counter := text_field_counter + 1;
328 v_text_field_Table(text_field_counter):=' '||v_operandsTable(init_counter).name;
329 init_counter := init_counter + 1;
330 END LOOP;
331 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
332 text_field_counter := text_field_counter + 1;
333 v_text_field_Table(text_field_counter):= ' ... '||v_lines_cursor.intl_text_id;
334 END IF;
335 text_field_counter := text_field_counter + 1;
336 v_text_field_Table(text_field_counter) := ENDOFLINE1;
337
338 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_SG1) THEN
339 text_field_counter := text_field_counter + 1;
340 v_text_field_Table(text_field_counter) :='SG1 '||v_lines_cursor.name;
341
342 LOOP
343 EXIT WHEN (init_counter >=counter);
344 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
345 text_field_counter := text_field_counter + 1;
346 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
347 init_counter := init_counter + 1;
348 END LOOP;
349 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
350 text_field_counter := text_field_counter + 1;
351 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
352 END IF;
353 text_field_counter := text_field_counter + 1;
354 v_text_field_Table(text_field_counter) := ENDOFLINE1;
355
356 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_SG) THEN
357 text_field_counter := text_field_counter + 1;
358 v_text_field_Table(text_field_counter) :='SG '||v_lines_cursor.name;
359
360 LOOP
361 EXIT WHEN (init_counter >=counter);
362 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
363 text_field_counter := text_field_counter + 1;
364 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
365 init_counter := init_counter + 1;
366 END LOOP;
367 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
368 text_field_counter := text_field_counter + 1;
369 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
370 END IF;
371
372 text_field_counter := text_field_counter + 1;
373 v_text_field_Table(text_field_counter) := ENDOFLINE1;
374
375 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_MINMAX) THEN
376 text_field_counter := text_field_counter + 1;
377 v_text_field_Table(text_field_counter) :='MINMAX '||v_lines_cursor.int_operand1||' '||v_lines_cursor.int_operand2;
378 LOOP
379 EXIT WHEN (init_counter >=counter);
380 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
381 text_field_counter := text_field_counter + 1;
382 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
383 init_counter := init_counter + 1;
384 END LOOP;
385 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
386 text_field_counter := text_field_counter + 1;
387 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
388 END IF;
389 text_field_counter := text_field_counter + 1;
390 v_text_field_Table(text_field_counter) := ENDOFLINE1;
391
392 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_COMBO) THEN
393 text_field_counter := text_field_counter + 1;
394 v_text_field_Table(text_field_counter) :='COMBO '||v_lines_cursor.name||' '||v_lines_cursor.int_operand1||' '||v_lines_cursor.int_operand2||' '||v_lines_cursor.int_operand3;
395 LOOP
396 EXIT WHEN (init_counter >=counter);
397 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
398 text_field_counter := text_field_counter + 1;
399 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
400 init_counter := init_counter + 1;
401 END LOOP;
402 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
403 text_field_counter := text_field_counter + 1;
404 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
405 END IF;
406
407 text_field_counter := text_field_counter + 1;
408 v_text_field_Table(text_field_counter) := ENDOFLINE1;
409
410 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_CI) THEN
411 text_field_counter := text_field_counter + 1;
412 v_text_field_Table(text_field_counter) :='CI '||v_lines_cursor.int_operand1||' '||v_lines_cursor.name||' '||v_lines_cursor.int_operand2;
413 text_field_counter := text_field_counter + 1;
414 v_text_field_Table(text_field_counter) := ENDOFLINE1;
415
416 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_CC) THEN
417 text_field_counter := text_field_counter + 1;
418 v_text_field_Table(text_field_counter) :='CC '||v_lines_cursor.int_operand1||' '||v_lines_cursor.int_operand2||' '||v_lines_cursor.int_operand3||' '||v_lines_cursor.name;
419 text_field_counter := text_field_counter + 1;
420 v_text_field_Table(text_field_counter) := ENDOFLINE1;
421
422 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_CR) THEN
423 text_field_counter := text_field_counter + 1;
424 v_text_field_Table(text_field_counter) :='CR '||v_lines_cursor.int_operand1;
425 LOOP
426 EXIT WHEN (init_counter >=counter);
427 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
428 text_field_counter := text_field_counter + 1;
429 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
430 init_counter := init_counter + 1;
431 END LOOP;
432
433 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
434 text_field_counter := text_field_counter + 1;
435 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
436 END IF;
437 text_field_counter := text_field_counter + 1;
438 v_text_field_Table(text_field_counter) := ENDOFLINE1;
439
440 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_COMBO_END) THEN
441 text_field_counter := text_field_counter + 1;
442 v_text_field_Table(text_field_counter) :='COMBO_END';
443 text_field_counter := text_field_counter + 1;
444 v_text_field_Table(text_field_counter) := ENDOFLINE1;
445
446
447 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_GS) THEN
448 IF v_lines_cursor.name IS NULL THEN
449 v_name := '';
450 ELSE
451 v_name := ' '||v_lines_cursor.name;
452 END IF;
453 IF v_lines_cursor.int_operand1 = OPR_REQUIRES THEN
454 v_generic_type := 'R';
455 ELSIF v_lines_cursor.int_operand1 = OPR_IMPLIES THEN
456 v_generic_type := 'I';
457 ELSIF v_lines_cursor.int_operand1 = OPR_EXCLUDES THEN
458 v_generic_type := 'E';
459 ELSIF v_lines_cursor.int_operand1 = OPR_NEGATES THEN
460 v_generic_type := 'N';
461 END IF;
462 text_field_counter := text_field_counter + 1;
463 v_text_field_Table(text_field_counter) := 'GS '||v_generic_type||v_name;
464 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
465 text_field_counter := text_field_counter + 1;
466 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
467 END IF;
468 text_field_counter := text_field_counter + 1;
469 v_text_field_Table(text_field_counter) := ENDOFLINE1;
470
471 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_GL) THEN
472 IF v_lines_cursor.int_operand1 = OPERATOR_ANYOF THEN
473 v_line_type := 'N';
474 ELSIF v_lines_cursor.int_operand1 = OPERATOR_ALLOF THEN
475 v_line_type := 'L';
476 ELSE
477 v_line_type := NULL;
478 END IF;
479 text_field_counter := text_field_counter + 1;
480 v_text_field_Table(text_field_counter) := 'GL '||v_line_type;
481 LOOP
482 EXIT WHEN (init_counter >=counter);
483 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
484 text_field_counter := text_field_counter + 1;
485 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
486 init_counter := init_counter + 1;
487 END LOOP;
488
489 text_field_counter := text_field_counter + 1;
490 v_text_field_Table(text_field_counter) := ENDOFLINE1;
491
492 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_GR) THEN
493 IF v_lines_cursor.int_operand1 = OPERATOR_ANYOF THEN
494 v_line_type := 'N';
495 ELSIF v_lines_cursor.int_operand1 = OPERATOR_ALLOF THEN
496 v_line_type := 'L';
497 ELSE
498 v_line_type := NULL;
499 END IF;
500 text_field_counter := text_field_counter + 1;
501 v_text_field_Table(text_field_counter) := 'GR '||v_line_type;
502
503 LOOP
504 EXIT WHEN (init_counter >=counter);
505 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter >=counter));
506 text_field_counter := text_field_counter + 1;
507 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
508 init_counter := init_counter + 1;
509 END LOOP;
510
511 text_field_counter := text_field_counter + 1;
512 v_text_field_Table(text_field_counter) := ENDOFLINE1;
513
514 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_CONTRIBUTE) THEN
515
516 LOOP
517 EXIT WHEN((init_counter >= counter));
518 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter >=counter));
519 v_op1 := v_operandsTable(init_counter).name;
520 v_op2 := v_operandsTable(init_counter+1).name;
521 v_op3 := v_operandsTable(init_counter+2).name;
522 init_counter := init_counter+3;
523 END LOOP;
524
525 v_operator_return:=makeOperator(v_lines_cursor.operator);
526
527 IF v_lines_cursor.name IS NULL THEN
528 text_field_counter := text_field_counter + 1;
529 v_text_field_Table(text_field_counter) := 'CONTRIBUTE '||v_op1||' '||v_operator_return||' '||v_op2||' '||v_op3;
530 ELSE
531 text_field_counter := text_field_counter + 1;
532 v_text_field_Table(text_field_counter) := 'CONTRIBUTE '||v_op1||' '||v_operator_return||' '||v_op2||' '||v_op3||' '||v_lines_cursor.name;
533 END IF;
534 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
535 text_field_counter := text_field_counter + 1;
536 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
537 END IF;
538
539 text_field_counter := text_field_counter + 1;
540 v_text_field_Table(text_field_counter) := ENDOFLINE1;
541
542 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_WITH) THEN
543
544 LOOP
545 EXIT WHEN (init_counter >=counter);
546 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
547 text_field_counter := text_field_counter + 1;
548 v_text_field_Table(text_field_counter) :='WITH '||v_lines_cursor.name||' = '||v_operandsTable(init_counter).name;
549 text_field_counter := text_field_counter + 1;
550 v_text_field_Table(text_field_counter) := ENDOFLINE1;
551 init_counter := init_counter + 1;
552 END LOOP;
553
554 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_WITHCELL) THEN
555
556 LOOP
557 EXIT WHEN (init_counter >=counter);
558 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
559 v_prop := v_operandsTable(init_counter).name;
560 v_withcell_value := v_operandsTable(init_counter + 1).name;
561 init_counter := init_counter + 2;
562 END LOOP;
563
564 text_field_counter := text_field_counter + 1;
565 v_text_field_Table(text_field_counter) := 'WITHCELL '||v_lines_cursor.name||' '||v_prop||' = '||v_withcell_value ;
566 text_field_counter := text_field_counter + 1;
567 v_text_field_Table(text_field_counter) := ENDOFLINE1;
568
569
570 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_COMPARE) THEN
571
572 LOOP
573 EXIT WHEN (init_counter >=counter);
574 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
575 v_right_op := v_operandsTable(init_counter).name;
576 v_result_op := v_operandsTable(init_counter+1).name;
577 init_counter := init_counter + 2;
578 END LOOP;
579
580 v_operator_return:=makeOperator(v_lines_cursor.operator);
581
582 text_field_counter := text_field_counter + 1;
583 v_text_field_Table(text_field_counter) := 'COMPARE '||' '||v_lines_cursor.name||' '||v_operator_return||' '||v_right_op||' '||v_result_op;
584 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
585 text_field_counter := text_field_counter + 1;
586 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
587 END IF;
588
589 text_field_counter := text_field_counter + 1;
590 v_text_field_Table(text_field_counter) := ENDOFLINE1;
591
592 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_INC) THEN
593 text_field_counter := text_field_counter + 1;
594 v_text_field_Table(text_field_counter) :='INC';
595 LOOP
596 EXIT WHEN (init_counter >=counter);
597 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
598 text_field_counter := text_field_counter + 1;
599 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
600 init_counter := init_counter + 1;
601 END LOOP;
602 v_text_field_Table(text_field_counter) := v_text_field_Table(text_field_counter)||' '||v_lines_cursor.name;
603 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
604 text_field_counter := text_field_counter + 1;
605 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
606 END IF;
607
608 text_field_counter := text_field_counter + 1;
609 v_text_field_Table(text_field_counter) := ENDOFLINE1;
610 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_TEXT) THEN
611 LOOP
612 EXIT WHEN (init_counter >=counter);
613 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
614 v_op := v_operandsTable(init_counter).name;
615 init_counter := init_counter + 1;
616 END LOOP;
617
618 IF v_op IS NULL THEN
619 text_field_counter := text_field_counter + 1;
620 v_text_field_Table(text_field_counter) :='TEXT '||v_lines_cursor.name||' ""';
621 ELSE
622 text_field_counter := text_field_counter + 1;
623 v_text_field_Table(text_field_counter) :='TEXT '||v_lines_cursor.name||' "'||v_op||'"';
624 END IF;
625 text_field_counter := text_field_counter + 1;
626 v_text_field_Table(text_field_counter) := ENDOFLINE1;
627
628 ELSIF ( v_lines_cursor.line_type = LOGIC_VERB_SGN ) THEN
629 IF (v_lines_cursor.int_operand3=1) THEN
630 var_sgn:='R ';
631 ELSE
632 var_sgn:='';
633 END IF;
634 text_field_counter := text_field_counter + 1;
635 v_text_field_Table(text_field_counter) :='SGN '||v_lines_cursor.name||' '||var_sgn||v_lines_cursor.int_operand1||' '||v_lines_cursor.int_operand2;
636 LOOP
637 EXIT WHEN (init_counter >=counter);
638 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
639 text_field_counter := text_field_counter + 1;
640 v_text_field_Table(text_field_counter) :=' '||v_operandsTable(init_counter).name;
641 init_counter := init_counter + 1;
642 END LOOP;
643 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
644 text_field_counter := text_field_counter + 1;
645 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
646 END IF;
647 text_field_counter := text_field_counter + 1;
648 v_text_field_Table(text_field_counter) := ENDOFLINE1;
649
650 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_SET) THEN
651
652 LOOP
653 EXIT WHEN (init_counter >=counter);
654 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
655 v_op1 := v_operandsTable(init_counter).name;
656 init_counter := init_counter + 1;
657 END LOOP;
658 text_field_counter := text_field_counter + 1;
659 v_text_field_Table(text_field_counter) :='SET '||v_lines_cursor.name||' '||v_op1;
660 text_field_counter := text_field_counter + 1;
661 v_text_field_Table(text_field_counter) := ENDOFLINE1;
662
663 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_BOM) THEN
664
665 text_field_counter := text_field_counter + 1;
666 v_text_field_Table(text_field_counter) :='BOM '||v_lines_cursor.name||' ';
667
668 IF (v_lines_cursor.int_operand3 = 1 ) THEN
669 text_field_counter := text_field_counter + 1;
670 v_text_field_Table(text_field_counter) :='R ';
671 END IF;
672
673 IF (v_lines_cursor.operator = 10) THEN
674 text_field_counter := text_field_counter + 1;
675 v_text_field_Table(text_field_counter) :='M NRC';
676 ELSIF (v_lines_cursor.operator = 11) THEN
677 text_field_counter := text_field_counter + 1;
678 v_text_field_Table(text_field_counter) :='M RC';
679 ELSIF (v_lines_cursor.operator = 20) THEN
680 text_field_counter := text_field_counter + 1;
681 v_text_field_Table(text_field_counter) :='O NRC';
682 ELSIF (v_lines_cursor.operator = 21) THEN
683 text_field_counter := text_field_counter + 1;
684 v_text_field_Table(text_field_counter) :='O RC';
685 ELSIF (v_lines_cursor.operator = 30) THEN
686 text_field_counter := text_field_counter + 1;
687 v_text_field_Table(text_field_counter) :='S NRC';
688 ELSIF (v_lines_cursor.operator = 31) THEN
689 text_field_counter := text_field_counter + 1;
690 v_text_field_Table(text_field_counter) :='S RC';
691 END IF;
692
693 text_field_counter := text_field_counter + 1;
694 v_text_field_Table(text_field_counter) := ' '||v_lines_cursor.int_operand1||' '||v_lines_cursor.int_operand2||' ';
695
696
697 LOOP
698 EXIT WHEN (init_counter >=counter);
699 EXIT WHEN(( v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id )OR (init_counter =counter));
700 text_field_counter := text_field_counter + 1;
701 v_text_field_Table(text_field_counter) := v_operandsTable(init_counter).name||' ';
702 init_counter := init_counter + 1;
703 END LOOP;
704
705 text_field_counter := text_field_counter + 1;
706 v_text_field_Table(text_field_counter) := v_lines_cursor.fp_operand||' ';
707
708 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
709 text_field_counter := text_field_counter + 1;
710 v_text_field_Table(text_field_counter):='... '||v_lines_cursor.intl_text_id;
711 END IF;
712
713 text_field_counter := text_field_counter + 1;
714 v_text_field_Table(text_field_counter) := ENDOFLINE1;
715
716 ELSIF (v_lines_cursor.line_type = LOGIC_VERB_NOTTRUE) THEN
717
718 LOOP
719 EXIT WHEN (init_counter >=counter);
720 EXIT WHEN( (v_operandsTable(init_counter).lce_line_id > v_lines_cursor.lce_line_id ) OR (init_counter =counter));
721 v_op := v_operandsTable(init_counter).name;
722 init_counter := init_counter + 1;
723 END LOOP;
724
725 text_field_counter := text_field_counter + 1;
726 v_text_field_Table(text_field_counter) :='NOTTRUE '||v_lines_cursor.name||' '||v_op;
727 IF ( v_lines_cursor.intl_text_id IS NOT NULL ) THEN
728 text_field_counter := text_field_counter + 1;
729 v_text_field_Table(text_field_counter):=' ... '||v_lines_cursor.intl_text_id;
730 END IF;
731
732 text_field_counter := text_field_counter + 1;
733 v_text_field_Table(text_field_counter) := ENDOFLINE1;
734
735 END IF;
736
737 END LOOP;
738
739 text_field_counter := text_field_counter + 1;
740 v_text_field_Table(text_field_counter):='REM -- End Component: '||to_char(v_header_cursor.component_id);
741 text_field_counter := text_field_counter + 1;
742 v_text_field_Table(text_field_counter):= ENDOFLINE1;
743
744 DELETE FROM cz_lce_texts where lce_header_id = p_lce_header_id;
745 BEGIN
746 SELECT NVL(MAX(seq_nbr),0)
747 INTO v_seq_no
748 FROM cz_lce_texts
749 WHERE lce_header_id = p_lce_header_id ;
750
751 EXCEPTION
752 WHEN OTHERS THEN
753 v_seq_no:=0;
754 END;
755
756 v_buffer :='';
757 FOR i IN 1..text_field_counter LOOP
758 v_buffer_length := NVL(LENGTH(v_buffer),0);
759 IF ((v_buffer_length + NVL(LENGTH(v_text_field_Table(i)),0)) > 2000) THEN
760 v_seq_no := v_seq_no +1;
761 INSERT INTO cz_lce_texts(LCE_HEADER_ID,SEQ_NBR,LCE_TEXT)
762 values(p_lce_header_id, v_seq_no, v_buffer);
763 v_buffer := v_text_field_Table(i);
764
765 IF BATCH_Counter>=BATCH_size THEN
766 Batch_Counter:=0;
767 COMMIT;
768 ELSE
769 Batch_Counter:=Batch_Counter+1;
770 END IF;
771
772 ELSE
773 v_buffer := v_buffer||v_text_field_Table(i);
774 END IF;
775 END LOOP;
776
777 v_seq_no := v_seq_no +1;
778 INSERT INTO cz_lce_texts(LCE_HEADER_ID,SEQ_NBR,LCE_TEXT)
779 values(p_lce_header_id, v_seq_no, v_buffer);
780 COMMIT;
781 CLOSE lines_cursor ;
782 EXCEPTION
783 WHEN OTHERS THEN
784 cz_base_mgr.LOG_REPORT('CZ_LC_MGR.cz_generate_lce_varchar','ERROR : '||SQLERRM);
785
786 END;
787
788 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
789 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
790
791 END;