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