[Home] [Help]
PACKAGE BODY: APPS.ICX_RESP_SEC_ATTR_PVT
Source
1 PACKAGE BODY ICX_Resp_Sec_Attr_PVT AS
2 -- $Header: ICXVTRSB.pls 115.2 99/07/17 03:30:44 porting ship $
3
4 PROCEDURE Create_Resp_Sec_Attr
5 ( p_api_version_number IN NUMBER,
6 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
7 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
8 p_commit IN VARCHAR2 := FND_API.G_FALSE,
9 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
10 p_return_status OUT VARCHAR2,
11 p_msg_count OUT NUMBER,
12 p_msg_data OUT VARCHAR2,
13 -- p_msg_entity OUT VARCHAR2,
14 -- p_msg_entity_index OUT NUMBER,
15 p_responsibility_id IN NUMBER,
16 p_application_id IN NUMBER,
17 p_attribute_code IN VARCHAR2,
18 p_attribute_appl_id IN NUMBER,
19 p_created_by IN NUMBER,
20 p_creation_date IN DATE,
21 p_last_updated_by IN NUMBER,
22 p_last_update_date IN DATE,
23 p_last_update_login IN NUMBER
24 )
25 IS
26 l_api_name CONSTANT VARCHAR2(30) := 'Create_Resp_Sec_Attr';
27 l_api_version_number CONSTANT NUMBER := 1.0;
28
29 l_duplicate NUMBER := 0;
30
31 BEGIN
32 -- Standard Start of API savepoint
33
34 SAVEPOINT Create_Resp_Sec_Attr_PVT;
35
36 -- Standard call to check for call compatibility.
37
38 if NOT FND_API.Compatible_API_Call
39 (
40 l_api_version_number,
41 p_api_version_number,
42 l_api_name,
43 G_PKG_NAME
44 )
45 then
46 raise FND_API.G_EXC_UNEXPECTED_ERROR;
47 end if;
48
49 -- Initialize message list if p_init_msg_list is set to TRUE.
50
51 if FND_API.to_Boolean( p_init_msg_list)
52 then
53 FND_MSG_PUB.initialize;
54 end if;
55
56 -- Initialize API return status to success
57
58 p_return_status := FND_API.G_RET_STS_SUCCESS;
59
60 -- ************************************
61 -- VALIDATION - RESP_SEC_ATTR
62 -- ************************************
63 -- select responsibility_id
64 select count(*)
65 into l_duplicate
66 from ak_resp_security_attributes
67 where resp_application_id = p_application_id
68 and attribute_code = p_attribute_code
69 and responsibility_id = p_responsibility_id
70 and attribute_application_id = p_attribute_appl_id;
71
72 if l_duplicate <> 0
73 -- if SQL%FOUND
74 then
75 -- responsibility-securing_attribute already exists
76
77 -- !!!!Need create message through Rami
78
79 fnd_message.set_name('FND','SECURITY-DUPLICATE USER RESP');
80 fnd_msg_pub.Add;
81 raise FND_API.G_EXC_ERROR;
82 else
83 INSERT into AK_RESP_SECURITY_ATTRIBUTES
84 (
85 RESPONSIBILITY_ID ,
86 ATTRIBUTE_APPLICATION_ID ,
87 ATTRIBUTE_CODE ,
88 CREATED_BY ,
89 CREATION_DATE ,
90 LAST_UPDATED_BY ,
91 LAST_UPDATE_DATE ,
92 LAST_UPDATE_LOGIN ,
93 RESP_APPLICATION_ID
94 )
95 values
96 (
97 p_responsibility_id ,
98 p_attribute_appl_id ,
99 p_attribute_code ,
100 p_created_by ,
101 p_creation_date ,
102 p_last_updated_by ,
103 p_last_update_date ,
104 p_last_update_login ,
105 p_application_id
106 );
107
108 -- taken out per Peter's suggestion
109
110 /* if SQL%NOTFOUND
111 then
112 -- Unable to INSERT
113
114 fnd_message.set_name('FND','SQL-NO INSERT');
115 fnd_message.set_token('TABLE','FND_WEB_USERS');
116 fnd_msg_pub.Add;
117 raise FND_API.G_EXC_ERROR;
118 end if;
119 */
120 end if;
121
122 -- Standard check of p_commit;
123
124 if FND_API.To_Boolean( p_commit)
125 then
126 commit work;
127 end if;
128
129 -- Standard call to get message count and if count is 1, get message info.
130
131 FND_MSG_PUB.Count_And_Get
132 (
133 p_count => p_msg_count,
134 p_data => p_msg_data
135 );
136
137 EXCEPTION
138
139 WHEN FND_API.G_EXC_ERROR THEN
140
141 Rollback to Create_Resp_Sec_Attr_PVT;
142 p_return_status := FND_API.G_RET_STS_ERROR;
143
144 FND_MSG_PUB.Count_And_Get
145 (
146 p_count => p_msg_count,
147 p_data => p_msg_data
148 );
149
150 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
151
152 Rollback to Create_Resp_Sec_Attr_PVT;
153 p_return_status := FND_API.G_RET_STS_ERROR;
154
155 FND_MSG_PUB.Count_And_Get
156 (
157 p_count => p_msg_count,
158 p_data => p_msg_data
159 );
160
161 WHEN OTHERS THEN
162
163 Rollback to Create_Resp_Sec_Attr_PVT;
164 p_return_status := FND_API.G_RET_STS_ERROR;
165
166 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
167 then
168 FND_MSG_PUB.Add_Exc_Msg
169 (
170 G_FILE_NAME,
171 G_PKG_NAME,
172 l_api_name
173 );
174 end if;
175
176 FND_MSG_PUB.Count_And_Get
177 (
178 p_count => p_msg_count,
179 p_data => p_msg_data
180 );
181
182 end Create_Resp_Sec_Attr;
183
184
185
186 PROCEDURE Delete_Resp_Sec_Attr
187 ( p_api_version_number IN NUMBER,
188 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
189 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
190 p_commit IN VARCHAR2 := FND_API.G_FALSE,
191 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
192 p_return_status OUT VARCHAR2,
193 p_msg_count OUT NUMBER,
194 p_msg_data OUT VARCHAR2,
195 -- p_msg_entity OUT VARCHAR2,
196 -- p_msg_entity_index OUT NUMBER,
197 p_responsibility_id IN NUMBER,
198 p_application_id IN NUMBER,
199 p_attribute_code IN VARCHAR2,
200 p_attribute_appl_id IN NUMBER
201 )
202 IS
203 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Resp_Sec_Attr';
204 l_api_version_number CONSTANT NUMBER := 1.0;
205
206 BEGIN
207
208 -- Standard Start of API savepoint
209
210 SAVEPOINT Delete_Resp_Sec_Attr_PVT;
211
212 -- Standard call to check for call compatibility.
213
214 if NOT FND_API.Compatible_API_Call
215 (
216 l_api_version_number,
217 p_api_version_number,
218 l_api_name,
219 G_PKG_NAME
220 )
221 then
222 raise FND_API.G_EXC_UNEXPECTED_ERROR;
223 end if;
224
225 -- Initialize message list if p_init_msg_list is set to TRUE.
226
227 if FND_API.to_Boolean( p_init_msg_list)
228 then
229 FND_MSG_PUB.initialize;
230 end if;
231
232 -- Initialize API return status to success
233
234 p_return_status := FND_API.G_RET_STS_SUCCESS;
235
236 Delete from AK_RESP_SECURITY_ATTRIBUTES
237 where resp_application_id = p_application_id
238 and attribute_code = p_attribute_code
239 and responsibility_id = p_responsibility_id
240 and attribute_application_id = p_attribute_appl_id;
241
242 if SQL%NOTFOUND
243 then
244
245 -- Need to replace message after creating messages through Rami
246 -- !!!!
247
248 fnd_message.set_name('FND','SQL-NO DELETE');
249 fnd_message.set_token('TABLE','FND_WEB_USER_RESPONSIBILITY');
250 fnd_msg_pub.Add;
251 raise FND_API.G_EXC_ERROR;
252 end if;
253
254 -- Standard check of p_commit;
255
256 if FND_API.To_Boolean( p_commit)
257 then
258 commit work;
259 end if;
260
261 -- Standard call to get message count and if count is 1, get message info.
262
263 FND_MSG_PUB.Count_And_Get
264 (
265 p_count => p_msg_count,
266 p_data => p_msg_data
267 );
268
269 EXCEPTION
270
271 WHEN FND_API.G_EXC_ERROR THEN
272
273 Rollback to Delete_Resp_Sec_Attr_PVT;
274 p_return_status := FND_API.G_RET_STS_ERROR;
275
276 FND_MSG_PUB.Count_And_Get
277 (
278 p_count => p_msg_count,
279 p_data => p_msg_data
280 );
281
282 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
283
284 Rollback to Delete_Resp_Sec_Attr_PVT;
285 p_return_status := FND_API.G_RET_STS_ERROR;
286
287 FND_MSG_PUB.Count_And_Get
288 (
289 p_count => p_msg_count,
290 p_data => p_msg_data
291 );
292
293 WHEN OTHERS THEN
294
295 Rollback to Delete_Resp_Sec_Attr_PVT;
296 p_return_status := FND_API.G_RET_STS_ERROR;
297
298 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
299 then
300 FND_MSG_PUB.Add_Exc_Msg
301 (
302 G_FILE_NAME,
303 G_PKG_NAME,
304 l_api_name
305 );
306 end if;
307
308 FND_MSG_PUB.Count_And_Get
309 (
310 p_count => p_msg_count,
311 p_data => p_msg_data
312 );
313
314 end Delete_Resp_Sec_Attr;
315
316
317 END ICX_Resp_Sec_Attr_PVT;