33: G_APP_NAME CONSTANT VARCHAR2(4) := 'FEM';
34: G_PKG_NAME CONSTANT VARCHAR2(25) := 'fem_rule_set_manager';
35: G_MODULE_NAME CONSTANT VARCHAR2(40) := 'fem.plsql.' || G_PKG_NAME || '.';
36:
37: z_master_err_state NUMBER := FEM_UTILS.G_RSM_NO_ERR;
38:
39:
40:
41: -- error messages and their macro replacement strings
161: --
162: -- *******************************************************************************************
163: PROCEDURE reset_master_err_state IS
164: BEGIN
165: z_master_err_state := FEM_UTILS.G_RSM_NO_ERR;
166: END reset_master_err_state;
167:
168:
169:
222: RETURN l_Object_Display_Name;
223:
224: EXCEPTION
225: WHEN OTHERS THEN
226: FEM_UTILS.set_master_err_state( z_master_err_state,
227: FEM_UTILS.G_RSM_FATAL_ERR,
228: G_APP_NAME,
229: G_ERRMSG_UNEXPECTED_SQLERROR,
230: G_ERRMAC_ROUTINE_NAME,
223:
224: EXCEPTION
225: WHEN OTHERS THEN
226: FEM_UTILS.set_master_err_state( z_master_err_state,
227: FEM_UTILS.G_RSM_FATAL_ERR,
228: G_APP_NAME,
229: G_ERRMSG_UNEXPECTED_SQLERROR,
230: G_ERRMAC_ROUTINE_NAME,
231: l_module_name,
291: -- we had an error.. no valid object_definition for p_Object_ID
292: -- error codes maintained right now for backwards compatibility..
293: z_Err_Code := 1;
294: -- todo:: setup error message here..
295: FEM_UTILS.set_master_err_state( z_master_err_state,
296: FEM_UTILS.G_RSM_NONFATAL_ERR,
297: G_APP_NAME,
298: G_ERRMSG_NO_VALID_DEFINITION ,
299: G_ERRMAC_RULE_NAME,
292: -- error codes maintained right now for backwards compatibility..
293: z_Err_Code := 1;
294: -- todo:: setup error message here..
295: FEM_UTILS.set_master_err_state( z_master_err_state,
296: FEM_UTILS.G_RSM_NONFATAL_ERR,
297: G_APP_NAME,
298: G_ERRMSG_NO_VALID_DEFINITION ,
299: G_ERRMAC_RULE_NAME,
300: GetObjectDisplayName(p_Object_ID));
310: p_module=> l_module_name,
311: p_msg_text=> 'EXIT');
312: EXCEPTION
313: WHEN OTHERS THEN
314: FEM_UTILS.set_master_err_state( z_master_err_state,
315: FEM_UTILS.G_RSM_FATAL_ERR,
316: G_APP_NAME,
317: G_ERRMSG_UNEXPECTED_SQLERROR,
318: G_ERRMAC_ROUTINE_NAME,
311: p_msg_text=> 'EXIT');
312: EXCEPTION
313: WHEN OTHERS THEN
314: FEM_UTILS.set_master_err_state( z_master_err_state,
315: FEM_UTILS.G_RSM_FATAL_ERR,
316: G_APP_NAME,
317: G_ERRMSG_UNEXPECTED_SQLERROR,
318: G_ERRMAC_ROUTINE_NAME,
319: l_module_name,
373: RETURN x_Msg_Text;
374:
375: EXCEPTION
376: WHEN OTHERS THEN
377: FEM_UTILS.set_master_err_state( z_master_err_state,
378: FEM_UTILS.G_RSM_FATAL_ERR,
379: G_APP_NAME,
380: G_ERRMSG_UNEXPECTED_SQLERROR,
381: G_ERRMAC_ROUTINE_NAME,
374:
375: EXCEPTION
376: WHEN OTHERS THEN
377: FEM_UTILS.set_master_err_state( z_master_err_state,
378: FEM_UTILS.G_RSM_FATAL_ERR,
379: G_APP_NAME,
380: G_ERRMSG_UNEXPECTED_SQLERROR,
381: G_ERRMAC_ROUTINE_NAME,
382: l_module_name,
432: RETURN l_Object_ID;
433:
434: EXCEPTION
435: WHEN OTHERS THEN
436: FEM_UTILS.set_master_err_state( z_master_err_state,
437: FEM_UTILS.G_RSM_FATAL_ERR,
438: G_APP_NAME,
439: G_ERRMSG_UNEXPECTED_SQLERROR,
440: G_ERRMAC_ROUTINE_NAME,
433:
434: EXCEPTION
435: WHEN OTHERS THEN
436: FEM_UTILS.set_master_err_state( z_master_err_state,
437: FEM_UTILS.G_RSM_FATAL_ERR,
438: G_APP_NAME,
439: G_ERRMSG_UNEXPECTED_SQLERROR,
440: G_ERRMAC_ROUTINE_NAME,
441: l_module_name,
502: p_module=> l_module_name,
503: p_msg_text=> 'EXIT');
504: EXCEPTION
505: WHEN OTHERS THEN
506: FEM_UTILS.set_master_err_state( z_master_err_state,
507: FEM_UTILS.G_RSM_FATAL_ERR,
508: G_APP_NAME,
509: G_ERRMSG_UNEXPECTED_SQLERROR,
510: G_ERRMAC_ROUTINE_NAME,
503: p_msg_text=> 'EXIT');
504: EXCEPTION
505: WHEN OTHERS THEN
506: FEM_UTILS.set_master_err_state( z_master_err_state,
507: FEM_UTILS.G_RSM_FATAL_ERR,
508: G_APP_NAME,
509: G_ERRMSG_UNEXPECTED_SQLERROR,
510: G_ERRMAC_ROUTINE_NAME,
511: l_module_name,
631: p_msg_text=> 'EXIT');
632: EXCEPTION
633: WHEN OTHERS THEN
634: -- todo:: useful?? z_Err_Code := -1;
635: FEM_UTILS.set_master_err_state( z_master_err_state,
636: FEM_UTILS.G_RSM_FATAL_ERR,
637: G_APP_NAME,
638: G_ERRMSG_UNEXPECTED_SQLERROR,
639: G_ERRMAC_ROUTINE_NAME,
632: EXCEPTION
633: WHEN OTHERS THEN
634: -- todo:: useful?? z_Err_Code := -1;
635: FEM_UTILS.set_master_err_state( z_master_err_state,
636: FEM_UTILS.G_RSM_FATAL_ERR,
637: G_APP_NAME,
638: G_ERRMSG_UNEXPECTED_SQLERROR,
639: G_ERRMAC_ROUTINE_NAME,
640: l_module_name,
708: p_msg_text=> 'EXIT');
709: EXCEPTION
710: WHEN OTHERS THEN
711: -- todo:: useful? z_Err_Code := -1;
712: FEM_UTILS.set_master_err_state( z_master_err_state,
713: FEM_UTILS.G_RSM_FATAL_ERR,
714: G_APP_NAME,
715: G_ERRMSG_UNEXPECTED_SQLERROR,
716: G_ERRMAC_ROUTINE_NAME,
709: EXCEPTION
710: WHEN OTHERS THEN
711: -- todo:: useful? z_Err_Code := -1;
712: FEM_UTILS.set_master_err_state( z_master_err_state,
713: FEM_UTILS.G_RSM_FATAL_ERR,
714: G_APP_NAME,
715: G_ERRMSG_UNEXPECTED_SQLERROR,
716: G_ERRMAC_ROUTINE_NAME,
717: l_module_name,
960: p_msg_text=> 'EXIT');
961: EXCEPTION
962: WHEN OTHERS THEN
963: -- todo:: useful? z_Err_Code := -1;
964: FEM_UTILS.set_master_err_state( z_master_err_state,
965: FEM_UTILS.G_RSM_FATAL_ERR,
966: G_APP_NAME,
967: G_ERRMSG_UNEXPECTED_SQLERROR,
968: G_ERRMAC_ROUTINE_NAME,
961: EXCEPTION
962: WHEN OTHERS THEN
963: -- todo:: useful? z_Err_Code := -1;
964: FEM_UTILS.set_master_err_state( z_master_err_state,
965: FEM_UTILS.G_RSM_FATAL_ERR,
966: G_APP_NAME,
967: G_ERRMSG_UNEXPECTED_SQLERROR,
968: G_ERRMAC_ROUTINE_NAME,
969: l_module_name,
1134:
1135: EXCEPTION
1136: WHEN OTHERS THEN
1137: -- todo:: useful? z_Err_Code := -1;
1138: FEM_UTILS.set_master_err_state( z_master_err_state,
1139: FEM_UTILS.G_RSM_FATAL_ERR,
1140: G_APP_NAME,
1141: G_ERRMSG_UNEXPECTED_SQLERROR,
1142: G_ERRMAC_ROUTINE_NAME,
1135: EXCEPTION
1136: WHEN OTHERS THEN
1137: -- todo:: useful? z_Err_Code := -1;
1138: FEM_UTILS.set_master_err_state( z_master_err_state,
1139: FEM_UTILS.G_RSM_FATAL_ERR,
1140: G_APP_NAME,
1141: G_ERRMSG_UNEXPECTED_SQLERROR,
1142: G_ERRMAC_ROUTINE_NAME,
1143: l_module_name,
1219: z_Err_Code := 4;
1220: -- todo:: fix to new standards..
1221: IF p_Child_Object_Type_Code = 'RULE_SET' THEN
1222:
1223: FEM_UTILS.set_master_err_state( z_master_err_state,
1224: FEM_UTILS.G_RSM_NONFATAL_ERR,
1225: G_APP_NAME,
1226: G_ERRMSG_DUPLICATE_OCCURRENCE,
1227: G_ERRMAC_DUP_RS,
1220: -- todo:: fix to new standards..
1221: IF p_Child_Object_Type_Code = 'RULE_SET' THEN
1222:
1223: FEM_UTILS.set_master_err_state( z_master_err_state,
1224: FEM_UTILS.G_RSM_NONFATAL_ERR,
1225: G_APP_NAME,
1226: G_ERRMSG_DUPLICATE_OCCURRENCE,
1227: G_ERRMAC_DUP_RS,
1228: p_Child_Object_Name,
1231: p_currRuleSet.RuleSet_Object_Name
1232: );
1233: ELSE
1234:
1235: FEM_UTILS.set_master_err_state( z_master_err_state,
1236: FEM_UTILS.G_RSM_NONFATAL_ERR,
1237: G_APP_NAME,
1238: G_ERRMSG_DUP_RULE_OCC,
1239: G_ERRMAC_RULE_SET,
1232: );
1233: ELSE
1234:
1235: FEM_UTILS.set_master_err_state( z_master_err_state,
1236: FEM_UTILS.G_RSM_NONFATAL_ERR,
1237: G_APP_NAME,
1238: G_ERRMSG_DUP_RULE_OCC,
1239: G_ERRMAC_RULE_SET,
1240: p_currRuleSet.RuleSet_Object_Name,
1270:
1271: EXCEPTION
1272: WHEN OTHERS THEN
1273: -- todo:: useful? z_Err_Code := -1;
1274: FEM_UTILS.set_master_err_state( z_master_err_state,
1275: FEM_UTILS.G_RSM_FATAL_ERR,
1276: G_APP_NAME,
1277: G_ERRMSG_UNEXPECTED_SQLERROR,
1278: G_ERRMAC_ROUTINE_NAME,
1271: EXCEPTION
1272: WHEN OTHERS THEN
1273: -- todo:: useful? z_Err_Code := -1;
1274: FEM_UTILS.set_master_err_state( z_master_err_state,
1275: FEM_UTILS.G_RSM_FATAL_ERR,
1276: G_APP_NAME,
1277: G_ERRMSG_UNEXPECTED_SQLERROR,
1278: G_ERRMAC_ROUTINE_NAME,
1279: l_module_name,
1338:
1339: If (x_Rule_Set_Instance_Tab(i).RuleSet_Object_ID = p_Child_RuleSet_Object_ID) then
1340: -- todo:: remove err code??
1341: z_Err_Code := 2;
1342: FEM_UTILS.set_master_err_state( z_master_err_state,
1343: FEM_UTILS.G_RSM_NONFATAL_ERR,
1344: G_APP_NAME,
1345: G_ERRMSG_DUPLICATE_OCCURRENCE,
1346: G_ERRMAC_DUP_RS,
1339: If (x_Rule_Set_Instance_Tab(i).RuleSet_Object_ID = p_Child_RuleSet_Object_ID) then
1340: -- todo:: remove err code??
1341: z_Err_Code := 2;
1342: FEM_UTILS.set_master_err_state( z_master_err_state,
1343: FEM_UTILS.G_RSM_NONFATAL_ERR,
1344: G_APP_NAME,
1345: G_ERRMSG_DUPLICATE_OCCURRENCE,
1346: G_ERRMAC_DUP_RS,
1347: p_Child_Object_Display_Name,
1372: /***Level Check***/
1373: If (x_Rule_Set_Level > g_max_rule_set_depth) then
1374: -- todo:: fix to new standards..
1375: z_Err_Code := 3;
1376: FEM_UTILS.set_master_err_state( z_master_err_state,
1377: FEM_UTILS.G_RSM_FATAL_ERR,
1378: G_APP_NAME,
1379: G_ERRMSG_DEPTH_CHECK_FAILURE
1380: );
1373: If (x_Rule_Set_Level > g_max_rule_set_depth) then
1374: -- todo:: fix to new standards..
1375: z_Err_Code := 3;
1376: FEM_UTILS.set_master_err_state( z_master_err_state,
1377: FEM_UTILS.G_RSM_FATAL_ERR,
1378: G_APP_NAME,
1379: G_ERRMSG_DEPTH_CHECK_FAILURE
1380: );
1381: p_Other_Error_Status := G_RSM_DEPTH_FAILURE;
1397: -- top calling routine will handle this one.
1398: RAISE;
1399: WHEN OTHERS THEN
1400: -- todo:: useful? z_Err_Code := -1;
1401: FEM_UTILS.set_master_err_state( z_master_err_state,
1402: FEM_UTILS.G_RSM_FATAL_ERR,
1403: G_APP_NAME,
1404: G_ERRMSG_UNEXPECTED_SQLERROR,
1405: G_ERRMAC_ROUTINE_NAME,
1398: RAISE;
1399: WHEN OTHERS THEN
1400: -- todo:: useful? z_Err_Code := -1;
1401: FEM_UTILS.set_master_err_state( z_master_err_state,
1402: FEM_UTILS.G_RSM_FATAL_ERR,
1403: G_APP_NAME,
1404: G_ERRMSG_UNEXPECTED_SQLERROR,
1405: G_ERRMAC_ROUTINE_NAME,
1406: l_module_name,
1479:
1480: EXCEPTION
1481: WHEN OTHERS THEN
1482: -- todo:: useful? z_Err_Code := -1;
1483: FEM_UTILS.set_master_err_state( z_master_err_state,
1484: FEM_UTILS.G_RSM_FATAL_ERR,
1485: G_APP_NAME,
1486: G_ERRMSG_UNEXPECTED_SQLERROR,
1487: G_ERRMAC_ROUTINE_NAME,
1480: EXCEPTION
1481: WHEN OTHERS THEN
1482: -- todo:: useful? z_Err_Code := -1;
1483: FEM_UTILS.set_master_err_state( z_master_err_state,
1484: FEM_UTILS.G_RSM_FATAL_ERR,
1485: G_APP_NAME,
1486: G_ERRMSG_UNEXPECTED_SQLERROR,
1487: G_ERRMAC_ROUTINE_NAME,
1488: l_module_name,
1568:
1569: CLOSE getOutputDataset;
1570:
1571: IF NOT l_ods_found THEN
1572: FEM_UTILS.set_master_err_state( z_master_err_state,
1573: FEM_UTILS.G_RSM_NONFATAL_ERR,
1574: G_APP_NAME,
1575: G_ERRMSG_NO_ODS
1576: );
1569: CLOSE getOutputDataset;
1570:
1571: IF NOT l_ods_found THEN
1572: FEM_UTILS.set_master_err_state( z_master_err_state,
1573: FEM_UTILS.G_RSM_NONFATAL_ERR,
1574: G_APP_NAME,
1575: G_ERRMSG_NO_ODS
1576: );
1577: fem_engines_pkg.tech_message(p_severity=>G_LOG_STATEMENT ,
1592: CLOSE getProductionFlag;
1593:
1594: -- error...
1595: IF NOT l_ods_prodflag_found THEN
1596: FEM_UTILS.set_master_err_state( z_master_err_state,
1597: FEM_UTILS.G_RSM_NONFATAL_ERR,
1598: G_APP_NAME,
1599: G_ERRMSG_NO_ODSPRODFLAG
1600: );
1593:
1594: -- error...
1595: IF NOT l_ods_prodflag_found THEN
1596: FEM_UTILS.set_master_err_state( z_master_err_state,
1597: FEM_UTILS.G_RSM_NONFATAL_ERR,
1598: G_APP_NAME,
1599: G_ERRMSG_NO_ODSPRODFLAG
1600: );
1601: fem_engines_pkg.tech_message(p_severity=>G_LOG_STATEMENT ,
1612: l_isProduction := FALSE;
1613: ELSE
1614: -- This case should not occur because PRODUCTION_FLAG is a
1615: -- required attribute.
1616: FEM_UTILS.set_master_err_state( z_master_err_state,
1617: FEM_UTILS.G_RSM_NONFATAL_ERR,
1618: G_APP_NAME,
1619: G_ERRMSG_NO_ODSPRODFLAG,
1620: G_ERRMAC_VALUE,
1613: ELSE
1614: -- This case should not occur because PRODUCTION_FLAG is a
1615: -- required attribute.
1616: FEM_UTILS.set_master_err_state( z_master_err_state,
1617: FEM_UTILS.G_RSM_NONFATAL_ERR,
1618: G_APP_NAME,
1619: G_ERRMSG_NO_ODSPRODFLAG,
1620: G_ERRMAC_VALUE,
1621: x_Production_Flag );
1634: RETURN l_isProduction;
1635:
1636: EXCEPTION
1637: WHEN OTHERS THEN
1638: FEM_UTILS.set_master_err_state( z_master_err_state,
1639: FEM_UTILS.G_RSM_FATAL_ERR,
1640: G_APP_NAME,
1641: G_ERRMSG_UNEXPECTED_SQLERROR,
1642: G_ERRMAC_ROUTINE_NAME,
1635:
1636: EXCEPTION
1637: WHEN OTHERS THEN
1638: FEM_UTILS.set_master_err_state( z_master_err_state,
1639: FEM_UTILS.G_RSM_FATAL_ERR,
1640: G_APP_NAME,
1641: G_ERRMSG_UNEXPECTED_SQLERROR,
1642: G_ERRMAC_ROUTINE_NAME,
1643: l_module_name,
1760: If (l_Dependent_Obj_Def_ID = -1) then
1761: -- we DIDN'T find a def ID for this dependent object..
1762: -- todo:: fix to new standards
1763: z_Err_Code := 6;
1764: --FEM_UTILS.set_master_err_state( z_master_err_state,
1765: -- FEM_UTILS.G_RSM_NONFATAL_ERR,
1766: -- G_APP_NAME,
1767: -- G_ERRMSG_NO_VALID_DEFINITION,
1768: -- G_ERRMAC_RULE_NAME,
1761: -- we DIDN'T find a def ID for this dependent object..
1762: -- todo:: fix to new standards
1763: z_Err_Code := 6;
1764: --FEM_UTILS.set_master_err_state( z_master_err_state,
1765: -- FEM_UTILS.G_RSM_NONFATAL_ERR,
1766: -- G_APP_NAME,
1767: -- G_ERRMSG_NO_VALID_DEFINITION,
1768: -- G_ERRMAC_RULE_NAME,
1769: -- l_Dependent_Obj_Display_Name);
1766: -- G_APP_NAME,
1767: -- G_ERRMSG_NO_VALID_DEFINITION,
1768: -- G_ERRMAC_RULE_NAME,
1769: -- l_Dependent_Obj_Display_Name);
1770: FEM_UTILS.set_master_err_state( z_master_err_state,
1771: FEM_UTILS.G_RSM_NONFATAL_ERR,
1772: G_APP_NAME,
1773: G_FEMRSM_NOVALID_DEP_DEF,
1774: 'RULE_NAME',
1767: -- G_ERRMSG_NO_VALID_DEFINITION,
1768: -- G_ERRMAC_RULE_NAME,
1769: -- l_Dependent_Obj_Display_Name);
1770: FEM_UTILS.set_master_err_state( z_master_err_state,
1771: FEM_UTILS.G_RSM_NONFATAL_ERR,
1772: G_APP_NAME,
1773: G_FEMRSM_NOVALID_DEP_DEF,
1774: 'RULE_NAME',
1775: l_Dependent_Obj_Display_Name,
1823:
1824: EXCEPTION
1825: WHEN OTHERS THEN
1826: -- todo:: useful? z_Err_Code := -1;
1827: FEM_UTILS.set_master_err_state( z_master_err_state,
1828: FEM_UTILS.G_RSM_FATAL_ERR,
1829: G_APP_NAME,
1830: G_ERRMSG_UNEXPECTED_SQLERROR,
1831: G_ERRMAC_ROUTINE_NAME,
1824: EXCEPTION
1825: WHEN OTHERS THEN
1826: -- todo:: useful? z_Err_Code := -1;
1827: FEM_UTILS.set_master_err_state( z_master_err_state,
1828: FEM_UTILS.G_RSM_FATAL_ERR,
1829: G_APP_NAME,
1830: G_ERRMSG_UNEXPECTED_SQLERROR,
1831: G_ERRMAC_ROUTINE_NAME,
1832: l_module_name,
1934: -- no valid definition ID!
1935: p_Valid_Rule_Def_Status := G_RSM_NO_VALID_DEFN;
1936: -- todo:: fix to new standards ... this one may be ok
1937: z_Err_Code := 1;
1938: FEM_UTILS.set_master_err_state( z_master_err_state,
1939: FEM_UTILS.G_RSM_NONFATAL_ERR,
1940: G_APP_NAME,
1941: G_ERRMSG_NO_VALID_DEFINITION,
1942: G_ERRMAC_RULE_NAME,
1935: p_Valid_Rule_Def_Status := G_RSM_NO_VALID_DEFN;
1936: -- todo:: fix to new standards ... this one may be ok
1937: z_Err_Code := 1;
1938: FEM_UTILS.set_master_err_state( z_master_err_state,
1939: FEM_UTILS.G_RSM_NONFATAL_ERR,
1940: G_APP_NAME,
1941: G_ERRMSG_NO_VALID_DEFINITION,
1942: G_ERRMAC_RULE_NAME,
1943: GetObjectDisplayName(p_Rule_Object_ID)
1960: If (l_Is_Rule_Locked) then
1961: p_Valid_Lock_Status := G_RSM_RULE_LOCKED;
1962: -- todo:: fix to new standards..
1963: z_Err_Code := 7;
1964: set_master_err_state(FEM_UTILS.G_RSM_NONFATAL_ERR,
1965: G_APP_NAME,);
1966: Else
1967: p_Valid_Lock_Status := G_RSM_RULE_NOT_LOCKED;
1968: End If;
1977: If (p_Rule_Local_VS_Combo_ID <> z_local_vs_for_session) then
1978: p_Valid_Local_VS_Status := G_RSM_INVALID_STATUS;
1979: -- todo:: fix to new standards
1980: z_Err_Code := 8;
1981: FEM_UTILS.set_master_err_state( z_master_err_state,
1982: FEM_UTILS.G_RSM_NONFATAL_ERR,
1983: G_APP_NAME,
1984: G_ERRMSG_NO_VALID_VALSETS,
1985: G_ERRMAC_RULE_NAME,
1978: p_Valid_Local_VS_Status := G_RSM_INVALID_STATUS;
1979: -- todo:: fix to new standards
1980: z_Err_Code := 8;
1981: FEM_UTILS.set_master_err_state( z_master_err_state,
1982: FEM_UTILS.G_RSM_NONFATAL_ERR,
1983: G_APP_NAME,
1984: G_ERRMSG_NO_VALID_VALSETS,
1985: G_ERRMAC_RULE_NAME,
1986: GetObjectDisplayName(p_Rule_Object_ID)
2000: If ((l_Rule_Approval_Status_Code <> 'APPROVED')AND(l_Rule_Approval_Status_Code <> 'XX')) then
2001: p_Valid_Approval_Status := G_RSM_RULE_NOT_APPROVED;
2002: -- todo:: fix to new standards
2003: z_Err_Code := 5;
2004: FEM_UTILS.set_master_err_state( z_master_err_state,
2005: FEM_UTILS.G_RSM_NONFATAL_ERR,
2006: G_APP_NAME,
2007: G_ERRMSG_DEFN_NOT_APPROVED,
2008: G_ERRMAC_RULE_NAME,
2001: p_Valid_Approval_Status := G_RSM_RULE_NOT_APPROVED;
2002: -- todo:: fix to new standards
2003: z_Err_Code := 5;
2004: FEM_UTILS.set_master_err_state( z_master_err_state,
2005: FEM_UTILS.G_RSM_NONFATAL_ERR,
2006: G_APP_NAME,
2007: G_ERRMSG_DEFN_NOT_APPROVED,
2008: G_ERRMAC_RULE_NAME,
2009: GetObjectDisplayName(p_Rule_Object_ID)
2030: p_module=> l_module_name,
2031: p_msg_text=> 'EXIT');
2032: EXCEPTION
2033: WHEN OTHERS THEN
2034: FEM_UTILS.set_master_err_state( z_master_err_state,
2035: FEM_UTILS.G_RSM_FATAL_ERR,
2036: G_APP_NAME,
2037: G_ERRMSG_UNEXPECTED_SQLERROR,
2038: G_ERRMAC_ROUTINE_NAME,
2031: p_msg_text=> 'EXIT');
2032: EXCEPTION
2033: WHEN OTHERS THEN
2034: FEM_UTILS.set_master_err_state( z_master_err_state,
2035: FEM_UTILS.G_RSM_FATAL_ERR,
2036: G_APP_NAME,
2037: G_ERRMSG_UNEXPECTED_SQLERROR,
2038: G_ERRMAC_ROUTINE_NAME,
2039: l_module_name,
2569:
2570: -- fnd_file.put_line(FND_FILE.LOG,'Error Code after internal Process Rule Set call is : '||z_Err_Code);
2571:
2572: -- capture error state and react accordingly
2573: If (z_master_err_state = FEM_UTILS.G_RSM_FATAL_ERR ) THEN
2574: -- this is a backstop err capture routine.. we (hopefully) should never get here..
2575: RAISE FND_API.G_EXC_ERROR;
2576:
2577: Elsif (z_master_err_state = FEM_UTILS.G_RSM_NONFATAL_ERR) then
2573: If (z_master_err_state = FEM_UTILS.G_RSM_FATAL_ERR ) THEN
2574: -- this is a backstop err capture routine.. we (hopefully) should never get here..
2575: RAISE FND_API.G_EXC_ERROR;
2576:
2577: Elsif (z_master_err_state = FEM_UTILS.G_RSM_NONFATAL_ERR) then
2578:
2579: If NOT z_continue_on_error then
2580: -- if the caller wants to stop on error, we stop..
2581: RETURN;
2653: -- top caller will handle this one..
2654: RAISE;
2655: WHEN OTHERS THEN
2656: -- todo:: useful?? z_Err_Code := -1;
2657: FEM_UTILS.set_master_err_state( z_master_err_state,
2658: FEM_UTILS.G_RSM_FATAL_ERR,
2659: G_APP_NAME,
2660: G_ERRMSG_UNEXPECTED_SQLERROR,
2661: G_ERRMAC_ROUTINE_NAME,
2654: RAISE;
2655: WHEN OTHERS THEN
2656: -- todo:: useful?? z_Err_Code := -1;
2657: FEM_UTILS.set_master_err_state( z_master_err_state,
2658: FEM_UTILS.G_RSM_FATAL_ERR,
2659: G_APP_NAME,
2660: G_ERRMSG_UNEXPECTED_SQLERROR,
2661: G_ERRMAC_ROUTINE_NAME,
2662: l_module_name,
2867:
2868: -- if the rule's local value set id doesn't match the one for the ledger, its BAD.
2869: If (l_Rule_Local_VSCID <> z_local_vs_for_session) then
2870: z_Err_Code := 9;
2871: FEM_UTILS.set_master_err_state( z_master_err_state,
2872: FEM_UTILS.G_RSM_NONFATAL_ERR,
2873: G_APP_NAME,
2874: G_ERRMSG_NO_VALID_VALSETS,
2875: G_ERRMAC_RULE_NAME,
2868: -- if the rule's local value set id doesn't match the one for the ledger, its BAD.
2869: If (l_Rule_Local_VSCID <> z_local_vs_for_session) then
2870: z_Err_Code := 9;
2871: FEM_UTILS.set_master_err_state( z_master_err_state,
2872: FEM_UTILS.G_RSM_NONFATAL_ERR,
2873: G_APP_NAME,
2874: G_ERRMSG_NO_VALID_VALSETS,
2875: G_ERRMAC_RULE_NAME,
2876: GetObjectDisplayName(p_Rule_Object_ID)
2906: ,l_Valid_Local_VS_Status);
2907:
2908: Else
2909: z_Err_Code := 10;
2910: FEM_UTILS.set_master_err_state( z_master_err_state,
2911: FEM_UTILS.G_RSM_NONFATAL_ERR,
2912: G_APP_NAME,
2913: G_ERRMSG_DSGRP_NOT_FOUND );
2914: z_Err_Msg := G_INVALID_DATASET_GROUP;
2907:
2908: Else
2909: z_Err_Code := 10;
2910: FEM_UTILS.set_master_err_state( z_master_err_state,
2911: FEM_UTILS.G_RSM_NONFATAL_ERR,
2912: G_APP_NAME,
2913: G_ERRMSG_DSGRP_NOT_FOUND );
2914: z_Err_Msg := G_INVALID_DATASET_GROUP;
2915: -- todo:: fix to new standards..
2949: ROLLBACK TO Validate_Rule_Public_SvPt;
2950: WHEN OTHERS THEN
2951: x_Err_Code := -1;
2952: -- todo:: this is a main I/F procedure and should conform to the 'new way of thinking'.
2953: FEM_UTILS.set_master_err_state( z_master_err_state,
2954: FEM_UTILS.G_RSM_FATAL_ERR,
2955: G_APP_NAME,
2956: G_ERRMSG_UNEXPECTED_SQLERROR,
2957: G_ERRMAC_ROUTINE_NAME,
2950: WHEN OTHERS THEN
2951: x_Err_Code := -1;
2952: -- todo:: this is a main I/F procedure and should conform to the 'new way of thinking'.
2953: FEM_UTILS.set_master_err_state( z_master_err_state,
2954: FEM_UTILS.G_RSM_FATAL_ERR,
2955: G_APP_NAME,
2956: G_ERRMSG_UNEXPECTED_SQLERROR,
2957: G_ERRMAC_ROUTINE_NAME,
2958: l_module_name,
3341: x_msg_data );
3342:
3343: EXCEPTION
3344: WHEN OTHERS THEN
3345: FEM_UTILS.set_master_err_state( z_master_err_state,
3346: FEM_UTILS.G_RSM_FATAL_ERR,
3347: G_APP_NAME,
3348: G_ERRMSG_UNEXPECTED_SQLERROR,
3349: G_ERRMAC_ROUTINE_NAME,
3342:
3343: EXCEPTION
3344: WHEN OTHERS THEN
3345: FEM_UTILS.set_master_err_state( z_master_err_state,
3346: FEM_UTILS.G_RSM_FATAL_ERR,
3347: G_APP_NAME,
3348: G_ERRMSG_UNEXPECTED_SQLERROR,
3349: G_ERRMAC_ROUTINE_NAME,
3350: l_module_name,
3581: ,l_TEMP);
3582: If (z_local_vs_for_session = -1) then
3583: -- todo:: unknown error in Local_VS_Combo_ID call.. report as such
3584:
3585: FEM_UTILS.set_master_err_state( z_master_err_state,
3586: FEM_UTILS.G_RSM_FATAL_ERR,
3587: G_APP_NAME,
3588: G_ERRMSG_NO_DSG_FOR_LID );
3589:
3582: If (z_local_vs_for_session = -1) then
3583: -- todo:: unknown error in Local_VS_Combo_ID call.. report as such
3584:
3585: FEM_UTILS.set_master_err_state( z_master_err_state,
3586: FEM_UTILS.G_RSM_FATAL_ERR,
3587: G_APP_NAME,
3588: G_ERRMSG_NO_DSG_FOR_LID );
3589:
3590: -- this one is bad.. our master rule/ruleset has an invalid VS combo ID.. bomb out now
3598: where object_id = p_Orig_RuleSet_Object_ID;
3599: If (l_RuleSet_LocalVSComboID <> z_local_vs_for_session) then
3600:
3601: -- originally error number's 8 and 9.
3602: FEM_UTILS.set_master_err_state( z_master_err_state,
3603: FEM_UTILS.G_RSM_FATAL_ERR,
3604: G_APP_NAME,
3605: G_ERRMSG_NO_VALID_VALSETS,
3606: G_ERRMAC_RULE_NAME,
3599: If (l_RuleSet_LocalVSComboID <> z_local_vs_for_session) then
3600:
3601: -- originally error number's 8 and 9.
3602: FEM_UTILS.set_master_err_state( z_master_err_state,
3603: FEM_UTILS.G_RSM_FATAL_ERR,
3604: G_APP_NAME,
3605: G_ERRMSG_NO_VALID_VALSETS,
3606: G_ERRMAC_RULE_NAME,
3607: GetObjectDisplayName(p_Orig_RuleSet_Object_ID));
3665: ,p_Execution_Mode);
3666:
3667: ELSE
3668: -- originally error # '10'
3669: FEM_UTILS.set_master_err_state( z_master_err_state,
3670: FEM_UTILS.G_RSM_NONFATAL_ERR,
3671: G_APP_NAME,
3672: G_ERRMSG_DSGRP_NOT_FOUND );
3673: RAISE FND_API.G_EXC_ERROR;
3666:
3667: ELSE
3668: -- originally error # '10'
3669: FEM_UTILS.set_master_err_state( z_master_err_state,
3670: FEM_UTILS.G_RSM_NONFATAL_ERR,
3671: G_APP_NAME,
3672: G_ERRMSG_DSGRP_NOT_FOUND );
3673: RAISE FND_API.G_EXC_ERROR;
3674: End If;
3673: RAISE FND_API.G_EXC_ERROR;
3674: End If;
3675:
3676: -- For fatal errors, force a rollback and get out..
3677: IF (z_master_err_state = FEM_UTILS.G_RSM_FATAL_ERR) THEN
3678: RAISE FND_API.G_EXC_ERROR;
3679: -- For nonfatal errors, report error if "continue to process on error"
3680: -- is set to No. In either case, do not rollback what was stored
3681: -- in fem_ruleset_process_data so the engines can run.
3682: -- Ideally, we want to differentiate between a fatal and nonfatal error
3683: -- but since the FND API Standard has only one expected error code,
3684: -- we have to continue to report error for the same cases as before this
3685: -- change for backward compatability.
3686: ELSIF ((z_master_err_state = FEM_UTILS.G_RSM_NONFATAL_ERR) AND
3687: (NOT z_continue_on_error)) THEN
3688: x_return_status := FND_API.G_RET_STS_ERROR;
3689: END IF;
3690:
3721:
3722: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3723:
3724: WHEN OTHERS THEN
3725: FEM_UTILS.set_master_err_state( z_master_err_state,
3726: FEM_UTILS.G_RSM_FATAL_ERR,
3727: G_APP_NAME,
3728: G_ERRMSG_UNEXPECTED_SQLERROR,
3729: G_ERRMAC_ROUTINE_NAME,
3722: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3723:
3724: WHEN OTHERS THEN
3725: FEM_UTILS.set_master_err_state( z_master_err_state,
3726: FEM_UTILS.G_RSM_FATAL_ERR,
3727: G_APP_NAME,
3728: G_ERRMSG_UNEXPECTED_SQLERROR,
3729: G_ERRMAC_ROUTINE_NAME,
3730: l_module_name,