1: PACKAGE BODY FII_UDD1_MAINTAIN_PKG AS
2: /* $Header: FIIU1CMB.pls 120.1 2005/10/30 05:05:38 appldev noship $ */
3:
4:
5: G_MASTER_VALUE_SET_ID NUMBER(15) := NULL;
145: -- FII_UTIL.initialize will get profile options FII_DEBUG_MODE
146: -- and BIS_DEBUG_LOG_DIRECTORY and set up the directory where
147: -- the log files and output files are written to
148: ----------------------------------------------------------------
149: FII_UTIL.initialize('FII_UDD1_MAINTAIN_PKG.log',
150: 'FII_UDD1_MAINTAIN_PKG.out',l_dir,'FII_UDD1_MAINTAIN_PKG');
151:
152: -- --------------------------------------------------------
153: -- Check source ledger setup for DBI
146: -- and BIS_DEBUG_LOG_DIRECTORY and set up the directory where
147: -- the log files and output files are written to
148: ----------------------------------------------------------------
149: FII_UTIL.initialize('FII_UDD1_MAINTAIN_PKG.log',
150: 'FII_UDD1_MAINTAIN_PKG.out',l_dir,'FII_UDD1_MAINTAIN_PKG');
151:
152: -- --------------------------------------------------------
153: -- Check source ledger setup for DBI
154: -- --------------------------------------------------------
311: --Let the main program handle this
312: raise;
313:
314: When UDIM1_fatal_err then
315: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Initialize : '|| 'User defined error');
316: FND_CONCURRENT.Af_Rollback;
317: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Initialize');
318: raise;
319:
313:
314: When UDIM1_fatal_err then
315: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Initialize : '|| 'User defined error');
316: FND_CONCURRENT.Af_Rollback;
317: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Initialize');
318: raise;
319:
320: When others then
321: FII_UTIL.Write_Log ('Unexpected error when calling Initialize...');
350:
351: BEGIN
352:
353: IF (FIIDIM_Debug) THEN
354: FII_MESSAGE.Func_Ent ('FII_UDD1_MAINTAIN_PKG.Get_NORM_HIERARCHY_TMP');
355: END IF;
356:
357: --First, insert records for the master value set
358: g_phase := 'insert records for the master value set';
451: (ownname => g_schema_name,
452: tabname => 'FII_DIM_NORM_HIER_GT');
453:
454: IF (FIIDIM_Debug) THEN
455: FII_MESSAGE.Func_Succ ('FII_UDD1_MAINTAIN_PKG.Get_NORM_HIERARCHY_TMP');
456: END IF;
457:
458: Exception
459:
457:
458: Exception
459:
460: When UDIM1_fatal_err then
461: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Get_NORM_HIERARCHY_TMP: '||
462:
463:
464: 'User defined error');
465: FND_CONCURRENT.Af_Rollback;
462:
463:
464: 'User defined error');
465: FND_CONCURRENT.Af_Rollback;
466: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Get_NORM_HIERARCHY_TMP');
467: raise;
468:
469: When others then
470: FII_UTIL.Write_Log ('Unexpected error when calling Get_NORM_HIERARCHY_TMP.');
512:
513: BEGIN
514:
515: IF (FIIDIM_Debug) THEN
516: FII_MESSAGE.Func_Ent ('FII_UDD1_MAINTAIN_PKG.Detect_Diamond_Shape');
517: END IF;
518:
519: -- check whole TMP hierarhy table: if there is a diamond
520: -- report and raise an exception
555:
556: END LOOP;
557:
558: IF (FIIDIM_Debug) THEN
559: FII_MESSAGE.Func_Succ ('FII_UDD1_MAINTAIN_PKG.Detect_Diamond_Shape');
560: END IF;
561: IF l_count > 0 THEN
562: RAISE UDIM1_MULT_PAR_err;
563: END IF;
564:
565: Exception
566:
567: When UDIM1_MULT_PAR_err then
568: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Detect_Diamond_Shape: '||
569: 'diamond shape detected!');
570: RAISE;
571:
572: When others then
679: EXCEPTION
680: WHEN NO_DATA_FOUND Then
681: FII_UTIL.Write_Log ('Insert Immediate child: No Data Found');
682: FII_MESSAGE.Func_Fail
683: (func_name => 'FII_UDD1_MAINTAIN_PKG.Insert_Imm_Child_Nodes');
684: RAISE;
685:
686: WHEN OTHERS Then
687: FII_UTIL.Write_Log (substr(SQLERRM,1,180));
685:
686: WHEN OTHERS Then
687: FII_UTIL.Write_Log (substr(SQLERRM,1,180));
688: FII_MESSAGE.Func_Fail
689: (func_name => 'FII_UDD1_MAINTAIN_PKG.INSERT_IMM_CHILD_NODES');
690: RAISE;
691:
692: END INSERT_IMM_CHILD_NODES;
693:
707:
708: BEGIN
709:
710: IF (FIIDIM_Debug) THEN
711: FII_MESSAGE.Func_Ent(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
712: 'Flatten_UD1_Dim_Hier');
713: END IF;
714: g_phase := 'Truncate table FII_UDD1_HIER_GT';
715: FII_UTIL.truncate_table ('FII_UDD1_HIER_GT', 'FII', g_retcode);
910: -- for the full hierarchy since it's not used anywhere
911: ----------------------------------------------------------------------
912:
913: IF (FIIDIM_Debug) THEN
914: FII_MESSAGE.Func_Succ(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
915: 'Flatten_UD1_Dim_Hier');
916: END IF;
917:
918: EXCEPTION
918: EXCEPTION
919:
920: WHEN NO_DATA_FOUND THEN
921: FII_UTIL.Write_Log ('Flatten_UD1_Dim_Hier: No Data Found');
922: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
923: 'Flatten_UD1_Dim_Hier');
924: raise;
925:
926: WhEN UDIM1_MULT_PAR_err THEN
925:
926: WhEN UDIM1_MULT_PAR_err THEN
927: FII_UTIL.Write_Log ('Flatten_UD1_Dim_Hier: Diamond Shape Detected');
928: FII_MESSAGE.Func_Fail (func_name =>
929: 'FII_UDD1_MAINTAIN_PKG.Flatten_UD1_Dim_Hier');
930: raise;
931:
932: WHEN OTHERS THEN
933: FII_UTIL.Write_Log ('Flatten_UD1_Dim_Hier: '|| substr(sqlerrm,1,180));
930: raise;
931:
932: WHEN OTHERS THEN
933: FII_UTIL.Write_Log ('Flatten_UD1_Dim_Hier: '|| substr(sqlerrm,1,180));
934: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
935: 'Flatten_UD1_Dim_Hier');
936: FII_UTIL.Write_Log ( 'G_PHASE: ' || G_PHASE);
937: raise;
938:
946:
947: Begin
948:
949: IF (FIIDIM_Debug) THEN
950: FII_MESSAGE.Func_Ent(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
951: 'Get_UD1_Mapping_GT');
952: END IF;
953:
954: --First, populate FII_FIN_CAT_MAPPINGS_GT with the truncated portion
1002: (ownname => g_schema_name,
1003: tabname => 'FII_UDD1_MAPPING_GT');
1004:
1005: IF (FIIDIM_Debug) THEN
1006: FII_MESSAGE.Func_Succ(func_name => 'FII_UDD1_MAINTAIN_PKG.Get_UD1_Mapping_GT');
1007: END IF;
1008:
1009: EXCEPTION
1010:
1010:
1011: WHEN OTHERS THEN
1012: FII_UTIL.Write_Log ('Get_UD1_Mapping_GT -> phase: '|| g_phase);
1013: FII_UTIL.Write_Log ('Get_UD1_Mapping_GT: '|| substr(sqlerrm,1,180));
1014: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1015: 'Get_UD1_Mapping_GT');
1016: raise;
1017:
1018: END Get_UD1_Mapping_GT;
1025:
1026: Begin
1027:
1028: IF (FIIDIM_Debug) THEN
1029: FII_MESSAGE.Func_Ent(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1030: 'Get_Pruned_UD1_GT');
1031: END IF;
1032:
1033: --Delete from FII_UDD1_HIER_GT for child value set not equal to
1075: FII_UTIL.Write_Log('Updated ' || SQL%ROWCOUNT || ' rows in FII_UDD1_HIER_GT');
1076: END IF;
1077:
1078: IF (FIIDIM_Debug) THEN
1079: FII_MESSAGE.Func_Succ(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1080: 'Get_Pruned_UD1_GT');
1081: END IF;
1082: EXCEPTION
1083:
1083:
1084: WHEN OTHERS THEN
1085: FII_UTIL.Write_Log ('Get_Pruned_UD1_GT -> phase: '|| g_phase);
1086: FII_UTIL.Write_Log ('Get_Pruned_UD1_GT: '|| substr(sqlerrm,1,180));
1087: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1088: 'Get_Pruned_UD1_GT');
1089: raise;
1090:
1091: END Get_Pruned_UD1_GT;
1101:
1102: Begin
1103:
1104: IF (FIIDIM_Debug) THEN
1105: FII_MESSAGE.Func_Ent(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1106: 'Handle_Unenabled_DIM');
1107: END IF;
1108: -- Bug 4147558.
1109: g_phase := 'Check if the dimension was already disabled';
1219: commit;
1220: END IF;
1221:
1222: IF (FIIDIM_Debug) THEN
1223: FII_MESSAGE.Func_Succ(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1224: 'Handle_Unenabled_DIM');
1225: END IF;
1226: EXCEPTION
1227:
1226: EXCEPTION
1227:
1228: WHEN OTHERS THEN
1229: FII_UTIL.Write_Log ('Handle_Unenabled_DIM: '|| substr(sqlerrm,1,180));
1230: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.'||
1231: 'Handle_Unenabled_DIM');
1232: raise;
1233:
1234: END Handle_Unenabled_DIM;
1244:
1245: BEGIN
1246:
1247: IF (FIIDIM_Debug) THEN
1248: FII_MESSAGE.Func_Ent(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1249: END IF;
1250:
1251: --First do the initialization
1252:
1442:
1443: FND_CONCURRENT.Af_Commit;
1444:
1445: IF (FIIDIM_Debug) THEN
1446: FII_MESSAGE.Func_Succ(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1447: END IF;
1448:
1449: -- Exception handling
1450:
1451: EXCEPTION
1452:
1453: WHEN UDIM1_fatal_err THEN
1454:
1455: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Init_Load: '||
1456: 'User defined error');
1457:
1458: FND_CONCURRENT.Af_Rollback;
1459: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1455: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Init_Load: '||
1456: 'User defined error');
1457:
1458: FND_CONCURRENT.Af_Rollback;
1459: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1460: retcode := sqlcode;
1461: ret_val := FND_CONCURRENT.Set_Completion_Status
1462: (status => 'ERROR', message => substr(sqlerrm,1,180));
1463:
1461: ret_val := FND_CONCURRENT.Set_Completion_Status
1462: (status => 'ERROR', message => substr(sqlerrm,1,180));
1463:
1464: WHEN UDIM1_MULT_PAR_err THEN
1465: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Init_Load: '||
1466: 'Diamond Shape Detected');
1467:
1468: FND_CONCURRENT.Af_Rollback;
1469: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1465: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Init_Load: '||
1466: 'Diamond Shape Detected');
1467:
1468: FND_CONCURRENT.Af_Rollback;
1469: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1470: retcode := sqlcode;
1471: ret_val := FND_CONCURRENT.Set_Completion_Status
1472: (status => 'ERROR', message => substr(sqlerrm,1,180));
1473:
1482:
1483: WHEN OTHERS THEN
1484: FII_UTIL.Write_Log ('Init_Load -> phase: '|| g_phase);
1485: FII_UTIL.Write_Log (
1486: 'Other error in FII_UDD1_MAINTAIN_PKG.Init_Load: ' || substr(sqlerrm,1,180));
1487:
1488:
1489: FND_CONCURRENT.Af_Rollback;
1490: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1486: 'Other error in FII_UDD1_MAINTAIN_PKG.Init_Load: ' || substr(sqlerrm,1,180));
1487:
1488:
1489: FND_CONCURRENT.Af_Rollback;
1490: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Init_Load');
1491: retcode := sqlcode;
1492: ret_val := FND_CONCURRENT.Set_Completion_Status
1493: (status => 'ERROR', message => substr(sqlerrm,1,180));
1494:
1506:
1507: BEGIN
1508:
1509: IF (FIIDIM_Debug) THEN
1510: FII_MESSAGE.Func_Ent(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1511: END IF;
1512:
1513: --First do the initialization
1514:
1772:
1773: FND_CONCURRENT.Af_Commit;
1774:
1775: IF (FIIDIM_Debug) THEN
1776: FII_MESSAGE.Func_Succ(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1777: END IF;
1778:
1779: -- Exception handling
1780:
1779: -- Exception handling
1780:
1781: EXCEPTION
1782: WHEN UDIM1_fatal_err THEN
1783: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Incre_Update'||
1784: 'User defined error');
1785:
1786: FND_CONCURRENT.Af_Rollback;
1787: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1783: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Incre_Update'||
1784: 'User defined error');
1785:
1786: FND_CONCURRENT.Af_Rollback;
1787: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1788: retcode := sqlcode;
1789: ret_val := FND_CONCURRENT.Set_Completion_Status
1790: (status => 'ERROR', message => substr(sqlerrm,1,180));
1791:
1789: ret_val := FND_CONCURRENT.Set_Completion_Status
1790: (status => 'ERROR', message => substr(sqlerrm,1,180));
1791:
1792: WHEN UDIM1_MULT_PAR_err THEN
1793: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Incre_Update: '||
1794: 'Diamond Shape Detected');
1795:
1796: FND_CONCURRENT.Af_Rollback;
1797: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1793: FII_UTIL.Write_Log ('FII_UDD1_MAINTAIN_PKG.Incre_Update: '||
1794: 'Diamond Shape Detected');
1795:
1796: FND_CONCURRENT.Af_Rollback;
1797: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1798: retcode := sqlcode;
1799: ret_val := FND_CONCURRENT.Set_Completion_Status
1800: (status => 'ERROR', message => substr(sqlerrm,1,180));
1801:
1810:
1811: WHEN OTHERS THEN
1812: FII_UTIL.Write_Log ('Incre_Update -> phase: '|| g_phase);
1813: FII_UTIL.Write_Log (
1814: 'Other error in FII_UDD1_MAINTAIN_PKG.Incre_Update: ' || substr(sqlerrm,1,180));
1815:
1816:
1817: FND_CONCURRENT.Af_Rollback;
1818: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1814: 'Other error in FII_UDD1_MAINTAIN_PKG.Incre_Update: ' || substr(sqlerrm,1,180));
1815:
1816:
1817: FND_CONCURRENT.Af_Rollback;
1818: FII_MESSAGE.Func_Fail(func_name => 'FII_UDD1_MAINTAIN_PKG.Incre_Update');
1819: retcode := sqlcode;
1820: ret_val := FND_CONCURRENT.Set_Completion_Status
1821: (status => 'ERROR', message => substr(sqlerrm,1,180));
1822:
1821: (status => 'ERROR', message => substr(sqlerrm,1,180));
1822:
1823: END Incre_Update;
1824:
1825: END FII_UDD1_MAINTAIN_PKG;