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