24: -- End of Comments.
25:
26: PROCEDURE Create_Position_ID (
27: p_api_version IN NUMBER,
28: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
29: p_commit IN VARCHAR2 := FND_API.G_FALSE,
30: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
31: x_return_status OUT NOCOPY VARCHAR2,
32: x_msg_count OUT NOCOPY NUMBER,
25:
26: PROCEDURE Create_Position_ID (
27: p_api_version IN NUMBER,
28: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
29: p_commit IN VARCHAR2 := FND_API.G_FALSE,
30: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
31: x_return_status OUT NOCOPY VARCHAR2,
32: x_msg_count OUT NOCOPY NUMBER,
33: x_msg_data OUT NOCOPY VARCHAR2,
26: PROCEDURE Create_Position_ID (
27: p_api_version IN NUMBER,
28: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
29: p_commit IN VARCHAR2 := FND_API.G_FALSE,
30: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
31: x_return_status OUT NOCOPY VARCHAR2,
32: x_msg_count OUT NOCOPY NUMBER,
33: x_msg_data OUT NOCOPY VARCHAR2,
34: p_path_position_tbl IN AHL_MC_PATH_POSITION_PVT.Path_Position_Tbl_Type,
115: -- Standard start of API savepoint
116: SAVEPOINT Create_Position_ID_pvt;
117:
118: -- Initialize Procedure return status to success
119: x_return_status := FND_API.G_RET_STS_SUCCESS;
120: -- Standard call to check for call compatibility
121: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
122: G_PKG_NAME) THEN
123: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
117:
118: -- Initialize Procedure return status to success
119: x_return_status := FND_API.G_RET_STS_SUCCESS;
120: -- Standard call to check for call compatibility
121: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
122: G_PKG_NAME) THEN
123: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
124: END IF;
125:
119: x_return_status := FND_API.G_RET_STS_SUCCESS;
120: -- Standard call to check for call compatibility
121: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
122: G_PKG_NAME) THEN
123: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
124: END IF;
125:
126: -- Initialize message list if p_init_msg_list is set to TRUE
127: IF FND_API.To_Boolean(p_init_msg_list) THEN
123: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
124: END IF;
125:
126: -- Initialize message list if p_init_msg_list is set to TRUE
127: IF FND_API.To_Boolean(p_init_msg_list) THEN
128: FND_MSG_PUB.Initialize;
129: END IF;
130:
131: --initialize ver spec score;
176:
177: END LOOP;
178:
179: --Convert the position ref meaning only if position ref code is undefined.
180: IF (p_position_ref_code = FND_API.G_MISS_CHAR) THEN
181: IF (p_position_ref_meaning = FND_API.G_MISS_CHAR) THEN
182: l_position_ref_code := NULL;
183: ELSIF (p_position_ref_meaning IS NULL) THEN
184: l_position_ref_code := NULL;
177: END LOOP;
178:
179: --Convert the position ref meaning only if position ref code is undefined.
180: IF (p_position_ref_code = FND_API.G_MISS_CHAR) THEN
181: IF (p_position_ref_meaning = FND_API.G_MISS_CHAR) THEN
182: l_position_ref_code := NULL;
183: ELSIF (p_position_ref_meaning IS NULL) THEN
184: l_position_ref_code := NULL;
185: ELSIF (p_position_ref_meaning <> FND_API.G_MISS_CHAR) THEN
181: IF (p_position_ref_meaning = FND_API.G_MISS_CHAR) THEN
182: l_position_ref_code := NULL;
183: ELSIF (p_position_ref_meaning IS NULL) THEN
184: l_position_ref_code := NULL;
185: ELSIF (p_position_ref_meaning <> FND_API.G_MISS_CHAR) THEN
186: AHL_UTIL_MC_PKG.Convert_To_LookupCode('AHL_POSITION_REFERENCE',
187: p_position_ref_meaning,
188: l_position_ref_code,
189: l_return_val);
199:
200: -- Check Error Message stack.
201: l_msg_count := FND_MSG_PUB.count_msg;
202: IF l_msg_count > 0 THEN
203: RAISE FND_API.G_EXC_ERROR;
204: END IF;
205:
206: --Convert to find all same level paths
207: IF (l_position_ref_code <> FND_API.G_MISS_CHAR AND
203: RAISE FND_API.G_EXC_ERROR;
204: END IF;
205:
206: --Convert to find all same level paths
207: IF (l_position_ref_code <> FND_API.G_MISS_CHAR AND
208: l_position_ref_code IS NOT NULL) THEN
209: l_poskey := l_path_tbl(l_path_tbl.LAST).position_key;
210: OPEN get_sibling_poskey_csr(l_path_tbl(l_path_tbl.LAST).mc_id,
211: l_poskey);
211: l_poskey);
212: LOOP
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;
224:
225: -- Check Error Message stack.
226: l_msg_count := FND_MSG_PUB.count_msg;
227: IF l_msg_count > 0 THEN
228: RAISE FND_API.G_EXC_ERROR;
229: END IF;
230:
231: --Encode the path_position_tbl
232: l_encoded_path := Encode(p_path_position_tbl);
242: * Update only if the new pos ref code is not null and the existing value is
243: * null.
244: */
245: /*
246: IF (l_position_ref_code <> FND_API.G_MISS_CHAR OR
247: l_position_ref_code IS NULL) THEN
248: */
249: IF (l_position_ref_code IS NOT NULL) THEN
250: UPDATE ahl_mc_path_positions SET
384: END IF;
385: CLOSE get_position_id_csr;
386:
387: -- Standard check of p_commit
388: IF FND_API.TO_BOOLEAN(p_commit) THEN
389: COMMIT WORK;
390: END IF;
391: -- Standard call to get message count and if count is 1, get message info
392: FND_MSG_PUB.Count_And_Get
391: -- Standard call to get message count and if count is 1, get message info
392: FND_MSG_PUB.Count_And_Get
393: ( p_count => x_msg_count,
394: p_data => x_msg_data,
395: p_encoded => fnd_api.g_false
396: );
397: EXCEPTION
398: WHEN FND_API.G_EXC_ERROR THEN
399: Rollback to Create_Position_ID_pvt;
394: p_data => x_msg_data,
395: p_encoded => fnd_api.g_false
396: );
397: EXCEPTION
398: WHEN FND_API.G_EXC_ERROR THEN
399: Rollback to Create_Position_ID_pvt;
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
396: );
397: EXCEPTION
398: WHEN FND_API.G_EXC_ERROR THEN
399: Rollback to Create_Position_ID_pvt;
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
399: Rollback to Create_Position_ID_pvt;
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: Rollback to Create_Position_ID_pvt;
406: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
407: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
400: x_return_status := FND_API.G_RET_STS_ERROR;
401: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: Rollback to Create_Position_ID_pvt;
406: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
407: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
408: p_data => x_msg_data,
402: p_data => x_msg_data,
403: p_encoded => fnd_api.g_false);
404: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
405: Rollback to Create_Position_ID_pvt;
406: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
407: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
408: p_data => x_msg_data,
409: p_encoded => fnd_api.g_false);
410: WHEN OTHERS THEN
405: Rollback to Create_Position_ID_pvt;
406: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
407: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
408: p_data => x_msg_data,
409: p_encoded => fnd_api.g_false);
410: WHEN OTHERS THEN
411: Rollback to Create_Position_ID_pvt;
412: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
413: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
408: p_data => x_msg_data,
409: p_encoded => fnd_api.g_false);
410: WHEN OTHERS THEN
411: Rollback to Create_Position_ID_pvt;
412: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
413: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
414: p_procedure_name => l_api_name,
415: p_error_text => SQLERRM);
416: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
414: p_procedure_name => l_api_name,
415: p_error_text => SQLERRM);
416: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
417: p_data => x_msg_data,
418: p_encoded => fnd_api.g_false);
419:
420: END Create_Position_ID;
421:
422: -----------------------------
434: -- End of Comments.
435:
436: PROCEDURE Map_Instance_To_Positions (
437: p_api_version IN NUMBER,
438: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
439: p_commit IN VARCHAR2 := FND_API.G_FALSE,
440: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
441: x_return_status OUT NOCOPY VARCHAR2,
442: x_msg_count OUT NOCOPY NUMBER,
435:
436: PROCEDURE Map_Instance_To_Positions (
437: p_api_version IN NUMBER,
438: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
439: p_commit IN VARCHAR2 := FND_API.G_FALSE,
440: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
441: x_return_status OUT NOCOPY VARCHAR2,
442: x_msg_count OUT NOCOPY NUMBER,
443: x_msg_data OUT NOCOPY VARCHAR2,
436: PROCEDURE Map_Instance_To_Positions (
437: p_api_version IN NUMBER,
438: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
439: p_commit IN VARCHAR2 := FND_API.G_FALSE,
440: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
441: x_return_status OUT NOCOPY VARCHAR2,
442: x_msg_count OUT NOCOPY NUMBER,
443: x_msg_data OUT NOCOPY VARCHAR2,
444: p_csi_item_instance_id IN NUMBER)
537: -- Standard start of API savepoint
538: SAVEPOINT Map_Instance_To_Positions_pvt;
539:
540: -- Initialize Procedure return status to success
541: x_return_status := FND_API.G_RET_STS_SUCCESS;
542: -- Standard call to check for call compatibility
543: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
544: G_PKG_NAME) THEN
545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
539:
540: -- Initialize Procedure return status to success
541: x_return_status := FND_API.G_RET_STS_SUCCESS;
542: -- Standard call to check for call compatibility
543: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
544: G_PKG_NAME) THEN
545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
546: END IF;
547:
541: x_return_status := FND_API.G_RET_STS_SUCCESS;
542: -- Standard call to check for call compatibility
543: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
544: G_PKG_NAME) THEN
545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
546: END IF;
547:
548: -- Initialize message list if p_init_msg_list is set to TRUE
549: IF FND_API.To_Boolean(p_init_msg_list) THEN
545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
546: END IF;
547:
548: -- Initialize message list if p_init_msg_list is set to TRUE
549: IF FND_API.To_Boolean(p_init_msg_list) THEN
550: FND_MSG_PUB.Initialize;
551: END IF;
552:
553: --Fetch the position informations for the instance
664: -- Standard call to get message count and if count is 1, get message info
665: FND_MSG_PUB.Count_And_Get
666: ( p_count => x_msg_count,
667: p_data => x_msg_data,
668: p_encoded => fnd_api.g_false
669: );
670: EXCEPTION
671: WHEN FND_API.G_EXC_ERROR THEN
672: Rollback to Map_Instance_To_Positions_pvt;
667: p_data => x_msg_data,
668: p_encoded => fnd_api.g_false
669: );
670: EXCEPTION
671: WHEN FND_API.G_EXC_ERROR THEN
672: Rollback to Map_Instance_To_Positions_pvt;
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
675: p_data => x_msg_data,
669: );
670: EXCEPTION
671: WHEN FND_API.G_EXC_ERROR THEN
672: Rollback to Map_Instance_To_Positions_pvt;
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
675: p_data => x_msg_data,
676: p_encoded => fnd_api.g_false);
677: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
672: Rollback to Map_Instance_To_Positions_pvt;
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
675: p_data => x_msg_data,
676: p_encoded => fnd_api.g_false);
677: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
678: Rollback to Map_Instance_To_Positions_pvt;
679: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
680: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
675: p_data => x_msg_data,
676: p_encoded => fnd_api.g_false);
677: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
678: Rollback to Map_Instance_To_Positions_pvt;
679: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
680: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
681: p_data => x_msg_data,
675: p_data => x_msg_data,
676: p_encoded => fnd_api.g_false);
677: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
678: Rollback to Map_Instance_To_Positions_pvt;
679: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
680: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
681: p_data => x_msg_data,
682: p_encoded => fnd_api.g_false);
683: WHEN OTHERS THEN
678: Rollback to Map_Instance_To_Positions_pvt;
679: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
680: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
681: p_data => x_msg_data,
682: p_encoded => fnd_api.g_false);
683: WHEN OTHERS THEN
684: Rollback to Map_Instance_To_Positions_pvt;
685: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
686: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
681: p_data => x_msg_data,
682: p_encoded => fnd_api.g_false);
683: WHEN OTHERS THEN
684: Rollback to Map_Instance_To_Positions_pvt;
685: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
686: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
687: p_procedure_name => l_api_name,
688: p_error_text => SQLERRM);
689: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
687: p_procedure_name => l_api_name,
688: p_error_text => SQLERRM);
689: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
690: p_data => x_msg_data,
691: p_encoded => fnd_api.g_false);
692: END Map_Instance_To_Positions;
693:
694:
695: -----------------------------
707: -- End of Comments.
708:
709: PROCEDURE Map_Position_To_Instances (
710: p_api_version IN NUMBER,
711: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
712: p_commit IN VARCHAR2 := FND_API.G_FALSE,
713: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
714: x_return_status OUT NOCOPY VARCHAR2,
715: x_msg_count OUT NOCOPY NUMBER,
708:
709: PROCEDURE Map_Position_To_Instances (
710: p_api_version IN NUMBER,
711: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
712: p_commit IN VARCHAR2 := FND_API.G_FALSE,
713: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
714: x_return_status OUT NOCOPY VARCHAR2,
715: x_msg_count OUT NOCOPY NUMBER,
716: x_msg_data OUT NOCOPY VARCHAR2,
709: PROCEDURE Map_Position_To_Instances (
710: p_api_version IN NUMBER,
711: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
712: p_commit IN VARCHAR2 := FND_API.G_FALSE,
713: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
714: x_return_status OUT NOCOPY VARCHAR2,
715: x_msg_count OUT NOCOPY NUMBER,
716: x_msg_data OUT NOCOPY VARCHAR2,
717: p_position_id IN NUMBER)
763: -- Standard start of API savepoint
764: SAVEPOINT map_position_to_instances_pvt;
765:
766: -- Initialize Procedure return status to success
767: x_return_status := FND_API.G_RET_STS_SUCCESS;
768: -- Standard call to check for call compatibility
769: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
770: G_PKG_NAME) THEN
771: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
765:
766: -- Initialize Procedure return status to success
767: x_return_status := FND_API.G_RET_STS_SUCCESS;
768: -- Standard call to check for call compatibility
769: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
770: G_PKG_NAME) THEN
771: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
772: END IF;
773:
767: x_return_status := FND_API.G_RET_STS_SUCCESS;
768: -- Standard call to check for call compatibility
769: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
770: G_PKG_NAME) THEN
771: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
772: END IF;
773:
774: -- Initialize message list if p_init_msg_list is set to TRUE
775: IF FND_API.To_Boolean(p_init_msg_list) THEN
771: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
772: END IF;
773:
774: -- Initialize message list if p_init_msg_list is set to TRUE
775: IF FND_API.To_Boolean(p_init_msg_list) THEN
776: FND_MSG_PUB.Initialize;
777: END IF;
778:
779: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
922:
923: DBMS_SQL.CLOSE_CURSOR(v_CursorID);
924:
925: -- Standard check of p_commit
926: IF FND_API.TO_BOOLEAN(p_commit) THEN
927: COMMIT WORK;
928: END IF;
929:
930: -- Standard call to get message count and if count is 1, get message info
930: -- Standard call to get message count and if count is 1, get message info
931: FND_MSG_PUB.Count_And_Get
932: ( p_count => x_msg_count,
933: p_data => x_msg_data,
934: p_encoded => fnd_api.g_false
935: );
936:
937: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
938: fnd_log.string(fnd_log.level_procedure,L_FULL_NAME||'.end','At the end of PLSQL procedure');
938: fnd_log.string(fnd_log.level_procedure,L_FULL_NAME||'.end','At the end of PLSQL procedure');
939: END IF;
940:
941: EXCEPTION
942: WHEN FND_API.G_EXC_ERROR THEN
943: Rollback to map_position_to_instances_pvt;
944: x_return_status := FND_API.G_RET_STS_ERROR;
945: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
946: p_data => x_msg_data,
940:
941: EXCEPTION
942: WHEN FND_API.G_EXC_ERROR THEN
943: Rollback to map_position_to_instances_pvt;
944: x_return_status := FND_API.G_RET_STS_ERROR;
945: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
946: p_data => x_msg_data,
947: p_encoded => fnd_api.g_false);
948: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
943: Rollback to map_position_to_instances_pvt;
944: x_return_status := FND_API.G_RET_STS_ERROR;
945: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
946: p_data => x_msg_data,
947: p_encoded => fnd_api.g_false);
948: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
949: Rollback to map_position_to_instances_pvt;
950: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
951: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
944: x_return_status := FND_API.G_RET_STS_ERROR;
945: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
946: p_data => x_msg_data,
947: p_encoded => fnd_api.g_false);
948: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
949: Rollback to map_position_to_instances_pvt;
950: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
951: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
952: p_data => x_msg_data,
946: p_data => x_msg_data,
947: p_encoded => fnd_api.g_false);
948: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
949: Rollback to map_position_to_instances_pvt;
950: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
951: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
952: p_data => x_msg_data,
953: p_encoded => fnd_api.g_false);
954: WHEN OTHERS THEN
949: Rollback to map_position_to_instances_pvt;
950: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
951: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
952: p_data => x_msg_data,
953: p_encoded => fnd_api.g_false);
954: WHEN OTHERS THEN
955: Rollback to map_position_to_instances_pvt;
956: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
957: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
952: p_data => x_msg_data,
953: p_encoded => fnd_api.g_false);
954: WHEN OTHERS THEN
955: Rollback to map_position_to_instances_pvt;
956: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
957: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
958: p_procedure_name => l_api_name,
959: p_error_text => SQLERRM);
960: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
958: p_procedure_name => l_api_name,
959: p_error_text => SQLERRM);
960: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
961: p_data => x_msg_data,
962: p_encoded => fnd_api.g_false);
963: END Map_Position_To_Instances;
964:
965: -----------------------------
966: -- Start of Comments --
983: -- End of Comments.
984:
985: PROCEDURE Get_Pos_Instance (
986: p_api_version IN NUMBER,
987: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
988: p_commit IN VARCHAR2 := FND_API.G_FALSE,
989: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
990: x_return_status OUT NOCOPY VARCHAR2,
991: x_msg_count OUT NOCOPY NUMBER,
984:
985: PROCEDURE Get_Pos_Instance (
986: p_api_version IN NUMBER,
987: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
988: p_commit IN VARCHAR2 := FND_API.G_FALSE,
989: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
990: x_return_status OUT NOCOPY VARCHAR2,
991: x_msg_count OUT NOCOPY NUMBER,
992: x_msg_data OUT NOCOPY VARCHAR2,
985: PROCEDURE Get_Pos_Instance (
986: p_api_version IN NUMBER,
987: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
988: p_commit IN VARCHAR2 := FND_API.G_FALSE,
989: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
990: x_return_status OUT NOCOPY VARCHAR2,
991: x_msg_count OUT NOCOPY NUMBER,
992: x_msg_data OUT NOCOPY VARCHAR2,
993: p_position_id IN NUMBER,
1134: fnd_log.string(fnd_log.level_procedure, l_full_name||'.begin', 'At the start of PLSQL procedure. p_csi_item_instance_id = ' || p_csi_item_instance_id ||
1135: ', p_position_id = ' || p_position_id);
1136: END IF;
1137: -- Initialize Procedure return status to success
1138: x_return_status := FND_API.G_RET_STS_SUCCESS;
1139: x_mapping_status := 'NULL';
1140:
1141: -- Standard call to check for call compatibility
1142: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1138: x_return_status := FND_API.G_RET_STS_SUCCESS;
1139: x_mapping_status := 'NULL';
1140:
1141: -- Standard call to check for call compatibility
1142: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1143: G_PKG_NAME) THEN
1144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1145: END IF;
1146:
1140:
1141: -- Standard call to check for call compatibility
1142: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1143: G_PKG_NAME) THEN
1144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1145: END IF;
1146:
1147: -- Initialize message list if p_init_msg_list is set to TRUE
1148: IF FND_API.To_Boolean(p_init_msg_list) THEN
1144: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1145: END IF;
1146:
1147: -- Initialize message list if p_init_msg_list is set to TRUE
1148: IF FND_API.To_Boolean(p_init_msg_list) THEN
1149: FND_MSG_PUB.Initialize;
1150: END IF;
1151:
1152: --Step 0) Validate that p_csi_item_instance is not null and valid
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
1159: OPEN check_instance_top_csr (p_csi_item_instance_id);
1160: FETCH check_instance_top_csr INTO l_dummy;
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;
1167:
1168: --Step 1) Build the path position table object based on path position id
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
1191: ELSIF (l_path_tbl.COUNT =1) THEN
1192: OPEN check_top_mc_csr ( p_csi_item_instance_id,
1309: -- Standard call to get message count and if count is 1, get message info
1310: FND_MSG_PUB.Count_And_Get
1311: ( p_count => x_msg_count,
1312: p_data => x_msg_data,
1313: p_encoded => fnd_api.g_false
1314: );
1315: EXCEPTION
1316: WHEN FND_API.G_EXC_ERROR THEN
1317: Rollback to Get_Pos_Empty_Instance_pvt;
1312: p_data => x_msg_data,
1313: p_encoded => fnd_api.g_false
1314: );
1315: EXCEPTION
1316: WHEN FND_API.G_EXC_ERROR THEN
1317: Rollback to Get_Pos_Empty_Instance_pvt;
1318: x_return_status := FND_API.G_RET_STS_ERROR;
1319: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1320: p_data => x_msg_data,
1314: );
1315: EXCEPTION
1316: WHEN FND_API.G_EXC_ERROR THEN
1317: Rollback to Get_Pos_Empty_Instance_pvt;
1318: x_return_status := FND_API.G_RET_STS_ERROR;
1319: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1320: p_data => x_msg_data,
1321: p_encoded => fnd_api.g_false);
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1317: Rollback to Get_Pos_Empty_Instance_pvt;
1318: x_return_status := FND_API.G_RET_STS_ERROR;
1319: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1320: p_data => x_msg_data,
1321: p_encoded => fnd_api.g_false);
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: Rollback to Get_Pos_Empty_Instance_pvt;
1324: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1325: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1318: x_return_status := FND_API.G_RET_STS_ERROR;
1319: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1320: p_data => x_msg_data,
1321: p_encoded => fnd_api.g_false);
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: Rollback to Get_Pos_Empty_Instance_pvt;
1324: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1325: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1326: p_data => x_msg_data,
1320: p_data => x_msg_data,
1321: p_encoded => fnd_api.g_false);
1322: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1323: Rollback to Get_Pos_Empty_Instance_pvt;
1324: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1325: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1326: p_data => x_msg_data,
1327: p_encoded => fnd_api.g_false);
1328: WHEN OTHERS THEN
1323: Rollback to Get_Pos_Empty_Instance_pvt;
1324: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1325: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1326: p_data => x_msg_data,
1327: p_encoded => fnd_api.g_false);
1328: WHEN OTHERS THEN
1329: Rollback to Get_Pos_Empty_Instance_pvt;
1330: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1331: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1326: p_data => x_msg_data,
1327: p_encoded => fnd_api.g_false);
1328: WHEN OTHERS THEN
1329: Rollback to Get_Pos_Empty_Instance_pvt;
1330: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1331: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1332: p_procedure_name => l_api_name,
1333: p_error_text => SQLERRM);
1334: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1332: p_procedure_name => l_api_name,
1333: p_error_text => SQLERRM);
1334: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1335: p_data => x_msg_data,
1336: p_encoded => fnd_api.g_false);
1337: END Get_Pos_Instance;
1338:
1339: ----------------------------
1340: -- Start of Comments --
1355: -- End of Comments.
1356:
1357: PROCEDURE Get_Pos_Instance (
1358: p_api_version IN NUMBER,
1359: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1360: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1361: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1362: x_return_status OUT NOCOPY VARCHAR2,
1363: x_msg_count OUT NOCOPY NUMBER,
1356:
1357: PROCEDURE Get_Pos_Instance (
1358: p_api_version IN NUMBER,
1359: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1360: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1361: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1362: x_return_status OUT NOCOPY VARCHAR2,
1363: x_msg_count OUT NOCOPY NUMBER,
1364: x_msg_data OUT NOCOPY VARCHAR2,
1357: PROCEDURE Get_Pos_Instance (
1358: p_api_version IN NUMBER,
1359: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1360: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1361: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1362: x_return_status OUT NOCOPY VARCHAR2,
1363: x_msg_count OUT NOCOPY NUMBER,
1364: x_msg_data OUT NOCOPY VARCHAR2,
1365: p_position_id IN NUMBER,
1420: -- End of Comments.
1421:
1422: PROCEDURE Copy_Positions_For_MC (
1423: p_api_version IN NUMBER,
1424: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1425: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1426: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1427: x_return_status OUT NOCOPY VARCHAR2,
1428: x_msg_count OUT NOCOPY NUMBER,
1421:
1422: PROCEDURE Copy_Positions_For_MC (
1423: p_api_version IN NUMBER,
1424: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1425: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1426: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1427: x_return_status OUT NOCOPY VARCHAR2,
1428: x_msg_count OUT NOCOPY NUMBER,
1429: x_msg_data OUT NOCOPY VARCHAR2,
1422: PROCEDURE Copy_Positions_For_MC (
1423: p_api_version IN NUMBER,
1424: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1425: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1426: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1427: x_return_status OUT NOCOPY VARCHAR2,
1428: x_msg_count OUT NOCOPY NUMBER,
1429: x_msg_data OUT NOCOPY VARCHAR2,
1430: p_from_mc_header_id IN NUMBER,
1471: -- Standard start of API savepoint
1472: SAVEPOINT Copy_Positions_For_Mc_pvt;
1473:
1474: -- Initialize Procedure return status to success
1475: x_return_status := FND_API.G_RET_STS_SUCCESS;
1476: -- Standard call to check for call compatibility
1477: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1478: G_PKG_NAME) THEN
1479: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1473:
1474: -- Initialize Procedure return status to success
1475: x_return_status := FND_API.G_RET_STS_SUCCESS;
1476: -- Standard call to check for call compatibility
1477: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1478: G_PKG_NAME) THEN
1479: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1480: END IF;
1481:
1475: x_return_status := FND_API.G_RET_STS_SUCCESS;
1476: -- Standard call to check for call compatibility
1477: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1478: G_PKG_NAME) THEN
1479: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1480: END IF;
1481:
1482: -- Initialize message list if p_init_msg_list is set to TRUE
1483: IF FND_API.To_Boolean(p_init_msg_list) THEN
1479: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1480: END IF;
1481:
1482: -- Initialize message list if p_init_msg_list is set to TRUE
1483: IF FND_API.To_Boolean(p_init_msg_list) THEN
1484: FND_MSG_PUB.Initialize;
1485: END IF;
1486:
1487: --Check Status of MC allows for editing
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
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);
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;
1504: CLOSE check_mc_status_csr;
1505:
1506: --Copy all version specific paths
1510: EXIT WHEN get_ver_position_ids_csr%NOTFOUND;
1511:
1512: Copy_Position (
1513: p_api_version => 1.0,
1514: p_commit => FND_API.G_FALSE,
1515: p_position_id => l_position_id,
1516: p_to_mc_header_id => p_to_mc_header_id,
1517: x_position_id => l_new_position_id,
1518: x_return_status => x_return_status,
1518: x_return_status => x_return_status,
1519: x_msg_count => x_msg_count,
1520: x_msg_data => x_msg_data);
1521: -- Check return status.
1522: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1523: RAISE FND_API.G_EXC_ERROR;
1524: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1525: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1526: END IF;
1519: x_msg_count => x_msg_count,
1520: x_msg_data => x_msg_data);
1521: -- Check return status.
1522: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1523: RAISE FND_API.G_EXC_ERROR;
1524: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1525: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1526: END IF;
1527: END LOOP;
1520: x_msg_data => x_msg_data);
1521: -- Check return status.
1522: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1523: RAISE FND_API.G_EXC_ERROR;
1524: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1525: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1526: END IF;
1527: END LOOP;
1528: CLOSE get_ver_position_ids_csr;
1521: -- Check return status.
1522: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1523: RAISE FND_API.G_EXC_ERROR;
1524: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1525: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1526: END IF;
1527: END LOOP;
1528: CLOSE get_ver_position_ids_csr;
1529:
1543: EXIT WHEN get_nover_position_ids_csr%NOTFOUND;
1544:
1545: Copy_Position (
1546: p_api_version => 1.0,
1547: p_commit => FND_API.G_FALSE,
1548: p_position_id => l_position_id,
1549: p_to_mc_header_id => p_to_mc_header_id,
1550: x_position_id => l_new_position_id,
1551: x_return_status => x_return_status,
1551: x_return_status => x_return_status,
1552: x_msg_count => x_msg_count,
1553: x_msg_data => x_msg_data);
1554: -- Check return status.
1555: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1556: RAISE FND_API.G_EXC_ERROR;
1557: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1558: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1559: END IF;
1552: x_msg_count => x_msg_count,
1553: x_msg_data => x_msg_data);
1554: -- Check return status.
1555: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1556: RAISE FND_API.G_EXC_ERROR;
1557: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1558: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1559: END IF;
1560: END LOOP;
1553: x_msg_data => x_msg_data);
1554: -- Check return status.
1555: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1556: RAISE FND_API.G_EXC_ERROR;
1557: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1558: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1559: END IF;
1560: END LOOP;
1561: CLOSE get_nover_position_ids_csr;
1554: -- Check return status.
1555: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1556: RAISE FND_API.G_EXC_ERROR;
1557: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1558: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1559: END IF;
1560: END LOOP;
1561: CLOSE get_nover_position_ids_csr;
1562: END IF;
1561: CLOSE get_nover_position_ids_csr;
1562: END IF;
1563:
1564: -- Check return status.
1565: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1566: RAISE FND_API.G_EXC_ERROR;
1567: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1569: END IF;
1562: END IF;
1563:
1564: -- Check return status.
1565: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1566: RAISE FND_API.G_EXC_ERROR;
1567: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1569: END IF;
1570:
1563:
1564: -- Check return status.
1565: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1566: RAISE FND_API.G_EXC_ERROR;
1567: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1569: END IF;
1570:
1571:
1564: -- Check return status.
1565: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1566: RAISE FND_API.G_EXC_ERROR;
1567: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1569: END IF;
1570:
1571:
1572: -- Standard check of p_commit
1569: END IF;
1570:
1571:
1572: -- Standard check of p_commit
1573: IF FND_API.TO_BOOLEAN(p_commit) THEN
1574: COMMIT WORK;
1575: END IF;
1576: -- Standard call to get message count and if count is 1, get message info
1577: FND_MSG_PUB.Count_And_Get
1576: -- Standard call to get message count and if count is 1, get message info
1577: FND_MSG_PUB.Count_And_Get
1578: ( p_count => x_msg_count,
1579: p_data => x_msg_data,
1580: p_encoded => fnd_api.g_false
1581: );
1582: EXCEPTION
1583: WHEN FND_API.G_EXC_ERROR THEN
1584: Rollback to Copy_Positions_For_Mc_pvt;
1579: p_data => x_msg_data,
1580: p_encoded => fnd_api.g_false
1581: );
1582: EXCEPTION
1583: WHEN FND_API.G_EXC_ERROR THEN
1584: Rollback to Copy_Positions_For_Mc_pvt;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1587: p_data => x_msg_data,
1581: );
1582: EXCEPTION
1583: WHEN FND_API.G_EXC_ERROR THEN
1584: Rollback to Copy_Positions_For_Mc_pvt;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1587: p_data => x_msg_data,
1588: p_encoded => fnd_api.g_false);
1589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1584: Rollback to Copy_Positions_For_Mc_pvt;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1587: p_data => x_msg_data,
1588: p_encoded => fnd_api.g_false);
1589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1590: Rollback to Copy_Positions_For_Mc_pvt;
1591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1592: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1587: p_data => x_msg_data,
1588: p_encoded => fnd_api.g_false);
1589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1590: Rollback to Copy_Positions_For_Mc_pvt;
1591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1592: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1593: p_data => x_msg_data,
1587: p_data => x_msg_data,
1588: p_encoded => fnd_api.g_false);
1589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1590: Rollback to Copy_Positions_For_Mc_pvt;
1591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1592: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1593: p_data => x_msg_data,
1594: p_encoded => fnd_api.g_false);
1595: WHEN OTHERS THEN
1590: Rollback to Copy_Positions_For_Mc_pvt;
1591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1592: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1593: p_data => x_msg_data,
1594: p_encoded => fnd_api.g_false);
1595: WHEN OTHERS THEN
1596: Rollback to Copy_Positions_For_Mc_pvt;
1597: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1598: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1593: p_data => x_msg_data,
1594: p_encoded => fnd_api.g_false);
1595: WHEN OTHERS THEN
1596: Rollback to Copy_Positions_For_Mc_pvt;
1597: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1598: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1599: p_procedure_name => l_api_name,
1600: p_error_text => SQLERRM);
1601: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1599: p_procedure_name => l_api_name,
1600: p_error_text => SQLERRM);
1601: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1602: p_data => x_msg_data,
1603: p_encoded => fnd_api.g_false);
1604: END Copy_Positions_For_MC;
1605:
1606: -----------------------------
1607: -- Start of Comments --
1619: -- End of Comments.
1620:
1621: PROCEDURE Copy_Position (
1622: p_api_version IN NUMBER,
1623: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1624: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1625: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1626: x_return_status OUT NOCOPY VARCHAR2,
1627: x_msg_count OUT NOCOPY NUMBER,
1620:
1621: PROCEDURE Copy_Position (
1622: p_api_version IN NUMBER,
1623: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1624: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1625: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1626: x_return_status OUT NOCOPY VARCHAR2,
1627: x_msg_count OUT NOCOPY NUMBER,
1628: x_msg_data OUT NOCOPY VARCHAR2,
1621: PROCEDURE Copy_Position (
1622: p_api_version IN NUMBER,
1623: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1624: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1625: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1626: x_return_status OUT NOCOPY VARCHAR2,
1627: x_msg_count OUT NOCOPY NUMBER,
1628: x_msg_data OUT NOCOPY VARCHAR2,
1629: p_position_id IN NUMBER,
1664: -- Standard start of API savepoint
1665: SAVEPOINT Copy_Position_pvt;
1666:
1667: -- Initialize Procedure return status to success
1668: x_return_status := FND_API.G_RET_STS_SUCCESS;
1669: -- Standard call to check for call compatibility
1670: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1671: G_PKG_NAME) THEN
1672: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1666:
1667: -- Initialize Procedure return status to success
1668: x_return_status := FND_API.G_RET_STS_SUCCESS;
1669: -- Standard call to check for call compatibility
1670: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1671: G_PKG_NAME) THEN
1672: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1673: END IF;
1674:
1668: x_return_status := FND_API.G_RET_STS_SUCCESS;
1669: -- Standard call to check for call compatibility
1670: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1671: G_PKG_NAME) THEN
1672: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1673: END IF;
1674:
1675: -- Initialize message list if p_init_msg_list is set to TRUE
1676: IF FND_API.To_Boolean(p_init_msg_list) THEN
1672: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1673: END IF;
1674:
1675: -- Initialize message list if p_init_msg_list is set to TRUE
1676: IF FND_API.To_Boolean(p_init_msg_list) THEN
1677: FND_MSG_PUB.Initialize;
1678: END IF;
1679:
1680: --Fetch the to mc_header_id information
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;
1691: CLOSE get_mc_id_ver_csr;
1692:
1693: --Fetch the position path information
1739:
1740: -- Check Error Message stack.
1741: x_msg_count := FND_MSG_PUB.count_msg;
1742: IF x_msg_count > 0 THEN
1743: RAISE FND_API.G_EXC_ERROR;
1744: END IF;
1745:
1746: --Create position with new error message stack.
1747: --This stack will not be useful
1746: --Create position with new error message stack.
1747: --This stack will not be useful
1748: Create_Position_ID (
1749: p_api_version => 1.0,
1750: p_init_msg_list => FND_API.G_TRUE,
1751: p_commit => FND_API.G_FALSE,
1752: p_path_position_tbl => l_pos_tbl,
1753: p_position_ref_meaning => FND_API.G_MISS_CHAR,
1754: p_position_ref_code => l_pos_ref_code,
1747: --This stack will not be useful
1748: Create_Position_ID (
1749: p_api_version => 1.0,
1750: p_init_msg_list => FND_API.G_TRUE,
1751: p_commit => FND_API.G_FALSE,
1752: p_path_position_tbl => l_pos_tbl,
1753: p_position_ref_meaning => FND_API.G_MISS_CHAR,
1754: p_position_ref_code => l_pos_ref_code,
1755: x_position_id => x_position_id,
1749: p_api_version => 1.0,
1750: p_init_msg_list => FND_API.G_TRUE,
1751: p_commit => FND_API.G_FALSE,
1752: p_path_position_tbl => l_pos_tbl,
1753: p_position_ref_meaning => FND_API.G_MISS_CHAR,
1754: p_position_ref_code => l_pos_ref_code,
1755: x_position_id => x_position_id,
1756: x_return_status => l_return_status,
1757: x_msg_count => l_msg_count,
1757: x_msg_count => l_msg_count,
1758: x_msg_data => l_msg_data);
1759:
1760: -- Suppress the validation errors from Create API.
1761: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1762: --Suppress the expected errors
1763: --Clean out the messages
1764: FND_MSG_PUB.Initialize;
1765: x_position_id := null;
1762: --Suppress the expected errors
1763: --Clean out the messages
1764: FND_MSG_PUB.Initialize;
1765: x_position_id := null;
1766: x_return_status := FND_API.G_RET_STS_SUCCESS;
1767: x_msg_count := 0;
1768: x_msg_data := null;
1769: ELSE
1770: --Use normal error handling
1773: x_msg_data := l_msg_data;
1774: END IF;
1775:
1776: -- Check return status.
1777: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1778: RAISE FND_API.G_EXC_ERROR;
1779: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1780: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1781: END IF;
1774: END IF;
1775:
1776: -- Check return status.
1777: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1778: RAISE FND_API.G_EXC_ERROR;
1779: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1780: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1781: END IF;
1782:
1775:
1776: -- Check return status.
1777: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1778: RAISE FND_API.G_EXC_ERROR;
1779: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1780: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1781: END IF;
1782:
1783: -- Standard check of p_commit
1776: -- Check return status.
1777: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1778: RAISE FND_API.G_EXC_ERROR;
1779: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1780: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1781: END IF;
1782:
1783: -- Standard check of p_commit
1784: IF FND_API.TO_BOOLEAN(p_commit) THEN
1780: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1781: END IF;
1782:
1783: -- Standard check of p_commit
1784: IF FND_API.TO_BOOLEAN(p_commit) THEN
1785: COMMIT WORK;
1786: END IF;
1787:
1788: -- Standard call to get message count and if count is 1, get message info
1788: -- Standard call to get message count and if count is 1, get message info
1789: FND_MSG_PUB.Count_And_Get
1790: ( p_count => x_msg_count,
1791: p_data => x_msg_data,
1792: p_encoded => fnd_api.g_false
1793: );
1794: EXCEPTION
1795: WHEN FND_API.G_EXC_ERROR THEN
1796: Rollback to Copy_Position_pvt;
1791: p_data => x_msg_data,
1792: p_encoded => fnd_api.g_false
1793: );
1794: EXCEPTION
1795: WHEN FND_API.G_EXC_ERROR THEN
1796: Rollback to Copy_Position_pvt;
1797: x_return_status := FND_API.G_RET_STS_ERROR;
1798: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1799: p_data => x_msg_data,
1793: );
1794: EXCEPTION
1795: WHEN FND_API.G_EXC_ERROR THEN
1796: Rollback to Copy_Position_pvt;
1797: x_return_status := FND_API.G_RET_STS_ERROR;
1798: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1799: p_data => x_msg_data,
1800: p_encoded => fnd_api.g_false);
1801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1796: Rollback to Copy_Position_pvt;
1797: x_return_status := FND_API.G_RET_STS_ERROR;
1798: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1799: p_data => x_msg_data,
1800: p_encoded => fnd_api.g_false);
1801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1802: Rollback to Copy_Position_pvt;
1803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1804: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1797: x_return_status := FND_API.G_RET_STS_ERROR;
1798: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1799: p_data => x_msg_data,
1800: p_encoded => fnd_api.g_false);
1801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1802: Rollback to Copy_Position_pvt;
1803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1804: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1805: p_data => x_msg_data,
1799: p_data => x_msg_data,
1800: p_encoded => fnd_api.g_false);
1801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1802: Rollback to Copy_Position_pvt;
1803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1804: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1805: p_data => x_msg_data,
1806: p_encoded => fnd_api.g_false);
1807: WHEN OTHERS THEN
1802: Rollback to Copy_Position_pvt;
1803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1804: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1805: p_data => x_msg_data,
1806: p_encoded => fnd_api.g_false);
1807: WHEN OTHERS THEN
1808: Rollback to Copy_Position_pvt;
1809: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1810: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1805: p_data => x_msg_data,
1806: p_encoded => fnd_api.g_false);
1807: WHEN OTHERS THEN
1808: Rollback to Copy_Position_pvt;
1809: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1810: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1811: p_procedure_name => l_api_name,
1812: p_error_text => SQLERRM);
1813: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1811: p_procedure_name => l_api_name,
1812: p_error_text => SQLERRM);
1813: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1814: p_data => x_msg_data,
1815: p_encoded => fnd_api.g_false);
1816: END Copy_Position;
1817:
1818: -----------------------------
1819: -- Start of Comments --
1829: -- End of Comments.
1830:
1831: PROCEDURE Delete_Positions_For_MC (
1832: p_api_version IN NUMBER,
1833: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1834: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1835: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1836: x_return_status OUT NOCOPY VARCHAR2,
1837: x_msg_count OUT NOCOPY NUMBER,
1830:
1831: PROCEDURE Delete_Positions_For_MC (
1832: p_api_version IN NUMBER,
1833: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1834: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1835: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1836: x_return_status OUT NOCOPY VARCHAR2,
1837: x_msg_count OUT NOCOPY NUMBER,
1838: x_msg_data OUT NOCOPY VARCHAR2,
1831: PROCEDURE Delete_Positions_For_MC (
1832: p_api_version IN NUMBER,
1833: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1834: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1835: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1836: x_return_status OUT NOCOPY VARCHAR2,
1837: x_msg_count OUT NOCOPY NUMBER,
1838: x_msg_data OUT NOCOPY VARCHAR2,
1839: p_mc_header_id IN NUMBER)
1891: -- Standard start of API savepoint
1892: SAVEPOINT Delete_Positions_For_Mc_pvt;
1893:
1894: -- Initialize Procedure return status to success
1895: x_return_status := FND_API.G_RET_STS_SUCCESS;
1896: -- Standard call to check for call compatibility
1897: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1898: G_PKG_NAME) THEN
1899: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1893:
1894: -- Initialize Procedure return status to success
1895: x_return_status := FND_API.G_RET_STS_SUCCESS;
1896: -- Standard call to check for call compatibility
1897: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1898: G_PKG_NAME) THEN
1899: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1900: END IF;
1901:
1895: x_return_status := FND_API.G_RET_STS_SUCCESS;
1896: -- Standard call to check for call compatibility
1897: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1898: G_PKG_NAME) THEN
1899: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1900: END IF;
1901:
1902: -- Initialize message list if p_init_msg_list is set to TRUE
1903: IF FND_API.To_Boolean(p_init_msg_list) THEN
1899: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1900: END IF;
1901:
1902: -- Initialize message list if p_init_msg_list is set to TRUE
1903: IF FND_API.To_Boolean(p_init_msg_list) THEN
1904: FND_MSG_PUB.Initialize;
1905: END IF;
1906:
1907: --Check Status of MC allows for editing
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
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);
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;
1925: CLOSE check_mc_status_csr;
1926:
1927: --Delete version specific positions
1981: CLOSE get_nover_position_ids_csr;
1982: END IF;
1983:
1984: -- Standard check of p_commit
1985: IF FND_API.TO_BOOLEAN(p_commit) THEN
1986: COMMIT WORK;
1987: END IF;
1988: -- Standard call to get message count and if count is 1, get message info
1989: FND_MSG_PUB.Count_And_Get
1988: -- Standard call to get message count and if count is 1, get message info
1989: FND_MSG_PUB.Count_And_Get
1990: ( p_count => x_msg_count,
1991: p_data => x_msg_data,
1992: p_encoded => fnd_api.g_false
1993: );
1994: EXCEPTION
1995: WHEN FND_API.G_EXC_ERROR THEN
1996: Rollback to Delete_Positions_For_Mc_pvt;
1991: p_data => x_msg_data,
1992: p_encoded => fnd_api.g_false
1993: );
1994: EXCEPTION
1995: WHEN FND_API.G_EXC_ERROR THEN
1996: Rollback to Delete_Positions_For_Mc_pvt;
1997: x_return_status := FND_API.G_RET_STS_ERROR;
1998: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1999: p_data => x_msg_data,
1993: );
1994: EXCEPTION
1995: WHEN FND_API.G_EXC_ERROR THEN
1996: Rollback to Delete_Positions_For_Mc_pvt;
1997: x_return_status := FND_API.G_RET_STS_ERROR;
1998: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1999: p_data => x_msg_data,
2000: p_encoded => fnd_api.g_false);
2001: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1996: Rollback to Delete_Positions_For_Mc_pvt;
1997: x_return_status := FND_API.G_RET_STS_ERROR;
1998: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1999: p_data => x_msg_data,
2000: p_encoded => fnd_api.g_false);
2001: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2002: Rollback to Delete_Positions_For_Mc_pvt;
2003: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2004: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1997: x_return_status := FND_API.G_RET_STS_ERROR;
1998: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1999: p_data => x_msg_data,
2000: p_encoded => fnd_api.g_false);
2001: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2002: Rollback to Delete_Positions_For_Mc_pvt;
2003: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2004: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2005: p_data => x_msg_data,
1999: p_data => x_msg_data,
2000: p_encoded => fnd_api.g_false);
2001: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2002: Rollback to Delete_Positions_For_Mc_pvt;
2003: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2004: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2005: p_data => x_msg_data,
2006: p_encoded => fnd_api.g_false);
2007: WHEN OTHERS THEN
2002: Rollback to Delete_Positions_For_Mc_pvt;
2003: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2004: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2005: p_data => x_msg_data,
2006: p_encoded => fnd_api.g_false);
2007: WHEN OTHERS THEN
2008: Rollback to Delete_Positions_For_Mc_pvt;
2009: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2010: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
2005: p_data => x_msg_data,
2006: p_encoded => fnd_api.g_false);
2007: WHEN OTHERS THEN
2008: Rollback to Delete_Positions_For_Mc_pvt;
2009: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2010: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
2011: p_procedure_name => l_api_name,
2012: p_error_text => SQLERRM);
2013: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2011: p_procedure_name => l_api_name,
2012: p_error_text => SQLERRM);
2013: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2014: p_data => x_msg_data,
2015: p_encoded => fnd_api.g_false);
2016: END Delete_Positions_For_MC;
2017:
2018:
2019: ---------------------------------------------------------------------
2025: -- Parameters :
2026: --
2027: -- get_position_ref_code Parameters:
2028: -- p_position_id IN NUMBER the path position id
2029: -- p_code_flag IN VARHCAR2 If Equal to FND_API.G_TRUE, then return
2030: -- pos ref code, else return pos ref meaning. Default to False.
2031: --
2032: FUNCTION get_posref_by_id(
2033: p_path_position_ID IN NUMBER,
2030: -- pos ref code, else return pos ref meaning. Default to False.
2031: --
2032: FUNCTION get_posref_by_id(
2033: p_path_position_ID IN NUMBER,
2034: p_code_flag IN VARCHAR2 := FND_API.G_FALSE)
2035: RETURN VARCHAR2 -- Position Ref Code or Meaning
2036: IS
2037: --
2038: CURSOR get_pos_ref_csr (p_position_id IN NUMBER) IS
2063: FETCH get_pos_ref_csr INTO l_pos_ref_code;
2064:
2065: --If there are no pos ref defined for path
2066: IF (l_pos_ref_code IS NULL) OR
2067: (l_pos_ref_code = FND_API.G_MISS_CHAR) THEN
2068: OPEN get_def_pos_ref_csr(p_path_position_ID);
2069: FETCH get_def_pos_ref_csr INTO l_pos_ref_code;
2070: CLOSE get_def_pos_ref_csr;
2071: END IF;
2070: CLOSE get_def_pos_ref_csr;
2071: END IF;
2072: CLOSE get_pos_ref_csr;
2073:
2074: IF (p_code_flag = FND_API.G_TRUE) THEN
2075: RETURN l_pos_ref_code;
2076: ELSE
2077: --Convert to meaning.
2078: AHL_UTIL_MC_PKG.Convert_To_LookupMeaning('AHL_POSITION_REFERENCE',
2093: -- Parameters :
2094: --
2095: -- get_position_ref_code Parameters:
2096: -- p_position_path_tbl IN AHL_MC_PATH_POSITION_PVT.Path_Position_Tbl_Type Required
2097: -- p_code_flag IN VARHCAR2 If Equal to FND_API.G_TRUE, then return
2098: -- pos ref code, else return pos ref meaning. Default to False.
2099: --
2100: FUNCTION get_posref_by_path(
2101: p_path_position_tbl IN AHL_MC_PATH_POSITION_PVT.Path_Position_Tbl_Type,
2098: -- pos ref code, else return pos ref meaning. Default to False.
2099: --
2100: FUNCTION get_posref_by_path(
2101: p_path_position_tbl IN AHL_MC_PATH_POSITION_PVT.Path_Position_Tbl_Type,
2102: p_code_flag IN VARCHAR2 := FND_API.G_FALSE
2103: )
2104: RETURN VARCHAR2 -- Position Ref Meaning/Code
2105: IS
2106: --
2150: CLOSE get_def_path_pos_ref_csr;
2151: END IF;
2152: CLOSE get_path_pos_ref_csr;
2153:
2154: IF (p_code_flag = FND_API.G_TRUE) THEN
2155: RETURN l_pos_ref_code;
2156: ELSE
2157: --Convert to meaning.
2158: AHL_UTIL_MC_PKG.Convert_To_LookupMeaning('AHL_POSITION_REFERENCE',
2412: -- Start of Comments --
2413: -- Function name: check_pos_ref_path_char
2414: -- Type : Private
2415: -- Function : Calls private function Check_pos_ref_path and returns
2416: -- value as FND_API.G_TRUE for Boolean TRUE and
2417: -- FND_API.G_FALSE for Boolean False.
2418: -- Pre-reqs :
2419: -- Parameters : p_from_csi_id NUMBER the from instance id
2420: -- p_to_csi_id NUMBER the instance id that it reaches
2413: -- Function name: check_pos_ref_path_char
2414: -- Type : Private
2415: -- Function : Calls private function Check_pos_ref_path and returns
2416: -- value as FND_API.G_TRUE for Boolean TRUE and
2417: -- FND_API.G_FALSE for Boolean False.
2418: -- Pre-reqs :
2419: -- Parameters : p_from_csi_id NUMBER the from instance id
2420: -- p_to_csi_id NUMBER the instance id that it reaches
2421: --
2448: -- End of Comments.
2449:
2450: PROCEDURE Map_Instance_To_Pos_ID (
2451: p_api_version IN NUMBER,
2452: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2453: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2454: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2455: x_return_status OUT NOCOPY VARCHAR2,
2456: x_msg_count OUT NOCOPY NUMBER,
2449:
2450: PROCEDURE Map_Instance_To_Pos_ID (
2451: p_api_version IN NUMBER,
2452: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2453: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2454: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2455: x_return_status OUT NOCOPY VARCHAR2,
2456: x_msg_count OUT NOCOPY NUMBER,
2457: x_msg_data OUT NOCOPY VARCHAR2,
2450: PROCEDURE Map_Instance_To_Pos_ID (
2451: p_api_version IN NUMBER,
2452: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2453: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2454: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2455: x_return_status OUT NOCOPY VARCHAR2,
2456: x_msg_count OUT NOCOPY NUMBER,
2457: x_msg_data OUT NOCOPY VARCHAR2,
2458: p_csi_item_instance_id IN NUMBER,
2455: x_return_status OUT NOCOPY VARCHAR2,
2456: x_msg_count OUT NOCOPY NUMBER,
2457: x_msg_data OUT NOCOPY VARCHAR2,
2458: p_csi_item_instance_id IN NUMBER,
2459: p_relationship_id IN NUMBER := FND_API.G_MISS_NUM,
2460: x_path_position_id OUT NOCOPY NUMBER)
2461: IS
2462: --
2463: --Fetch the unit and unit header info for each instance
2602: fnd_log.string(fnd_log.level_procedure, l_full_name||'.begin', 'At the start of PLSQL procedure. p_csi_item_instance_id = ' || p_csi_item_instance_id ||
2603: ', p_relationship_id = ' || p_relationship_id);
2604: END IF;
2605: -- Initialize Procedure return status to success
2606: x_return_status := FND_API.G_RET_STS_SUCCESS;
2607: x_path_position_id := null;
2608:
2609: -- Standard call to check for call compatibility
2610: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
2606: x_return_status := FND_API.G_RET_STS_SUCCESS;
2607: x_path_position_id := null;
2608:
2609: -- Standard call to check for call compatibility
2610: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
2611: G_PKG_NAME) THEN
2612: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2613: END IF;
2614:
2608:
2609: -- Standard call to check for call compatibility
2610: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
2611: G_PKG_NAME) THEN
2612: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2613: END IF;
2614:
2615: -- Initialize message list if p_init_msg_list is set to TRUE
2616: IF FND_API.To_Boolean(p_init_msg_list) THEN
2612: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2613: END IF;
2614:
2615: -- Initialize message list if p_init_msg_list is set to TRUE
2616: IF FND_API.To_Boolean(p_init_msg_list) THEN
2617: FND_MSG_PUB.Initialize;
2618: END IF;
2619:
2620: --Fetch the position informations for the instance
2663: CLOSE get_last_uc_rec_csr;
2664:
2665:
2666: --For the empty position, build path information for last node of path.
2667: IF (p_relationship_id <> FND_API.G_MISS_NUM AND
2668: p_relationship_id IS NOT NULL) THEN
2669: OPEN get_mc_relationship_csr (p_relationship_id, p_csi_item_instance_id);
2670: FETCH get_mc_relationship_csr INTO l_path_rec.mc_id,
2671: l_path_rec.version_number,
2694: -- SATHAPLI::FP OGMA Issue# 105 - Non-Serialized Item Maintenance, 21-Dec-2007
2695: -- There is no need to call the API Create_Position_ID, if there are pending validation errors.
2696: x_msg_count := FND_MSG_PUB.count_msg;
2697: IF x_msg_count > 0 THEN
2698: RAISE FND_API.G_EXC_ERROR;
2699: END IF;
2700:
2701: Create_Position_ID (
2702: p_api_version => 1.0,
2699: END IF;
2700:
2701: Create_Position_ID (
2702: p_api_version => 1.0,
2703: p_init_msg_list => FND_API.G_TRUE,
2704: p_commit => FND_API.G_FALSE,
2705: p_path_position_tbl => l_path_tbl,
2706: p_position_ref_meaning => FND_API.G_MISS_CHAR,
2707: p_position_ref_code => FND_API.G_MISS_CHAR,
2700:
2701: Create_Position_ID (
2702: p_api_version => 1.0,
2703: p_init_msg_list => FND_API.G_TRUE,
2704: p_commit => FND_API.G_FALSE,
2705: p_path_position_tbl => l_path_tbl,
2706: p_position_ref_meaning => FND_API.G_MISS_CHAR,
2707: p_position_ref_code => FND_API.G_MISS_CHAR,
2708: x_position_id => x_path_position_id,
2702: p_api_version => 1.0,
2703: p_init_msg_list => FND_API.G_TRUE,
2704: p_commit => FND_API.G_FALSE,
2705: p_path_position_tbl => l_path_tbl,
2706: p_position_ref_meaning => FND_API.G_MISS_CHAR,
2707: p_position_ref_code => FND_API.G_MISS_CHAR,
2708: x_position_id => x_path_position_id,
2709: x_return_status => x_return_status,
2710: x_msg_count => x_msg_count,
2703: p_init_msg_list => FND_API.G_TRUE,
2704: p_commit => FND_API.G_FALSE,
2705: p_path_position_tbl => l_path_tbl,
2706: p_position_ref_meaning => FND_API.G_MISS_CHAR,
2707: p_position_ref_code => FND_API.G_MISS_CHAR,
2708: x_position_id => x_path_position_id,
2709: x_return_status => x_return_status,
2710: x_msg_count => x_msg_count,
2711: x_msg_data => x_msg_data);
2718: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
2719: fnd_log.string(fnd_log.level_procedure, l_full_name||'.end', 'At the end of PLSQL procedure. About to commit work.');
2720: END IF;
2721: -- Standard check of p_commit
2722: IF FND_API.TO_BOOLEAN(p_commit) THEN
2723: COMMIT WORK;
2724: END IF;
2725:
2726: -- Standard call to get message count and if count is 1, get message info
2726: -- Standard call to get message count and if count is 1, get message info
2727: FND_MSG_PUB.Count_And_Get
2728: ( p_count => x_msg_count,
2729: p_data => x_msg_data,
2730: p_encoded => fnd_api.g_false
2731: );
2732: EXCEPTION
2733: WHEN FND_API.G_EXC_ERROR THEN
2734: Rollback to Map_Instance_To_Pos_ID_pvt;
2729: p_data => x_msg_data,
2730: p_encoded => fnd_api.g_false
2731: );
2732: EXCEPTION
2733: WHEN FND_API.G_EXC_ERROR THEN
2734: Rollback to Map_Instance_To_Pos_ID_pvt;
2735: x_return_status := FND_API.G_RET_STS_ERROR;
2736: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2737: p_data => x_msg_data,
2731: );
2732: EXCEPTION
2733: WHEN FND_API.G_EXC_ERROR THEN
2734: Rollback to Map_Instance_To_Pos_ID_pvt;
2735: x_return_status := FND_API.G_RET_STS_ERROR;
2736: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2737: p_data => x_msg_data,
2738: p_encoded => fnd_api.g_false);
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2734: Rollback to Map_Instance_To_Pos_ID_pvt;
2735: x_return_status := FND_API.G_RET_STS_ERROR;
2736: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2737: p_data => x_msg_data,
2738: p_encoded => fnd_api.g_false);
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: Rollback to Map_Instance_To_Pos_ID_pvt;
2741: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2742: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2735: x_return_status := FND_API.G_RET_STS_ERROR;
2736: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2737: p_data => x_msg_data,
2738: p_encoded => fnd_api.g_false);
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: Rollback to Map_Instance_To_Pos_ID_pvt;
2741: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2742: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2743: p_data => x_msg_data,
2737: p_data => x_msg_data,
2738: p_encoded => fnd_api.g_false);
2739: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2740: Rollback to Map_Instance_To_Pos_ID_pvt;
2741: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2742: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2743: p_data => x_msg_data,
2744: p_encoded => fnd_api.g_false);
2745: WHEN OTHERS THEN
2740: Rollback to Map_Instance_To_Pos_ID_pvt;
2741: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2742: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2743: p_data => x_msg_data,
2744: p_encoded => fnd_api.g_false);
2745: WHEN OTHERS THEN
2746: Rollback to Map_Instance_To_Pos_ID_pvt;
2747: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2748: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
2743: p_data => x_msg_data,
2744: p_encoded => fnd_api.g_false);
2745: WHEN OTHERS THEN
2746: Rollback to Map_Instance_To_Pos_ID_pvt;
2747: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2748: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
2749: p_procedure_name => l_api_name,
2750: p_error_text => SQLERRM);
2751: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2749: p_procedure_name => l_api_name,
2750: p_error_text => SQLERRM);
2751: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2752: p_data => x_msg_data,
2753: p_encoded => fnd_api.g_false);
2754:
2755: END Map_Instance_To_Pos_Id;
2756:
2757: ---------------------------------------------------------------------