39: GLSTFL_fatal_err EXCEPTION;
40:
41: BEGIN
42:
43: GL_MESSAGE.Func_Ent (func_name =>
44: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier');
45:
46: -- The flow of the Flatten_Seg_Val_Hier routine is as follows
47: -- First cleans all records with status 'I'and updates records with
56:
57: -- Clean Norm Table before processing
58:
59: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
60: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
61: token_num => 2,
62: t1 =>'ROUTINE',
63: v1 =>
64: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
77: WHERE status_code = l_status_flag
78: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
79:
80: l_no_rows := NVL(SQL%ROWCOUNT,0);
81: GL_MESSAGE.Write_Log(msg_name =>'SHRD0119',
82: token_num =>2,
83: t1 =>'NUM',
84: v1 => TO_CHAR(l_no_rows),
85: t2 =>'TABLE',
85: t2 =>'TABLE',
86: v2 =>'GL_SEG_VAL_NORM_HIERARCHY');
87:
88: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
89: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
90: token_num => 2,
91: t1 =>'ROUTINE',
92: v1 =>
93: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
102: WHERE status_code ='D'
103: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
104:
105: l_no_rows := NVL(SQL%ROWCOUNT,0);
106: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
107: token_num =>2,
108: t1 =>'NUM',
109: v1 => TO_CHAR(l_no_rows),
110: t2 =>'TABLE',
113:
114: -- Clean Flattened table before processing
115:
116: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
117: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
118: token_num => 2,
119: t1 =>'ROUTINE',
120: v1 =>
121: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
133: WHERE status_code = l_status_flag
134: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
135:
136: l_no_rows := NVL(SQL%ROWCOUNT,0);
137: GL_MESSAGE.Write_Log(msg_name =>'SHRD0119',
138: token_num =>2,
139: t1 =>'NUM',
140: v1 => TO_CHAR(l_no_rows),
141: t2 =>'TABLE',
141: t2 =>'TABLE',
142: v2 =>'GL_SEG_VAL_HIERARCHIES');
143:
144: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
145: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
146: token_num => 2,
147: t1 =>'ROUTINE',
148: v1 =>
149: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
158: WHERE status_code ='D'
159: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
160:
161: l_no_rows := NVL(SQL%ROWCOUNT,0);
162: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
163: token_num =>2,
164: t1 =>'NUM',
165: v1 => TO_CHAR(l_no_rows),
166: t2 =>'TABLE',
222: AND ffv2.flex_value = glsvh.child_flex_value
223: AND ffv2.summary_flag <> glsvh.summary_flag);
224:
225: l_no_rows := NVL(SQL%ROWCOUNT,0);
226: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
227: token_num =>2,
228: t1 =>'NUM',
229: v1 =>TO_CHAR(l_no_rows),
230: t2 =>'TABLE',
259: Is_Seg_Hier_Changed := TRUE;
260: END IF;
261:
262: l_no_rows := NVL(SQL%ROWCOUNT,0);
263: GL_MESSAGE.Write_Log(msg_name =>'SHRD0117',
264: token_num =>2,
265: t1 =>'NUM',
266: v1 =>TO_CHAR(l_no_rows),
267: t2 =>'TABLE',
309: l_sql_stmt := LENGTH(sqlbuf);
310:
311:
312:
313: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
314: token_num => 3 ,
315: t1 =>'ROUTINE',
316: v1 =>
317: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
319: v2 =>'Value_Set_Id',
320: t3 =>'VALUE',
321: v3 => GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID);
322:
323: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
324: token_num => 3 ,
325: t1 =>'ROUTINE',
326: v1 =>
327: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
329: v2 =>'Table Name',
330: t3 =>'VALUE',
331: v3 => add_table);
332:
333: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
334: token_num => 3 ,
335: t1 =>'ROUTINE',
336: v1 =>
337: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
339: v2 =>'Column Name',
340: t3 =>'VALUE',
341: v3 => GL_FLATTEN_SETUP_DATA.GLSTFL_VS_COL_NAME);
342:
343: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
344: token_num => 3 ,
345: t1 =>'ROUTINE',
346: v1 =>
347: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
349: v2 =>'sqlbuf',
350: t3 =>'VALUE',
351: v3 => sqlbuf);
352:
353: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
354: token_num => 3 ,
355: t1 =>'ROUTINE',
356: v1 =>
357: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
359: v2 =>'Length of sql_stmt',
360: t3 =>'VALUE',
361: v3 =>l_sql_stmt);
362:
363: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
364: token_num => 2,
365: t1 =>'ROUTINE',
366: v1 =>
367: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()',
385:
386:
387: l_no_rows := NVL(SQL%ROWCOUNT,0);
388:
389: GL_MESSAGE.Write_Log(msg_name =>'SHRD0117',
390: token_num =>2,
391: t1 =>'NUM',
392: v1 =>TO_CHAR(l_no_rows),
393: t2 =>'TABLE',
404: RAISE GLSTFL_fatal_err;
405:
406: ELSIF (NOT l_Seg_Hier_Norm_Changed) THEN
407:
408: GL_MESSAGE.Write_Log(msg_name =>'FLAT0001',
409: token_num => 1,
410: t1 =>'ROUTINE_NAME',
411: v1 =>
412: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()');
417: RAISE GLSTFL_fatal_err;
418:
419: ELSIF (NOT l_Seg_Hier_Flat_Changed) THEN
420:
421: GL_MESSAGE.Write_Log(msg_name =>'FLAT0001',
422: token_num => 1,
423: t1 =>'ROUTINE_NAME',
424: v1 =>
425: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()');
433: END IF; -- Inner Fix_Flattened_table If Control block ends.
434:
435: END IF; -- Outer Fix_Norm_Table If control statement ends.
436:
437: GL_MESSAGE.Func_Succ(func_name =>
438: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier');
439:
440: RETURN TRUE;
441:
442: EXCEPTION
443:
444: WHEN GLSTFL_fatal_err THEN
445:
446: GL_MESSAGE.Write_Log(msg_name =>'FLAT0002',
447: token_num => 1,
448: t1 =>'ROUTINE_NAME',
449: v1 =>
450: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()');
448: t1 =>'ROUTINE_NAME',
449: v1 =>
450: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier()');
451:
452: GL_MESSAGE.Func_Fail(func_name =>
453: 'GL_FLATTEN_SEG_VAL_HIERARCHIE.Flatten_Seg_Val_Hier');
454:
455: FND_CONCURRENT.Af_Rollback; -- Rollback Point
456:
459: RETURN FALSE;
460:
461: WHEN OTHERS THEN
462:
463: GL_MESSAGE.Write_Log(msg_name =>'SHRD0203',
464: token_num =>2,
465: t1 =>'FUNCTION',
466: v1 =>
467: 'GL_FLATTEN_SEG_VAL_HIERARCHIE.Flatten_Seg_Val_Hier()',
467: 'GL_FLATTEN_SEG_VAL_HIERARCHIE.Flatten_Seg_Val_Hier()',
468: t2 =>'SQLERRMC',
469: v2 => SQLERRM);
470:
471: GL_MESSAGE.Func_Fail(func_name =>
472: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Flatten_Seg_Val_Hier');
473:
474: FND_CONCURRENT.Af_Rollback; -- Rollback Point
475:
504:
505:
506: BEGIN
507:
508: GL_MESSAGE.FUNC_ENT(func_name =>
509: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Norm_Table');
510:
511: -- The following check allows the program to continue processing
512: -- even there are no hierarchy changes occur in the case of
533: --Reset the number of rows variable.
534: l_no_rows := 0;
535:
536: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
537: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
538: token_num => 2,
539: t1 =>'ROUTINE',
540: v1 =>
541: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Norm_Table()',
583: IF (l_no_rows > 0) THEN
584: Is_Norm_Table_Changed := TRUE;
585: END IF;
586:
587: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
588: token_num =>2,
589: t1 =>'NUM',
590: v1 =>TO_CHAR(l_no_rows),
591: t2 =>'TABLE',
594:
595: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
596:
597:
598: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
599: token_num => 3 ,
600: t1 =>'ROUTINE',
601: v1 =>
602: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Norm_Table()',
604: v2 =>'Value_Set_Id',
605: t3 =>'VALUE',
606: v3 =>GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID);
607:
608: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
609: token_num => 2,
610: t1 =>'ROUTINE',
611: v1 =>
612: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Norm_Table()',
665: IF (l_no_rows > 0) THEN
666: Is_Norm_Table_Changed := TRUE;
667: END IF;
668:
669: GL_MESSAGE.Write_Log(msg_name =>'SHRD0117',
670: token_num => 2,
671: t1 =>'NUM',
672: v1 => TO_CHAR(l_no_rows),
673: t2 => 'TABLE',
672: v1 => TO_CHAR(l_no_rows),
673: t2 => 'TABLE',
674: v2 => 'GL_SEG_VAL_NORM_HIERARCHY');
675:
676: GL_MESSAGE.Func_Succ(func_name =>
677: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Norm_Table');
678:
679: FND_CONCURRENT.Af_Commit; --COMMIT point
680:
683: EXCEPTION
684:
685: WHEN OTHERS THEN
686:
687: GL_MESSAGE.Write_Log (msg_name =>'SHRD0102',
688: token_num => 1,
689: t1 =>'EMESSAGE',
690: v1 => SQLERRM);
691:
688: token_num => 1,
689: t1 =>'EMESSAGE',
690: v1 => SQLERRM);
691:
692: GL_MESSAGE.Func_Fail(func_name =>
693: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Norm_Table');
694:
695: FND_CONCURRENT.Af_Rollback; -- Rollback Point
696:
722: l_no_rows NUMBER :=0;
723:
724: BEGIN
725:
726: GL_MESSAGE.Func_Ent(func_name =>
727: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table');
728:
729: Is_Flattened_Tab_Changed := FALSE;
730:
764:
765: END IF;
766:
767: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
768: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
769: token_num =>2,
770: t1 =>'ROUTINE',
771: v1 =>
772: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table()',
776: ||' deleted parent in the'
777: ||' table GL_SEG_VAL_HIERARCHIES');
778: END IF;
779:
780: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
781: token_num => 2 ,
782: t1 =>'NUM',
783: v1 => TO_CHAR(l_no_rows),
784: t2 =>'TABLE',
788: -- contain any deleted parent child and its descendants
789: -- in GL_SEG_VAL_HIERARCHIES
790:
791: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
792: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
793: token_num =>2,
794: t1 =>'ROUTINE',
795: v1 =>
796: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table()',
836: Is_Flattened_Tab_Changed := TRUE;
837:
838: END IF;
839:
840: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
841: token_num => 2,
842: t1 =>'NUM',
843: v1 =>TO_CHAR(l_no_rows),
844: t2 =>'TABLE',
849: -- in a loop until no more changes occur.
850:
851: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
852:
853: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
854: token_num =>2,
855: t1 =>'ROUTINE',
856: v1 =>
857: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table()',
912: IF (l_no_rows > 0) THEN
913: Is_Flattened_Tab_Changed := TRUE;
914: END IF;
915:
916: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
917: token_num =>2,
918: t1 =>'NUM',
919: v1 =>TO_CHAR(l_no_rows),
920: t2 =>'TABLE',
923: -- Insert new self reocrds into GL_SEG_VAL_HIERARCHIES for each
924: -- new parent / changing being a child value to a parent value
925:
926: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
927: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
928: token_num =>2,
929: t1 =>'ROUTINE',
930: v1 =>
931: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table()',
969: IF (l_no_rows > 0) THEN
970: Is_Flattened_Tab_Changed := TRUE;
971: END IF;
972:
973: GL_MESSAGE.Write_Log(msg_name =>'SHRD0117',
974: token_num => 2,
975: t1 => 'NUM',
976: v1 => TO_CHAR(l_no_rows),
977: t2 =>'TABLE',
980:
981: -- The following SQL statement Insert all new detail child mappings
982:
983: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
984: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
985: token_num =>2,
986: t1 =>'ROUTINE',
987: v1 =>
988: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table()',
1036: IF (l_no_rows > 0) THEN
1037: Is_Flattened_Tab_Changed := TRUE;
1038: END IF;
1039:
1040: GL_MESSAGE.Write_Log(msg_name =>'SHRD0117',
1041: token_num => 2,
1042: t1 => 'NUM',
1043: v1 => TO_CHAR(l_no_rows),
1044: t2 => 'TABLE',
1047: -- The following SQL statement insert all new parent-child mappings
1048: -- for all levels in the hierarchy into the table GL_SEG_VAL_HIERARCHIES
1049:
1050: IF (GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
1051: GL_MESSAGE.Write_Log(msg_name =>'SHRD0180',
1052: token_num =>2,
1053: t1 =>'ROUTINE',
1054: v1 =>
1055: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattened_Table()',
1120: IF (l_no_rows > 0) THEN
1121: Is_Flattened_Tab_Changed := TRUE;
1122: END IF;
1123:
1124: GL_MESSAGE.Write_Log(msg_name =>'SHRD0117',
1125: token_num => 2,
1126: t1 =>'NUM',
1127: v1 =>TO_CHAR(l_no_rows),
1128: t2 =>'TABLE',
1127: v1 =>TO_CHAR(l_no_rows),
1128: t2 =>'TABLE',
1129: v2 => 'GL_SEG_VAL_HIERARCHIES');
1130:
1131: GL_MESSAGE.Func_Succ(func_name =>
1132: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flattend_Table');
1133:
1134: RETURN TRUE;
1135:
1135:
1136: EXCEPTION
1137:
1138: WHEN OTHERS THEN
1139: GL_MESSAGE.Write_Log (msg_name =>'SHRD0102',
1140: token_num => 1,
1141: t1 =>'EMESSAGE',
1142: v1 => SQLERRM);
1143:
1140: token_num => 1,
1141: t1 =>'EMESSAGE',
1142: v1 => SQLERRM);
1143:
1144: GL_MESSAGE.Func_Fail(func_name =>
1145: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Fix_Flatten_Table');
1146:
1147: FND_CONCURRENT.Af_Rollback; -- ROLLBACK Ponit
1148:
1169: l_no_rows NUMBER :=0;
1170: l_status VARCHAR2(1);
1171:
1172: BEGIN
1173: GL_MESSAGE.Func_Ent(func_name =>
1174: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Clean_Up');
1175:
1176: IF(GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
1177:
1174: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Clean_Up');
1175:
1176: IF(GL_FLATTEN_SETUP_DATA.GLSTFL_Debug) THEN
1177:
1178: GL_MESSAGE.Write_Log(msg_name =>'SHRD0181',
1179: token_num => 3,
1180: t1 => 'ROUTINE',
1181: v1 =>
1182: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Clean_Up',
1193: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
1194:
1195: l_no_rows := NVL(SQL%ROWCOUNT,0);
1196:
1197: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
1198: token_num =>2,
1199: t1 =>'NUM',
1200: v1 =>TO_CHAR(l_no_rows),
1201: t2 =>'TABLE',
1207: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
1208:
1209: l_no_rows := NVL(SQL%ROWCOUNT,0);
1210:
1211: GL_MESSAGE.Write_Log(msg_name =>'SHRD0118',
1212: token_num =>2,
1213: t1 =>'NUM',
1214: v1 =>TO_CHAR(l_no_rows),
1215: t2 => 'TABLE',
1223: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
1224:
1225: l_no_rows := NVL(SQL%ROWCOUNT,0);
1226:
1227: GL_MESSAGE.Write_Log(msg_name =>'SHRD0119',
1228: token_num =>2,
1229: t1 =>'NUM',
1230: v1 =>TO_CHAR(l_no_rows),
1231: t2 =>'TABLE',
1235: WHERE status_code= l_status
1236: AND flex_value_set_id = GL_FLATTEN_SETUP_DATA.GLSTFL_VS_ID;
1237: l_no_rows := NVL(SQL%ROWCOUNT,0);
1238:
1239: GL_MESSAGE.Write_Log(msg_name =>'SHRD0119',
1240: token_num => 2,
1241: t1 => 'NUM',
1242: v1 => TO_CHAR(l_no_rows),
1243: t2 =>'TABLE',
1242: v1 => TO_CHAR(l_no_rows),
1243: t2 =>'TABLE',
1244: v2 => 'GL_SEG_VAL_HIERARCHIES');
1245:
1246: GL_MESSAGE.Func_Succ(func_name =>
1247: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Clean_Up');
1248:
1249: RETURN TRUE;
1250:
1251: EXCEPTION
1252:
1253: WHEN OTHERS THEN
1254:
1255: GL_MESSAGE.Write_Log(msg_name =>'SHRD0102',
1256: token_num => 1,
1257: t1 =>'EMESSAGE',
1258: v1 => SQLERRM);
1259:
1258: v1 => SQLERRM);
1259:
1260: FND_CONCURRENT.Af_Rollback; -- ROLLBACK point
1261:
1262: GL_MESSAGE.Func_Fail(func_name =>
1263: 'GL_FLATTEN_SEG_VAL_HIERARCHIES.Clean_Up');
1264:
1265: RETURN FALSE;
1266: