DBA Data[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;