1 PACKAGE BODY CSM_SR_PURGE_PKG as
2 /* $Header: csmsrprb.pls 120.0 2005/08/10 12:10:34 rsripada noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSM_SR_PURGE_PKG';
5
6 PROCEDURE Validate_MobileFSObjects(
7 P_API_VERSION IN NUMBER,
8 P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
9 P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
10 P_PROCESSING_SET_ID IN NUMBER,
11 P_OBJECT_TYPE IN VARCHAR2,
12 X_RETURN_STATUS IN OUT NOCOPY VARCHAR2,
13 X_MSG_COUNT IN OUT NOCOPY NUMBER,
14 X_MSG_DATA IN OUT NOCOPY VARCHAR2)
15 IS
16 l_api_name CONSTANT VARCHAR2(30) := 'Validate_MobileFSObjects';
17 l_api_version_number CONSTANT NUMBER := 1.0;
18 BEGIN
19
20 CSM_UTIL_PKG.LOG('Entering CSM_SR_PURGE_PKG.Validate_MobileFSObjects ',
21 'CSM_SR_PURGE_PKG.Validate_MobileFSObjects',FND_LOG.LEVEL_PROCEDURE);
22
23 SAVEPOINT Validate_MFServiceObjects;
24 -- Standard call to check for call compatibility.
25 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
26 p_api_version,
27 l_api_name,
28 G_PKG_NAME) THEN
29 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
30 END IF;
31
32 -- Initialize message list
33 FND_MSG_PUB.initialize;
34 -- Initialize API return status to SUCCESS
35 x_return_status := FND_API.G_RET_STS_SUCCESS;
36
37 /*VALIDATION logic
38 -----------------
39 1) Check if the incident ids associated to the processing set id
40 (i/p parameter) has incident links to Mobile objects. If so then
41 Mark the SR as Not Purgeable else Make it Purgeable. */
42
43 IF (nvl(P_OBJECT_TYPE, 'SR') = 'SR') THEN
44 UPDATE JTF_OBJECT_PURGE_PARAM_TMP
45 SET purge_status = 'E',
46 purge_error_message = 'CSM:CSM_SR_PURGE_FAILED'
47 WHERE processing_set_id = P_PROCESSING_SET_ID AND
48 object_id IN
49 (
50 SELECT DISTINCT acc.INCIDENT_ID
51 FROM csm_incidents_all_acc acc,
52 JTF_OBJECT_PURGE_PARAM_TMP tmp
53 WHERE tmp.object_id = acc.INCIDENT_ID AND
54 nvl(tmp.purge_status, 'S') <> 'E' AND
55 tmp.processing_set_id = P_PROCESSING_SET_ID
56 ) AND
57 nvl(purge_status, 'S') <> 'E';
58
59 END IF ;
60
61 CSM_UTIL_PKG.LOG('Leaving CSM_SR_PURGE_PKG.Validate_MobileFSObjects ',
62 'CSM_SR_PURGE_PKG.Validate_MobileFSObjects',FND_LOG.LEVEL_PROCEDURE);
63
64 EXCEPTION
65 WHEN fnd_api.g_exc_error THEN
66 ROLLBACK TO Validate_MFServiceObjects;
67 x_return_status := fnd_api.g_ret_sts_error;
68 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
69 CSM_UTIL_PKG.LOG('Error in CSM_SR_PURGE_PKG.Validate_MobileFSObjects',
70 'CSM_SR_PURGE_PKG.Validate_MobileFSObjects',FND_LOG.LEVEL_EXCEPTION);
71 WHEN fnd_api.g_exc_unexpected_error THEN
72 ROLLBACK TO Validate_MFServiceObjects;
73 x_return_status := fnd_api.g_ret_sts_unexp_error;
74 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
75 CSM_UTIL_PKG.LOG('Error in CSM_SR_PURGE_PKG.Validate_MobileFSObjects',
76 'CSM_SR_PURGE_PKG.Validate_MobileFSObjects',FND_LOG.LEVEL_EXCEPTION);
77 WHEN OTHERS THEN
78 x_return_status := fnd_api.g_ret_sts_unexp_error;
79 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
80 fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
81 END IF;
82 ROLLBACK TO Validate_MFServiceObjects;
83 CSM_UTIL_PKG.LOG('Error in CSM_SR_PURGE_PKG.Validate_MobileFSObjects',
84 'CSM_SR_PURGE_PKG.Validate_MobileFSObjects',FND_LOG.LEVEL_EXCEPTION);
85 END Validate_MobileFSObjects;
86
87
88 -- Procedure to delete MFS SRs. No-op right now as the SRs are purged
89 -- from csm_incidents_all_acc during JTM: Purge Program.
90 PROCEDURE Delete_MobileFSObjects(
91 P_API_VERSION IN NUMBER ,
92 P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
93 P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
94 P_PROCESSING_SET_ID IN NUMBER ,
95 P_OBJECT_TYPE IN VARCHAR2 ,
96 X_RETURN_STATUS IN OUT NOCOPY VARCHAR2,
97 X_MSG_COUNT IN OUT NOCOPY NUMBER,
98 X_MSG_DATA IN OUT NOCOPY VARCHAR2)
99 IS
100 l_api_name CONSTANT VARCHAR2(30) := 'Delete_MobileFSObjects';
101 l_api_version_number CONSTANT NUMBER := 1.0;
102 l_sqlerrno NUMBER;
103 l_sqlerrmsg VARCHAR2(256);
104 BEGIN
105 CSM_UTIL_PKG.LOG('Entering CSM_SR_PURGE_PKG.Delete_MobileFSObjects',
106 'CSM_SR_PURGE_PKG.Delete_MobileFSObjects',FND_LOG.LEVEL_PROCEDURE);
107
108 -- Standard call to check for call compatibility.
109 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,p_api_version,
110 l_api_name,G_PKG_NAME) THEN
111 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
112 END IF;
113
114 -- Initialize API return status to SUCCESS
115 x_return_status := FND_API.G_RET_STS_SUCCESS;
116
117 CSM_UTIL_PKG.LOG('Leaving CSM_SR_PURGE_PKG.Delete_MobileFSObjects',
118 'CSM_SR_PURGE_PKG.Delete_MobileFSObjects',FND_LOG.LEVEL_PROCEDURE);
119 EXCEPTION
120 WHEN others THEN
121 l_sqlerrno := to_char(SQLCODE);
122 l_sqlerrmsg := substr(SQLERRM, 1,256);
123 csm_util_pkg.log('CSM_SR_PURGE_PKG.Delete_MobileFSObjects ERROR : ' ||
124 l_sqlerrno || ':' || l_sqlerrmsg, FND_LOG.LEVEL_EXCEPTION);
125 END Delete_MobileFSObjects;
126
127 END CSM_SR_PURGE_PKG;