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