143: OPEN check_mc_ids_csr(l_pos_rec.mc_id, l_pos_rec.version_number,
144: l_pos_rec.position_key);
145: FETCH check_mc_ids_csr INTO l_junk;
146: IF (check_mc_ids_csr%NOTFOUND) THEN
147: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_NODE_INV');
148: FND_MESSAGE.Set_Token('MC_ID',l_pos_rec.mc_id);
149: FND_MESSAGE.Set_Token('VER',l_pos_rec.version_number);
150: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
151: FND_MSG_PUB.ADD;
144: l_pos_rec.position_key);
145: FETCH check_mc_ids_csr INTO l_junk;
146: IF (check_mc_ids_csr%NOTFOUND) THEN
147: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_NODE_INV');
148: FND_MESSAGE.Set_Token('MC_ID',l_pos_rec.mc_id);
149: FND_MESSAGE.Set_Token('VER',l_pos_rec.version_number);
150: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
151: FND_MSG_PUB.ADD;
152: END IF;
145: FETCH check_mc_ids_csr INTO l_junk;
146: IF (check_mc_ids_csr%NOTFOUND) THEN
147: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_NODE_INV');
148: FND_MESSAGE.Set_Token('MC_ID',l_pos_rec.mc_id);
149: FND_MESSAGE.Set_Token('VER',l_pos_rec.version_number);
150: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
151: FND_MSG_PUB.ADD;
152: END IF;
153: CLOSE check_mc_ids_csr;
146: IF (check_mc_ids_csr%NOTFOUND) THEN
147: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_NODE_INV');
148: FND_MESSAGE.Set_Token('MC_ID',l_pos_rec.mc_id);
149: FND_MESSAGE.Set_Token('VER',l_pos_rec.version_number);
150: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
151: FND_MSG_PUB.ADD;
152: END IF;
153: CLOSE check_mc_ids_csr;
154:
164: p_path_position_tbl(i+1).mc_id,
165: p_path_position_tbl(i+1).version_number);
166: FETCH check_mc_relationships_csr INTO l_junk;
167: IF (check_mc_relationships_csr%NOTFOUND) THEN
168: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_RELNSHIP_INV');
169: FND_MESSAGE.Set_Token('MC_ID',p_path_position_tbl(i+1).mc_id);
170: FND_MESSAGE.Set_Token('VER',p_path_position_tbl(i+1).version_number);
171: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
172: FND_MSG_PUB.ADD;
165: p_path_position_tbl(i+1).version_number);
166: FETCH check_mc_relationships_csr INTO l_junk;
167: IF (check_mc_relationships_csr%NOTFOUND) THEN
168: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_RELNSHIP_INV');
169: FND_MESSAGE.Set_Token('MC_ID',p_path_position_tbl(i+1).mc_id);
170: FND_MESSAGE.Set_Token('VER',p_path_position_tbl(i+1).version_number);
171: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
172: FND_MSG_PUB.ADD;
173: END IF;
166: FETCH check_mc_relationships_csr INTO l_junk;
167: IF (check_mc_relationships_csr%NOTFOUND) THEN
168: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_RELNSHIP_INV');
169: FND_MESSAGE.Set_Token('MC_ID',p_path_position_tbl(i+1).mc_id);
170: FND_MESSAGE.Set_Token('VER',p_path_position_tbl(i+1).version_number);
171: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
172: FND_MSG_PUB.ADD;
173: END IF;
174: CLOSE check_mc_relationships_csr;
167: IF (check_mc_relationships_csr%NOTFOUND) THEN
168: FND_MESSAGE.Set_Name('AHL','AHL_MC_PATH_RELNSHIP_INV');
169: FND_MESSAGE.Set_Token('MC_ID',p_path_position_tbl(i+1).mc_id);
170: FND_MESSAGE.Set_Token('VER',p_path_position_tbl(i+1).version_number);
171: FND_MESSAGE.Set_Token('POS_KEY',l_pos_rec.position_key);
172: FND_MSG_PUB.ADD;
173: END IF;
174: CLOSE check_mc_relationships_csr;
175: END IF;
187: p_position_ref_meaning,
188: l_position_ref_code,
189: l_return_val);
190: IF NOT(l_return_val) THEN
191: FND_MESSAGE.Set_Name('AHL','AHL_MC_POSREF_INVALID');
192: FND_MESSAGE.Set_Token('POSREF',p_position_ref_meaning);
193: FND_MSG_PUB.ADD;
194: END IF;
195: END IF;
188: l_position_ref_code,
189: l_return_val);
190: IF NOT(l_return_val) THEN
191: FND_MESSAGE.Set_Name('AHL','AHL_MC_POSREF_INVALID');
192: FND_MESSAGE.Set_Token('POSREF',p_position_ref_meaning);
193: FND_MSG_PUB.ADD;
194: END IF;
195: END IF;
196: ELSE
213: FETCH get_sibling_poskey_csr INTO l_path_tbl(l_path_tbl.LAST).position_key;
214: EXIT WHEN get_sibling_poskey_csr%NOTFOUND;
215: l_sib_pos_ref_code := get_posref_by_path(l_path_tbl, FND_API.G_TRUE);
216: IF (l_sib_pos_ref_code = l_position_ref_code) THEN
217: FND_MESSAGE.Set_Name('AHL','AHL_MC_POSREF_DUPLICATE');
218: FND_MESSAGE.Set_Token('POSREF',l_position_ref_code);
219: FND_MSG_PUB.ADD;
220: END IF;
221: END LOOP;
214: EXIT WHEN get_sibling_poskey_csr%NOTFOUND;
215: l_sib_pos_ref_code := get_posref_by_path(l_path_tbl, FND_API.G_TRUE);
216: IF (l_sib_pos_ref_code = l_position_ref_code) THEN
217: FND_MESSAGE.Set_Name('AHL','AHL_MC_POSREF_DUPLICATE');
218: FND_MESSAGE.Set_Token('POSREF',l_position_ref_code);
219: FND_MSG_PUB.ADD;
220: END IF;
221: END LOOP;
222: CLOSE get_sibling_poskey_csr;
1150: END IF;
1151:
1152: --Step 0) Validate that p_csi_item_instance is not null and valid
1153: IF (p_csi_item_instance_id IS NULL) THEN
1154: FND_MESSAGE.Set_Name('AHL','AHL_MC_POS_INSTANCE_ID_NULL');
1155: FND_MSG_PUB.ADD;
1156: RAISE FND_API.G_EXC_ERROR;
1157: END IF;
1158: --Validate that the input instance is a unit
1158: --Validate that the input instance is a unit
1159: OPEN check_instance_top_csr (p_csi_item_instance_id);
1160: FETCH check_instance_top_csr INTO l_dummy;
1161: IF (check_instance_top_csr%NOTFOUND) THEN
1162: FND_MESSAGE.Set_Name('AHL','AHL_MC_POS_INSTANCE_ID_INV');
1163: FND_MSG_PUB.ADD;
1164: RAISE FND_API.G_EXC_ERROR;
1165: END IF;
1166: CLOSE check_instance_top_csr;
1182: --Step 2) Traverse the table if there are multiple levels.
1183: -- Populate the lowest level instance id based on this query.
1184: --If table is less than 1 in size, this is invalid path
1185: IF (l_path_tbl.COUNT<1) THEN
1186: FND_MESSAGE.Set_Name('AHL','AHL_MC_POS_PATH_ID_INV');
1187: FND_MSG_PUB.ADD;
1188: RAISE FND_API.G_EXC_ERROR;
1189:
1190: --If there is only 1 row, then lowest level UC = p_csi_instance_id
1487: --Check Status of MC allows for editing
1488: OPEN check_mc_status_csr(p_to_mc_header_id);
1489: FETCH check_mc_status_csr INTO l_status_code, l_status;
1490: IF (check_mc_status_csr%NOTFOUND) THEN
1491: FND_MESSAGE.Set_Name('AHL','AHL_UC_MC_HEADER_ID_INVALID');
1492: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_to_mc_header_id);
1493: FND_MSG_PUB.ADD;
1494: CLOSE check_mc_status_csr;
1495: RAISE FND_API.G_EXC_ERROR;
1488: OPEN check_mc_status_csr(p_to_mc_header_id);
1489: FETCH check_mc_status_csr INTO l_status_code, l_status;
1490: IF (check_mc_status_csr%NOTFOUND) THEN
1491: FND_MESSAGE.Set_Name('AHL','AHL_UC_MC_HEADER_ID_INVALID');
1492: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_to_mc_header_id);
1493: FND_MSG_PUB.ADD;
1494: CLOSE check_mc_status_csr;
1495: RAISE FND_API.G_EXC_ERROR;
1496: ELSIF ( l_status_code <> 'DRAFT' AND
1494: CLOSE check_mc_status_csr;
1495: RAISE FND_API.G_EXC_ERROR;
1496: ELSIF ( l_status_code <> 'DRAFT' AND
1497: l_status_code <> 'APPROVAL_REJECTED') THEN
1498: FND_MESSAGE.Set_Name('AHL','AHL_MC_EDIT_INV_MC');
1499: FND_MESSAGE.Set_Token('STATUS', l_status);
1500: FND_MSG_PUB.ADD;
1501: CLOSE check_mc_status_csr;
1502: RAISE FND_API.G_EXC_ERROR;
1495: RAISE FND_API.G_EXC_ERROR;
1496: ELSIF ( l_status_code <> 'DRAFT' AND
1497: l_status_code <> 'APPROVAL_REJECTED') THEN
1498: FND_MESSAGE.Set_Name('AHL','AHL_MC_EDIT_INV_MC');
1499: FND_MESSAGE.Set_Token('STATUS', l_status);
1500: FND_MSG_PUB.ADD;
1501: CLOSE check_mc_status_csr;
1502: RAISE FND_API.G_EXC_ERROR;
1503: END IF;
1680: --Fetch the to mc_header_id information
1681: OPEN get_mc_id_ver_csr(p_to_mc_header_id);
1682: FETCH get_mc_id_ver_csr INTO l_mc_id, l_version_number;
1683: IF (get_mc_id_ver_csr%NOTFOUND) THEN
1684: FND_MESSAGE.Set_Name('AHL','AHL_MC_HEADER_ID_INVALID');
1685: FND_MESSAGE.Set_Token('NAME','');
1686: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_to_mc_header_id);
1687: FND_MSG_PUB.ADD;
1688: CLOSE get_mc_id_ver_csr;
1681: OPEN get_mc_id_ver_csr(p_to_mc_header_id);
1682: FETCH get_mc_id_ver_csr INTO l_mc_id, l_version_number;
1683: IF (get_mc_id_ver_csr%NOTFOUND) THEN
1684: FND_MESSAGE.Set_Name('AHL','AHL_MC_HEADER_ID_INVALID');
1685: FND_MESSAGE.Set_Token('NAME','');
1686: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_to_mc_header_id);
1687: FND_MSG_PUB.ADD;
1688: CLOSE get_mc_id_ver_csr;
1689: RAISE FND_API.G_EXC_ERROR;
1682: FETCH get_mc_id_ver_csr INTO l_mc_id, l_version_number;
1683: IF (get_mc_id_ver_csr%NOTFOUND) THEN
1684: FND_MESSAGE.Set_Name('AHL','AHL_MC_HEADER_ID_INVALID');
1685: FND_MESSAGE.Set_Token('NAME','');
1686: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_to_mc_header_id);
1687: FND_MSG_PUB.ADD;
1688: CLOSE get_mc_id_ver_csr;
1689: RAISE FND_API.G_EXC_ERROR;
1690: END IF;
1907: --Check Status of MC allows for editing
1908: OPEN check_mc_status_csr(p_mc_header_id);
1909: FETCH check_mc_status_csr INTO l_status_code, l_status;
1910: IF (check_mc_status_csr%NOTFOUND) THEN
1911: FND_MESSAGE.Set_Name('AHL','AHL_MC_HEADER_ID_INVALID');
1912: FND_MESSAGE.Set_Token('NAME','');
1913: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_mc_header_id);
1914: FND_MSG_PUB.ADD;
1915: CLOSE check_mc_status_csr;
1908: OPEN check_mc_status_csr(p_mc_header_id);
1909: FETCH check_mc_status_csr INTO l_status_code, l_status;
1910: IF (check_mc_status_csr%NOTFOUND) THEN
1911: FND_MESSAGE.Set_Name('AHL','AHL_MC_HEADER_ID_INVALID');
1912: FND_MESSAGE.Set_Token('NAME','');
1913: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_mc_header_id);
1914: FND_MSG_PUB.ADD;
1915: CLOSE check_mc_status_csr;
1916: RAISE FND_API.G_EXC_ERROR;
1909: FETCH check_mc_status_csr INTO l_status_code, l_status;
1910: IF (check_mc_status_csr%NOTFOUND) THEN
1911: FND_MESSAGE.Set_Name('AHL','AHL_MC_HEADER_ID_INVALID');
1912: FND_MESSAGE.Set_Token('NAME','');
1913: FND_MESSAGE.Set_Token('MC_HEADER_ID',p_mc_header_id);
1914: FND_MSG_PUB.ADD;
1915: CLOSE check_mc_status_csr;
1916: RAISE FND_API.G_EXC_ERROR;
1917: ELSIF ( l_status_code <> 'DRAFT' AND
1915: CLOSE check_mc_status_csr;
1916: RAISE FND_API.G_EXC_ERROR;
1917: ELSIF ( l_status_code <> 'DRAFT' AND
1918: l_status_code <> 'APPROVAL_REJECTED') THEN
1919: FND_MESSAGE.Set_Name('AHL','AHL_MC_EDIT_INV_MC');
1920: FND_MESSAGE.Set_Token('STATUS', l_status);
1921: FND_MSG_PUB.ADD;
1922: CLOSE check_mc_status_csr;
1923: RAISE FND_API.G_EXC_ERROR;
1916: RAISE FND_API.G_EXC_ERROR;
1917: ELSIF ( l_status_code <> 'DRAFT' AND
1918: l_status_code <> 'APPROVAL_REJECTED') THEN
1919: FND_MESSAGE.Set_Name('AHL','AHL_MC_EDIT_INV_MC');
1920: FND_MESSAGE.Set_Token('STATUS', l_status);
1921: FND_MSG_PUB.ADD;
1922: CLOSE check_mc_status_csr;
1923: RAISE FND_API.G_EXC_ERROR;
1924: END IF;