DBA Data[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;