1007: END IF;
1008: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1009: END IF;
1010:
1011: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1012: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1013: fnd_message.set_token('CONST_DETAILS', has_violation);
1014: return substrb((FND_MESSAGE.GET), 1, 2000);
1015: END IF;
1008: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1009: END IF;
1010:
1011: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1012: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1013: fnd_message.set_token('CONST_DETAILS', has_violation);
1014: return substrb((FND_MESSAGE.GET), 1, 2000);
1015: END IF;
1016:
1009: END IF;
1010:
1011: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1012: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1013: fnd_message.set_token('CONST_DETAILS', has_violation);
1014: return substrb((FND_MESSAGE.GET), 1, 2000);
1015: END IF;
1016:
1017: ELSIF 'ME' = l_all_valid_constraints.type_code THEN
1010:
1011: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1012: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1013: fnd_message.set_token('CONST_DETAILS', has_violation);
1014: return substrb((FND_MESSAGE.GET), 1, 2000);
1015: END IF;
1016:
1017: ELSIF 'ME' = l_all_valid_constraints.type_code THEN
1018: -- find the number of distinct constraint entries this user can access
1067: END IF;
1068: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1069: END IF;
1070:
1071: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1072: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1073: fnd_message.set_token('CONST_DETAILS', has_violation);
1074: return substrb((FND_MESSAGE.GET), 1, 2000);
1075: END IF;
1068: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1069: END IF;
1070:
1071: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1072: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1073: fnd_message.set_token('CONST_DETAILS', has_violation);
1074: return substrb((FND_MESSAGE.GET), 1, 2000);
1075: END IF;
1076:
1069: END IF;
1070:
1071: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1072: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1073: fnd_message.set_token('CONST_DETAILS', has_violation);
1074: return substrb((FND_MESSAGE.GET), 1, 2000);
1075: END IF;
1076:
1077: ELSIF 'SET' = l_all_valid_constraints.type_code THEN
1070:
1071: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1072: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1073: fnd_message.set_token('CONST_DETAILS', has_violation);
1074: return substrb((FND_MESSAGE.GET), 1, 2000);
1075: END IF;
1076:
1077: ELSIF 'SET' = l_all_valid_constraints.type_code THEN
1078: -- find the number of distinct constraint entries this user can access
1127: END IF;
1128: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1129: END IF;
1130:
1131: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1132: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1133: fnd_message.set_token('CONST_DETAILS', has_violation);
1134: return substrb((FND_MESSAGE.GET), 1, 2000);
1135: END IF;
1128: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1129: END IF;
1130:
1131: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1132: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1133: fnd_message.set_token('CONST_DETAILS', has_violation);
1134: return substrb((FND_MESSAGE.GET), 1, 2000);
1135: END IF;
1136:
1129: END IF;
1130:
1131: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1132: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1133: fnd_message.set_token('CONST_DETAILS', has_violation);
1134: return substrb((FND_MESSAGE.GET), 1, 2000);
1135: END IF;
1136:
1137: ELSIF 'RESPALL' = l_all_valid_constraints.type_code THEN
1130:
1131: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1132: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1133: fnd_message.set_token('CONST_DETAILS', has_violation);
1134: return substrb((FND_MESSAGE.GET), 1, 2000);
1135: END IF;
1136:
1137: ELSIF 'RESPALL' = l_all_valid_constraints.type_code THEN
1138: -- find the number of constraint entries(incompatible functions) by specified constraint_rev_id
1211: END IF;
1212: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1213: END IF;
1214:
1215: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1216: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1217: fnd_message.set_token('CONST_DETAILS', has_violation);
1218: return substrb((FND_MESSAGE.GET), 1, 2000);
1219: END IF; -- end of l_resp_access_count = 0
1212: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1213: END IF;
1214:
1215: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1216: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1217: fnd_message.set_token('CONST_DETAILS', has_violation);
1218: return substrb((FND_MESSAGE.GET), 1, 2000);
1219: END IF; -- end of l_resp_access_count = 0
1220: END IF; -- l_resp_access_count = l_constraint_entries_count
1213: END IF;
1214:
1215: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1216: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1217: fnd_message.set_token('CONST_DETAILS', has_violation);
1218: return substrb((FND_MESSAGE.GET), 1, 2000);
1219: END IF; -- end of l_resp_access_count = 0
1220: END IF; -- l_resp_access_count = l_constraint_entries_count
1221:
1214:
1215: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1216: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1217: fnd_message.set_token('CONST_DETAILS', has_violation);
1218: return substrb((FND_MESSAGE.GET), 1, 2000);
1219: END IF; -- end of l_resp_access_count = 0
1220: END IF; -- l_resp_access_count = l_constraint_entries_count
1221:
1222: ELSIF 'RESPME' = l_all_valid_constraints.type_code THEN
1281: END IF;
1282: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1283: END IF;
1284:
1285: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1286: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1287: fnd_message.set_token('CONST_DETAILS', has_violation);
1288:
1289:
1282: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1283: END IF;
1284:
1285: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1286: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1287: fnd_message.set_token('CONST_DETAILS', has_violation);
1288:
1289:
1290: IF( l_log_stmt_level >= l_curr_log_level ) THEN
1283: END IF;
1284:
1285: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1286: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1287: fnd_message.set_token('CONST_DETAILS', has_violation);
1288:
1289:
1290: IF( l_log_stmt_level >= l_curr_log_level ) THEN
1291: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'amw.plsql.PreventFormCustomization','User_Resp_Violation_Details End');
1290: IF( l_log_stmt_level >= l_curr_log_level ) THEN
1291: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, 'amw.plsql.PreventFormCustomization','User_Resp_Violation_Details End');
1292: END IF;
1293:
1294: return substrb((FND_MESSAGE.GET), 1, 2000);
1295: END IF; -- end of l_resp_access_count >= 2
1296:
1297:
1298: ELSIF 'RESPSET' = l_all_valid_constraints.type_code THEN
1346: END IF;
1347: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1348: END IF;
1349:
1350: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1351: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1352: fnd_message.set_token('CONST_DETAILS', has_violation);
1353: return substrb((FND_MESSAGE.GET), 1, 2000);
1354: END IF; -- end of l_resp_access_count >= 2
1347: has_violation := substrb((has_violation||l_violat_existing_menu), 1, 4000);
1348: END IF;
1349:
1350: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1351: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1352: fnd_message.set_token('CONST_DETAILS', has_violation);
1353: return substrb((FND_MESSAGE.GET), 1, 2000);
1354: END IF; -- end of l_resp_access_count >= 2
1355: ELSE
1348: END IF;
1349:
1350: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1351: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1352: fnd_message.set_token('CONST_DETAILS', has_violation);
1353: return substrb((FND_MESSAGE.GET), 1, 2000);
1354: END IF; -- end of l_resp_access_count >= 2
1355: ELSE
1356: -- other constraint types
1349:
1350: fnd_message.set_name('AMW', 'AMW_SOD_VIOLATION');
1351: fnd_message.set_token('CONSTRAINT', l_all_valid_constraints.constraint_name);
1352: fnd_message.set_token('CONST_DETAILS', has_violation);
1353: return substrb((FND_MESSAGE.GET), 1, 2000);
1354: END IF; -- end of l_resp_access_count >= 2
1355: ELSE
1356: -- other constraint types
1357: NULL;
1884: m_constraint_details VARCHAR2(4000);
1885: m_counter NUMBER;
1886: m_failed BOOLEAN;
1887: m_function_name VARCHAR2(240);
1888: --fnd.message returns up to 2000 bytes of message
1889: m_return_text VARCHAR2(2000);
1890:
1891:
1892: cursor CONSTRAINTS is
2031: -----------------------------------------------------------------------
2032:
2033: if m_failed = TRUE then
2034:
2035: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2036: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2037: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2038: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2039:
2032:
2033: if m_failed = TRUE then
2034:
2035: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2036: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2037: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2038: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2039:
2040: return m_return_text;
2033: if m_failed = TRUE then
2034:
2035: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2036: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2037: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2038: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2039:
2040: return m_return_text;
2041:
2034:
2035: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2036: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2037: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2038: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2039:
2040: return m_return_text;
2041:
2042: end if;
2071: g_group_code_list G_NUMBER_TABLE;
2072: m_constraint_details VARCHAR2(4000);
2073: m_failed BOOLEAN;
2074: m_function_name VARCHAR2(240);
2075: --fnd_message.get returns up to 2000 bytes of message
2076: m_return_text VARCHAR2(2000);
2077:
2078:
2079: cursor CONSTRAINTS is
2202: -----------------------------------------------------------------------
2203: -- If this constraint has been violated, return an appropriate message.
2204: -----------------------------------------------------------------------
2205: if m_failed = TRUE then
2206: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2207: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2208: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2209: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2210: return m_return_text;
2203: -- If this constraint has been violated, return an appropriate message.
2204: -----------------------------------------------------------------------
2205: if m_failed = TRUE then
2206: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2207: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2208: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2209: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2210: return m_return_text;
2211: end if;
2204: -----------------------------------------------------------------------
2205: if m_failed = TRUE then
2206: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2207: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2208: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2209: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2210: return m_return_text;
2211: end if;
2212:
2205: if m_failed = TRUE then
2206: FND_MESSAGE.SET_NAME('AMW', 'AMW_SOD_VIOLATION');
2207: FND_MESSAGE.SET_TOKEN('CONSTRAINT', constraint.CONSTRAINT_NAME);
2208: FND_MESSAGE.SET_TOKEN('CONST_DETAILS', m_constraint_details);
2209: m_return_text := substrb((FND_MESSAGE.GET), 1, 2000);
2210: return m_return_text;
2211: end if;
2212:
2213: end if; -- if g_constraint_function_id_list(i) = p_function_id