DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSM_SR_PURGE_PKG

Source


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;