DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_LAB_MIGRATION

Source


1 PACKAGE BODY GMD_LAB_MIGRATION AS
2 /* $Header: GMDLMIGB.pls 120.1 2005/08/12 09:41:13 txdaniel noship $  pxkumar*/
3 
4   PROCEDURE INSERT_LAB_FORMULA IS
5 
6      error_msg  VARCHAR2(240);
7 
8     /*Cursor to get all the formula which have no tpformula_id attached*/
9 
10     CURSOR Cur_non_tp_formula IS
11       SELECT *
12       FROM   lm_form_mst
13       WHERE  exists (SELECT distinct d.formula_id
14                      FROM   lm_form_dtl d
15                      WHERE  NVL(d.tpformula_id, 0) = 0
16                      AND    d.formula_id = formula_id)
17       order by formula_no, formula_vers;
18     /*Cursor to get all the formula which have tpformula_id attached*/
19 
20     CURSOR Cur_tp_formula IS
21       SELECT *
22       FROM   lm_form_mst
23       WHERE  formula_id IN (SELECT distinct d.formula_id
24                             FROM   lm_form_dtl d
25                             WHERE  NVL(d.tpformula_id, 0) > 0
26                             AND    d.formula_id = formula_id)
27       order by formula_no, formula_vers;
28 
29     /*Cursor to check whether a formula with same no and version exists,
30     if so then get the max version of the formula*/
31 
32     CURSOR Cur_check_formula_exists (V_formula_no VARCHAR2, V_formula_vers NUMBER) IS
33       SELECT formula_vers , formula_status
34       FROM   fm_form_mst
35       WHERE  formula_no = V_formula_no
36       AND    formula_vers = V_formula_vers ;
37 
38 
39       CURSOR Cur_formula_trans_exists (V_formula_id NUMBER) IS
40         select count(*)
41          FROM  gmd_lab_formula_assoc
42          WHERE old_formula_id = v_formula_id;
43 
44     CURSOR Cur_get_max_vers(V_formula_no VARCHAR2) IS
45       SELECT max(formula_vers)
46       FROM   fm_form_mst
47       WHERE  formula_no = V_formula_no;
48 
49 
50   /*Cursor to get the formula_id of the formula with tpformula_id > 0*/
51 
52     CURSOR Cur_get_tp_id (V_formula_id NUMBER) IS
53       SELECT formula_id
54       FROM   fm_form_mst
55       WHERE  (formula_no, formula_vers)
56       IN     (SELECT formula_no, formula_vers
57               FROM   lm_form_mst
58               WHERE  formula_id = V_formula_id);
59 
60   /*Cursor to create sequence of the formula_id*/
61 
62    CURSOR fm_formula_id  is
63      select  gem5_formula_id_s.nextval from sys.dual;
64 
65    /*Cursor to get all formula details for a given formula_id */
66 
67        CURSOR lab_detail (Vformula_id IN NUMBER) is
68         select * from lm_form_dtl
69         where formula_id = Vformula_id ;
70 
71    /*Cursor to create sequence of the formulaline_id */
72 
73        CURSOR fm_formulaline_id  is
74 
75        select  gem5_formulaline_id_s.nextval from sys.dual;
76 
77 /* local parameters*/
78        Xformula_id  number;
79        Xformulaline_id  number;
80        X_formula_vers	NUMBER;
81        X_tp_formula_id  NUMBER;
82        l_orgn_code	VARCHAR2(4);
83        X_FLAG           VARCHAR2(32) := 'FALSE' ;
84        X_FORMULA_STATUS VARCHAR2(32) ;
85        lab_rec  Cur_non_tp_formula%ROWTYPE;
86        lab_detail_rec lab_detail%ROWTYPE;
87        l_count NUMBER DEFAULT 0;
88        X_STATUS         VARCHAR2(30); -- Bug 3217071
89     Begin
90     /*get all the formula with no tpformula_id */
91 
92       FOR lab_rec IN Cur_non_tp_formula LOOP
93       BEGIN
94         SAVEPOINT header;
95 
96         /* Step 1 : To migrate data ino the lab formula Header table  */
97 
98         OPEN fm_formula_id ;
99         fetch fm_formula_id into Xformula_id ;
100         close fm_formula_id;
101 
102 
103          /* Step 2 : To check for those formula no and version which
104                          exists in the formula Header table. If a formula with same
105                          formula no and version exists in the formula header table,
106                          increase the version of formula to be inserted. */
107         X_flag := 'FALSE' ;
108 
109           OPEN Cur_check_formula_exists (lab_rec.formula_no, lab_rec.formula_vers);
110           FETCH Cur_check_formula_exists INTO X_formula_vers, x_formula_status;
111           IF Cur_check_formula_exists%FOUND THEN
112            /* Commented this portion of the code */
113            /* When same lab exists in the formula table we suffix the lab name */
114            /* with _LAB after the formula_no */
115             OPEN Cur_formula_trans_exists(lab_rec.formula_id);
116             FETCH Cur_formula_trans_exists INTO l_count;
117             CLOSE Cur_formula_trans_exists;
118             IF (l_count = 0) THEN
119               lab_rec.formula_no := lab_rec.formula_no||'_LAB';
120               X_formula_vers := lab_rec.formula_vers;
121               X_FLAG := 'TRUE';
122             END IF;
123           ELSE
124               X_formula_vers := lab_rec.formula_vers;
125               X_FLAG := 'TRUE' ;
126           END IF ;
127          CLOSE Cur_check_formula_exists;
128 
129 
130           IF   X_FLAG = 'TRUE'  THEN
131 
132 
133         select fnd_profile.value_specific('GEMMS_DEFAULT_ORGN',lab_rec.created_by)
134         INTO l_orgn_code
135         FROM sys.dual;
136 
137  	/* Step 3 : To insert  data ino the fm_form_mst_b and fm_form_mst_vl
138                                table  */
139         /* changed x_formula_vers to lab_rec.formula_vers */
140 
141         /* BEGIN BUG#3217071*/
142         IF lab_rec.inactive_ind = 1 THEN
143           X_STATUS := 1000;
144         ELSIF lab_rec.inactive_ind = 0 THEN
145           X_STATUS := 400;
146         END IF;
147         /* END BUG#3217071*/
148 
149         INSERT INTO FM_FORM_MST_B (formula_id, orgn_code, total_input_qty, total_output_qty, formula_status,
150                                    formula_uom, owner_id, attribute_category, text_code, delete_mark,
151                                    formula_no, formula_vers, formula_type, attribute1, attribute2, attribute3,
152                                    attribute4, attribute5, attribute6, attribute7, attribute8, attribute9,
153                                    attribute10, attribute11, attribute12, attribute13, attribute14, attribute15,
154                                    attribute16, attribute17, attribute18, attribute19, attribute20, attribute21,
155                                    attribute22, attribute23, attribute24, attribute25, attribute26, attribute27,
156                                    attribute28, attribute29, attribute30, inactive_ind, scale_type, formula_class,
157                                    fmcontrol_class, creation_date, created_by, last_update_date, last_updated_by,
158                                    last_update_login)
159         VALUES                    (xFormula_Id, l_orgn_code, 0, 0, X_status,
160                                    NULL, lab_rec.created_by, lab_rec.attribute_category, lab_rec.text_code, lab_rec.delete_mark,
161                                    lab_rec.formula_no, X_formula_vers, lab_rec.formula_type, lab_rec.attribute1, lab_rec.attribute2, lab_rec.attribute3,
162                                    lab_rec.attribute4, lab_rec.attribute5, lab_rec.attribute6, lab_rec.attribute7, lab_rec.attribute8, lab_rec.attribute9,
163                                    lab_rec.attribute10, lab_rec.attribute11, lab_rec.attribute12, lab_rec.attribute13, lab_rec.attribute14, lab_rec.attribute15,
164                                    lab_rec.attribute16, lab_rec.attribute17, lab_rec.attribute18, lab_rec.attribute19, lab_rec.attribute20, lab_rec.attribute21,
165                                    lab_rec.attribute22, lab_rec.attribute23, lab_rec.attribute24, lab_rec.attribute25, lab_rec.attribute26, lab_rec.attribute27,
166                                    lab_rec.attribute28, lab_rec.attribute29, lab_rec.attribute30, lab_rec.inactive_ind, lab_rec.scale_type, lab_rec.formula_class,
167                                    lab_rec.fmcontrol_class, lab_rec.creation_date, lab_rec.created_by, lab_rec.last_update_date, lab_rec.last_updated_by,
168                                    lab_rec.last_update_login);
169 
170          INSERT INTO FM_FORM_MST_TL (formula_id, formula_desc1, formula_desc2, language, source_lang,
171                                      created_by, creation_date, last_updated_by, last_update_date, last_update_login)
172          SELECT xFormula_Id, lab_rec.formula_desc1, lab_rec.formula_desc2, l.language_code, userenv('LANG'),
173                 lab_rec.created_by, lab_rec.creation_date, lab_rec.last_updated_by, lab_rec.last_update_date, lab_rec.last_update_login
174          FROM FND_LANGUAGES l
175          WHERE l.installed_flag IN ('I', 'B')
176          AND NOT EXISTS (SELECT NULL FROM FM_FORM_MST_TL T WHERE t.formula_id = xFormula_Id AND t.language = l.language_code);
177 
178 
179 
180          INSERT INTO GMD_LAB_FORMULA_ASSOC(old_formula_id,old_formula_no,old_formula_vers,
181  			              new_formula_id,new_formula_no,new_formula_vers
182                                      ,migrated)
183          VALUES(lab_rec.formula_id,lab_rec.formula_no,lab_rec.formula_vers,
184                                        xformula_id,lab_rec.formula_no,x_formula_vers,'YES');
185 
186             /* Step 4 : To migrate data ino the lab formula detail table  */
187 
188         For lab_detail_rec IN lab_detail(lab_rec.formula_id)
189         LOOP
190           OPen fm_formulaline_id ;
191           fetch fm_formulaline_id into Xformulaline_id ;
192           close fm_formulaline_id;
193 
194 
195           insert INTO FM_MATL_DTL (
196 
197        	 	FORMULALINE_ID ,
198   		FORMULA_ID           ,
199   		LINE_TYPE             ,
200   		LINE_NO                ,
201   		ITEM_ID                ,
202   		QTY                    ,
203   		ITEM_UM                ,
204   		RELEASE_TYPE           ,
205   		SCRAP_FACTOR           ,
206   		SCALE_TYPE             ,
207   		COST_ALLOC             ,
208   		PHANTOM_TYPE           ,
209   		REWORK_TYPE            ,
210   		TEXT_CODE              ,
211   		LAST_UPDATED_BY        ,
212   		CREATED_BY             ,
213   		LAST_UPDATE_DATE       ,
214   		CREATION_DATE          ,
215   		LAST_UPDATE_LOGIN      ,
216   		ATTRIBUTE1             ,
217   		ATTRIBUTE2             ,
218   		ATTRIBUTE3             ,
219   		ATTRIBUTE4             ,
220   		ATTRIBUTE5             ,
221   		ATTRIBUTE6             ,
222   		ATTRIBUTE7             ,
223   		ATTRIBUTE8             ,
224   		ATTRIBUTE9             ,
225   		ATTRIBUTE10            ,
226   		ATTRIBUTE11            ,
227   		ATTRIBUTE12            ,
228   		ATTRIBUTE13            ,
229   		ATTRIBUTE14            ,
230   		ATTRIBUTE15            ,
231   		ATTRIBUTE16            ,
232   		ATTRIBUTE17            ,
233   		ATTRIBUTE18            ,
234   		ATTRIBUTE19            ,
235   		ATTRIBUTE20            ,
236   		ATTRIBUTE21            ,
237   		ATTRIBUTE22            ,
238   		ATTRIBUTE23            ,
239   		ATTRIBUTE24            ,
240   		ATTRIBUTE25            ,
241   		ATTRIBUTE26            ,
242   		ATTRIBUTE27            ,
243   		ATTRIBUTE28            ,
244   		ATTRIBUTE29            ,
245   		ATTRIBUTE30            ,
246   		ATTRIBUTE_CATEGORY     ,
247   		TPFORMULA_ID           )
248       	values (
249     		Xformulaline_id ,
250    	 	XFORMULA_ID           ,
251   		lab_detail_rec.LINE_TYPE             ,
252   		lab_detail_rec.LINE_NO                ,
253   		lab_detail_rec.ITEM_ID                ,
254   		lab_detail_rec.QTY                    ,
255   		lab_detail_rec.ITEM_UM                ,
256   		lab_detail_rec.RELEASE_TYPE           ,
257   		lab_detail_rec.SCRAP_FACTOR           ,
258   		lab_detail_rec.SCALE_TYPE             ,
259   		lab_detail_rec.COST_ALLOC             ,
260   		0           ,
261   		0         ,
262   		lab_detail_rec.TEXT_CODE              ,
263   		lab_detail_rec.LAST_UPDATED_BY        ,
264   		lab_detail_rec.CREATED_BY             ,
265   		lab_detail_rec.LAST_UPDATE_DATE       ,
266   		lab_detail_rec.CREATION_DATE          ,
267   		lab_detail_rec.LAST_UPDATE_LOGIN      ,
268   		lab_detail_rec.ATTRIBUTE1             ,
269   		lab_detail_rec.ATTRIBUTE2             ,
270   		lab_detail_rec.ATTRIBUTE3             ,
271   		lab_detail_rec.ATTRIBUTE4             ,
272   		lab_detail_rec.ATTRIBUTE5             ,
273   		lab_detail_rec.ATTRIBUTE6             ,
274   		lab_detail_rec.ATTRIBUTE7             ,
275   		lab_detail_rec.ATTRIBUTE8             ,
276   		lab_detail_rec.ATTRIBUTE9             ,
277   		lab_detail_rec.ATTRIBUTE10            ,
278   		lab_detail_rec.ATTRIBUTE11            ,
279   		lab_detail_rec.ATTRIBUTE12            ,
280   		lab_detail_rec.ATTRIBUTE13            ,
281   		lab_detail_rec.ATTRIBUTE14            ,
282   		lab_detail_rec.ATTRIBUTE15            ,
283   		lab_detail_rec.ATTRIBUTE16            ,
284   		lab_detail_rec.ATTRIBUTE17            ,
285   		lab_detail_rec.ATTRIBUTE18            ,
286   		lab_detail_rec.ATTRIBUTE19            ,
287   		lab_detail_rec.ATTRIBUTE20            ,
288   		lab_detail_rec.ATTRIBUTE21            ,
289   		lab_detail_rec.ATTRIBUTE22            ,
290   		lab_detail_rec.ATTRIBUTE23            ,
291   		lab_detail_rec.ATTRIBUTE24            ,
292   		lab_detail_rec.ATTRIBUTE25            ,
293   		lab_detail_rec.ATTRIBUTE26            ,
294   		lab_detail_rec.ATTRIBUTE27            ,
295   		lab_detail_rec.ATTRIBUTE28            ,
296   		lab_detail_rec.ATTRIBUTE29            ,
297   		lab_detail_rec.ATTRIBUTE30            ,
298   		lab_detail_rec.ATTRIBUTE_CATEGORY     ,
299   		lab_detail_rec.TPFORMULA_ID           );
300 
301         end loop;
302   	END IF ;
303 
304 
305      EXCEPTION
306   	  WHEN OTHERS THEN
307   		error_msg := SQLERRM;
308 		INSERT INTO GMD_MIGRATION (	migration_id,
309 	   						source_table,
310 	   						target_table,
311 	   						source_id 	,
312 	   						target_id 	,
313 	   						message_text )
314 	   				SELECT 	GMD_REQUEST_ID_S.nextval,
315 	   						'LM_FORM_MST AND LM_FORM_DTL',
316 	   						'FM_FORM_MST AND MF_MATL_DTL',
317 	   						lab_rec.formula_id,
318 	   						Xformula_id,
319 	   						error_msg
320 	   				FROM 	DUAL;
321 
322 
323       END;
324 
325     END LOOP;
326 
327 
328 
329             /*get all the formula with tpformula_id */
330       FOR lab_rec IN Cur_tp_formula LOOP
331       BEGIN
332         SAVEPOINT header;
333 
334         /* Step 1 : To migrate data ino the lab formula Header table  */
335 
336         OPen fm_formula_id ;
337         fetch fm_formula_id into Xformula_id ;
338         close fm_formula_id;
339 
340            /* Step 2 : To check for those formula no and version which
341                          exists in the formula Header table. If a formula with same
342                          formula no and version exists in the formula header table,
343                          increase the version of formula to be inserted. */
344  X_flag := 'FALSE' ;
345 
346           OPEN Cur_check_formula_exists (lab_rec.formula_no, lab_rec.formula_vers);
347           FETCH Cur_check_formula_exists INTO X_formula_vers, x_formula_status;
348           IF Cur_check_formula_exists%FOUND THEN
349             OPEN Cur_formula_trans_exists(lab_rec.formula_id);
350             FETCH Cur_formula_trans_exists INTO l_count;
351             CLOSE Cur_formula_trans_exists;
352             IF (l_count = 0) THEN
353               lab_rec.formula_no := lab_rec.formula_no||'_LAB';
354               X_formula_vers := lab_rec.formula_vers;
355               X_FLAG := 'TRUE';
356             END IF;
357           ELSE
358               X_formula_vers := lab_rec.formula_vers;
359               X_FLAG := 'TRUE' ;
360           END IF ;
361          CLOSE Cur_check_formula_exists;
362           IF   X_FLAG = 'TRUE'  THEN
363 
364 
365         select fnd_profile.value_specific('GEMMS_DEFAULT_ORGN',lab_rec.created_by)
366         INTO l_orgn_code
367         FROM sys.dual;
368 
369           /* Step 3 : To insert  data ino the fm_form_mst_b and fm_form_mst_vl
370                                table  */
371         INSERT INTO GMD_LAB_FORMULA_ASSOC(old_formula_id,old_formula_no,old_formula_vers,
372  			              new_formula_id,new_formula_no,new_formula_vers
373                                      ,migrated)
374                                VALUES(lab_rec.formula_id,lab_rec.formula_no,lab_rec.formula_vers,
375                                        xformula_id,lab_rec.formula_no,x_formula_vers,'YES');
376 
377         /* BEGIN BUG#3217071*/
378         IF lab_rec.inactive_ind = 1 THEN
379           X_STATUS := 1000;
380         ELSIF lab_rec.inactive_ind = 0 THEN
381           X_STATUS := 400;
382         END IF;
383         /* END BUG#3217071*/
384 
385         INSERT INTO FM_FORM_MST_B (formula_id, orgn_code, total_input_qty, total_output_qty, formula_status,
386                                    formula_uom, owner_id, attribute_category, text_code, delete_mark,
387                                    formula_no, formula_vers, formula_type, attribute1, attribute2, attribute3,
388                                    attribute4, attribute5, attribute6, attribute7, attribute8, attribute9,
389                                    attribute10, attribute11, attribute12, attribute13, attribute14, attribute15,
390                                    attribute16, attribute17, attribute18, attribute19, attribute20, attribute21,
391                                    attribute22, attribute23, attribute24, attribute25, attribute26, attribute27,
392                                    attribute28, attribute29, attribute30, inactive_ind, scale_type, formula_class,
393                                    fmcontrol_class, creation_date, created_by, last_update_date, last_updated_by,
394                                    last_update_login)
395         VALUES                    (xFormula_Id, l_orgn_code, 0, 0, X_status,
396                                    NULL, lab_rec.created_by, lab_rec.attribute_category, lab_rec.text_code, lab_rec.delete_mark,
397                                    lab_rec.formula_no, X_formula_vers, lab_rec.formula_type, lab_rec.attribute1, lab_rec.attribute2, lab_rec.attribute3,
398                                    lab_rec.attribute4, lab_rec.attribute5, lab_rec.attribute6, lab_rec.attribute7, lab_rec.attribute8, lab_rec.attribute9,
399                                    lab_rec.attribute10, lab_rec.attribute11, lab_rec.attribute12, lab_rec.attribute13, lab_rec.attribute14, lab_rec.attribute15,
400                                    lab_rec.attribute16, lab_rec.attribute17, lab_rec.attribute18, lab_rec.attribute19, lab_rec.attribute20, lab_rec.attribute21,
401                                    lab_rec.attribute22, lab_rec.attribute23, lab_rec.attribute24, lab_rec.attribute25, lab_rec.attribute26, lab_rec.attribute27,
402                                    lab_rec.attribute28, lab_rec.attribute29, lab_rec.attribute30, lab_rec.inactive_ind, lab_rec.scale_type, lab_rec.formula_class,
403                                    lab_rec.fmcontrol_class, lab_rec.creation_date, lab_rec.created_by, lab_rec.last_update_date, lab_rec.last_updated_by,
404                                    lab_rec.last_update_login);
405 
406          INSERT INTO FM_FORM_MST_TL (formula_id, formula_desc1, formula_desc2, language, source_lang,
407                                      created_by, creation_date, last_updated_by, last_update_date, last_update_login)
408          SELECT xFormula_Id, lab_rec.formula_desc1, lab_rec.formula_desc2, l.language_code, userenv('LANG'),
409                 lab_rec.created_by, lab_rec.creation_date, lab_rec.last_updated_by, lab_rec.last_update_date, lab_rec.last_update_login
410          FROM FND_LANGUAGES l
411          WHERE l.installed_flag IN ('I', 'B')
412          AND NOT EXISTS (SELECT NULL FROM FM_FORM_MST_TL T WHERE t.formula_id = xFormula_Id AND t.language = l.language_code);
413 
414 
415         For lab_detail_rec IN lab_detail(lab_rec.formula_id)
416         LOOP
417         /* Step 4 : To migrate data ino the lab formula detail table  */
418 
419           OPen fm_formulaline_id ;
420           fetch fm_formulaline_id into Xformulaline_id ;
421           close fm_formulaline_id;
422 
423           /* Step 4 : To get the new tpformula_id for a given tpformula_id  */
424 
425           IF NVL(lab_detail_rec.tpformula_id, 0) > 0 THEN
426             OPEN Cur_get_tp_id (lab_detail_rec.tpformula_id);
427             FETCH Cur_get_tp_id INTO X_tp_formula_id;
428             CLOSE Cur_get_tp_id;
429           ELSE
430             X_tp_formula_id := NULL;
431           END IF;
432             INSERT INTO GMD_LAB_FORMULA_ASSOC(old_formula_id,old_formula_no,old_formula_vers,
433  			              new_formula_id,new_formula_no,new_formula_vers
434                                      ,migrated,old_tp_formula_id,new_tp_formula_id)
435                                VALUES(lab_rec.formula_id,lab_rec.formula_no,lab_rec.formula_vers,
436                                        xformula_id,lab_rec.formula_no,x_formula_vers,'YES',
437                                        lab_detail_rec.tpformula_id,X_tp_formula_id);
438 
439           insert INTO FM_MATL_DTL (
440 
441        	 	FORMULALINE_ID ,
442   		FORMULA_ID           ,
443   		LINE_TYPE             ,
444   		LINE_NO                ,
445   		ITEM_ID                ,
446   		QTY                    ,
447   		ITEM_UM                ,
448   		RELEASE_TYPE           ,
449   		SCRAP_FACTOR           ,
450   		SCALE_TYPE             ,
451   		COST_ALLOC             ,
452   		PHANTOM_TYPE           ,
453   		REWORK_TYPE            ,
454   		TEXT_CODE              ,
455   		LAST_UPDATED_BY        ,
456   		CREATED_BY             ,
457   		LAST_UPDATE_DATE       ,
458   		CREATION_DATE          ,
459   		LAST_UPDATE_LOGIN      ,
460   		ATTRIBUTE1             ,
461   		ATTRIBUTE2             ,
462   		ATTRIBUTE3             ,
463   		ATTRIBUTE4             ,
464   		ATTRIBUTE5             ,
465   		ATTRIBUTE6             ,
466   		ATTRIBUTE7             ,
467   		ATTRIBUTE8             ,
468   		ATTRIBUTE9             ,
469   		ATTRIBUTE10            ,
470   		ATTRIBUTE11            ,
471   		ATTRIBUTE12            ,
472   		ATTRIBUTE13            ,
473   		ATTRIBUTE14            ,
474   		ATTRIBUTE15            ,
475   		ATTRIBUTE16            ,
476   		ATTRIBUTE17            ,
477   		ATTRIBUTE18            ,
478   		ATTRIBUTE19            ,
479   		ATTRIBUTE20            ,
480   		ATTRIBUTE21            ,
481   		ATTRIBUTE22            ,
482   		ATTRIBUTE23            ,
483   		ATTRIBUTE24            ,
484   		ATTRIBUTE25            ,
485   		ATTRIBUTE26            ,
486   		ATTRIBUTE27            ,
487   		ATTRIBUTE28            ,
488   		ATTRIBUTE29            ,
489   		ATTRIBUTE30            ,
490   		ATTRIBUTE_CATEGORY     ,
491   		TPFORMULA_ID           )
492       	values (
493 
494     		Xformulaline_id ,
495    	 	XFORMULA_ID           ,
496   		lab_detail_rec.LINE_TYPE             ,
497   		lab_detail_rec.LINE_NO                ,
498   		lab_detail_rec.ITEM_ID                ,
499   		lab_detail_rec.QTY                    ,
500   		lab_detail_rec.ITEM_UM                ,
501   		lab_detail_rec.RELEASE_TYPE           ,
502   		lab_detail_rec.SCRAP_FACTOR           ,
503   		lab_detail_rec.SCALE_TYPE             ,
504   		lab_detail_rec.COST_ALLOC             ,
505   		0           ,
506   		0         ,
507   		lab_detail_rec.TEXT_CODE              ,
508   		lab_detail_rec.LAST_UPDATED_BY        ,
509   		lab_detail_rec.CREATED_BY             ,
510   		lab_detail_rec.LAST_UPDATE_DATE       ,
511   		lab_detail_rec.CREATION_DATE          ,
512   		lab_detail_rec.LAST_UPDATE_LOGIN      ,
513   		lab_detail_rec.ATTRIBUTE1             ,
514   		lab_detail_rec.ATTRIBUTE2             ,
515   		lab_detail_rec.ATTRIBUTE3             ,
516   		lab_detail_rec.ATTRIBUTE4             ,
517   		lab_detail_rec.ATTRIBUTE5             ,
518   		lab_detail_rec.ATTRIBUTE6             ,
519   		lab_detail_rec.ATTRIBUTE7             ,
520   		lab_detail_rec.ATTRIBUTE8             ,
521   		lab_detail_rec.ATTRIBUTE9             ,
522   		lab_detail_rec.ATTRIBUTE10            ,
523   		lab_detail_rec.ATTRIBUTE11            ,
524   		lab_detail_rec.ATTRIBUTE12            ,
525   		lab_detail_rec.ATTRIBUTE13            ,
526   		lab_detail_rec.ATTRIBUTE14            ,
527   		lab_detail_rec.ATTRIBUTE15            ,
528   		lab_detail_rec.ATTRIBUTE16            ,
529   		lab_detail_rec.ATTRIBUTE17            ,
530   		lab_detail_rec.ATTRIBUTE18            ,
531   		lab_detail_rec.ATTRIBUTE19            ,
532   		lab_detail_rec.ATTRIBUTE20            ,
533   		lab_detail_rec.ATTRIBUTE21            ,
534   		lab_detail_rec.ATTRIBUTE22            ,
535   		lab_detail_rec.ATTRIBUTE23            ,
536   		lab_detail_rec.ATTRIBUTE24            ,
537   		lab_detail_rec.ATTRIBUTE25            ,
538   		lab_detail_rec.ATTRIBUTE26            ,
539   		lab_detail_rec.ATTRIBUTE27            ,
540   		lab_detail_rec.ATTRIBUTE28            ,
541   		lab_detail_rec.ATTRIBUTE29            ,
542   		lab_detail_rec.ATTRIBUTE30            ,
543   		lab_detail_rec.ATTRIBUTE_CATEGORY     ,
544   		X_tp_formula_id           );
545 
546         end loop;
547 
548 END IF ;
549 
550 
551      EXCEPTION
552   	  WHEN OTHERS THEN
553   		error_msg := SQLERRM;
554 		INSERT INTO GMD_MIGRATION (	migration_id,
555 	   						source_table,
556 	   						target_table,
557 	   						source_id 	,
558 	   						target_id 	,
559 	   						message_text )
560 	   				SELECT 	GMD_REQUEST_ID_S.nextval,
561 	   						'LM_FORM_MST AND LM_FORM_DTL',
562 	   						'FM_FORM_MST AND MF_MATL_DTL',
563 	   						lab_rec.formula_id,
564 	   						Xformula_id,
565 	   						error_msg
566 	   				FROM 	DUAL;
567 
568 
569       END;
570 
571     END LOOP;
572 
573 
574 
575 end insert_lab_formula;
576 
577 END GMD_LAB_MIGRATION;