[Home] [Help]
PACKAGE BODY: APPS.PV_ATTR_PRINCIPAL_PVT
Source
1 PACKAGE BODY PV_ATTR_PRINCIPAL_PVT as
2 /* $Header: pvxvatpb.pls 120.0 2007/12/20 07:11:02 abnagapp noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- PV_ATTR_PRINCIPAL_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15
16
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_Attr_Principal_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvatub.pls';
19
20 G_USER_ID NUMBER := NVL(FND_GLOBAL.USER_ID,-1);
21 G_LOGIN_ID NUMBER := NVL(FND_GLOBAL.CONC_LOGIN_ID,-1);
22
23 -- Hint: Primary key needs to be returned.
24 PROCEDURE Create_Attr_Principal(
25 p_api_version_number IN NUMBER
26 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
27 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
28 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
29
30 ,x_return_status OUT NOCOPY VARCHAR2
31 ,x_msg_count OUT NOCOPY NUMBER
32 ,x_msg_data OUT NOCOPY VARCHAR2
33
34 ,p_Attr_Principal_rec IN Attr_Principal_rec_type := g_miss_Attr_Principal_rec
35 ,x_Attr_Principal_id OUT NOCOPY NUMBER
36 )
37
38
39 IS
40 l_api_name CONSTANT VARCHAR2(30) := 'Create_Attr_Principal';
41 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
42 l_api_version_number CONSTANT NUMBER := 1.0;
43 l_return_status_full VARCHAR2(1);
44 l_object_version_number NUMBER := 1;
45 l_org_id NUMBER := FND_API.G_MISS_NUM;
46 l_Attr_Principal_id NUMBER;
47 l_dummy NUMBER;
48 l_Attr_Principal_rec Attr_Principal_rec_type := p_Attr_Principal_rec;
49
50 CURSOR c_id IS
51 SELECT PV.PV_Attr_PrincipalS_s.NEXTVAL
52 FROM dual;
53
54 CURSOR c_id_exists (l_id IN NUMBER) IS
55 SELECT 1
56 FROM PV_Attr_PrincipalS
57 WHERE Attr_Principal_ID = l_id;
58
59 BEGIN
60 -- Standard Start of API savepoint
61 SAVEPOINT CREATE_Attr_Principal_PVT;
62
63 -- Standard call to check for call compatibility.
64 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
65 p_api_version_number,
66 l_api_name,
67 G_PKG_NAME)
68 THEN
69 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
70 END IF;
71
72 -- Initialize message list if p_init_msg_list is set to TRUE.
73 IF FND_API.to_Boolean( p_init_msg_list )
74 THEN
75 FND_MSG_PUB.initialize;
76 END IF;
77
78 -- Debug Message
79 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
80 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - start');
81 END IF;
82
83 -- Initialize API return status to SUCCESS
84 x_return_status := FND_API.G_RET_STS_SUCCESS;
85
86 -- Local variable initialization
87
88 IF p_Attr_Principal_rec.Attr_Principal_ID IS NULL
89 OR p_Attr_Principal_rec.Attr_Principal_ID = FND_API.g_miss_num THEN
90 LOOP
91 l_dummy := NULL;
92 OPEN c_id;
93 FETCH c_id INTO l_Attr_Principal_ID;
94 CLOSE c_id;
95
96 OPEN c_id_exists(l_Attr_Principal_ID);
97 FETCH c_id_exists INTO l_dummy;
98 CLOSE c_id_exists;
99 EXIT WHEN l_dummy IS NULL;
100 END LOOP;
101 ELSE
102 l_Attr_Principal_ID := p_Attr_Principal_rec.Attr_Principal_ID;
103 END IF;
104 -- =========================================================================
105 -- Validate Environment
106 -- =========================================================================
107
108 IF FND_GLOBAL.User_Id IS NULL
109 THEN
110 FND_MESSAGE.set_name('PV', 'PV_API_USER_PROFILE_MISSING');
111 FND_MSG_PUB.add;
112 RAISE FND_API.G_EXC_ERROR;
113 END IF;
114
115 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
116 THEN
117 -- Debug message
118 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
119 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Validate_Attr_Principal');
120 end if;
121
122 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : Before Validate_Attr_Principal' );
123
124 -- Populate the default required items
125 l_Attr_Principal_rec.Attr_Principal_id := l_Attr_Principal_id;
126 l_Attr_Principal_rec.last_update_date := SYSDATE;
127 l_Attr_Principal_rec.last_updated_by := G_USER_ID;
128 l_Attr_Principal_rec.creation_date := SYSDATE;
129 l_Attr_Principal_rec.created_by := G_USER_ID;
130 l_Attr_Principal_rec.last_update_login := G_LOGIN_ID;
131 l_Attr_Principal_rec.object_version_number := l_object_version_number;
132
133 -- Invoke validation procedures
134 Validate_Attr_Principal(
135 p_api_version_number => 1.0
136 ,p_init_msg_list => FND_API.G_FALSE
137 ,p_validation_level => p_validation_level
138 ,p_validation_mode => JTF_PLSQL_API.g_create
139 ,p_Attr_Principal_rec => l_Attr_Principal_rec
140 ,x_return_status => x_return_status
141 ,x_msg_count => x_msg_count
142 ,x_msg_data => x_msg_data
143 );
144
145 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : After Validate_Attr_Principal' );
146 END IF;
147
148 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
149 RAISE FND_API.G_EXC_ERROR;
150 END IF;
151
152 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : After Validate' );
153 -- Debug Message
154 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
155 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Calling create table handler');
156 END IF;
157
158 -- Invoke table handler(PV_Attr_PrincipalS_PKG.Insert_Row)
159 PV_Attr_PrincipalS_PKG.Insert_Row(
160 px_Attr_Principal_id => l_Attr_Principal_rec.Attr_Principal_id
161 ,p_last_update_date => l_Attr_Principal_rec.last_update_date
162 ,p_last_updated_by => l_Attr_Principal_rec.last_updated_by
163 ,p_creation_date => l_Attr_Principal_rec.creation_date
164 ,p_created_by => l_Attr_Principal_rec.created_by
165 ,p_last_update_login => l_Attr_Principal_rec.last_update_login
166 ,px_object_version_number => l_Attr_Principal_rec.object_version_number
167 ,p_attribute_id => l_Attr_Principal_rec.attribute_id
168 ,p_jtf_auth_principal_id => l_Attr_Principal_rec.jtf_auth_principal_id
169 --p_security_group_id => l_Attr_Principal_rec.security_group_id
170 );
171
172 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : After' );
173
174 x_Attr_Principal_id := l_Attr_Principal_id;
175
176 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
177 RAISE FND_API.G_EXC_ERROR;
178 END IF;
179 --
180 -- End of API body
181 --
182
183 -- Standard check for p_commit
184 IF FND_API.to_Boolean( p_commit )
185 THEN
186 COMMIT WORK;
187 END IF;
188
189
190 -- Debug Message
191 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
192 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - end');
193 END IF;
194
195 -- Standard call to get message count and if count is 1, get message info.
196 FND_MSG_PUB.Count_And_Get
197 (p_count => x_msg_count,
198 p_data => x_msg_data
199 );
200 EXCEPTION
201 /*
202 WHEN PVX_Utility_PVT.resource_locked THEN
203 x_return_status := FND_API.g_ret_sts_error;
204 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
205 */
206 WHEN FND_API.G_EXC_ERROR THEN
207 ROLLBACK TO CREATE_Attr_Principal_PVT;
208 x_return_status := FND_API.G_RET_STS_ERROR;
209 -- Standard call to get message count and if count=1, get the message
210 FND_MSG_PUB.Count_And_Get (
211 p_encoded => FND_API.G_FALSE,
212 p_count => x_msg_count,
213 p_data => x_msg_data
214 );
215
216 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
217 ROLLBACK TO CREATE_Attr_Principal_PVT;
218 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
219 -- Standard call to get message count and if count=1, get the message
220 FND_MSG_PUB.Count_And_Get (
221 p_encoded => FND_API.G_FALSE,
222 p_count => x_msg_count,
223 p_data => x_msg_data
224 );
225
226 WHEN OTHERS THEN
227 ROLLBACK TO CREATE_Attr_Principal_PVT;
228 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
230 THEN
231 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
232 END IF;
233 -- Standard call to get message count and if count=1, get the message
234 FND_MSG_PUB.Count_And_Get (
235 p_encoded => FND_API.G_FALSE,
236 p_count => x_msg_count,
237 p_data => x_msg_data
238 );
239 End Create_Attr_Principal;
240
241
242 PROCEDURE Update_Attr_Principal(
243 p_api_version_number IN NUMBER
244 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
245 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
246 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
247
248 ,x_return_status OUT NOCOPY VARCHAR2
249 ,x_msg_count OUT NOCOPY NUMBER
250 ,x_msg_data OUT NOCOPY VARCHAR2
251
252 ,p_Attr_Principal_rec IN Attr_Principal_rec_type
253 ,x_object_version_number OUT NOCOPY NUMBER
254 )
255 IS
256
257 CURSOR c_get_Attr_Principal(cv_Attr_Principal_id NUMBER) IS
258 SELECT *
259 FROM PV_Attr_PrincipalS
260 WHERE Attr_Principal_id = cv_Attr_Principal_id;
261
262 l_api_name CONSTANT VARCHAR2(30) := 'Update_Attr_Principal';
263 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
264 l_api_version_number CONSTANT NUMBER := 1.0;
265 -- Local Variables
266 l_object_version_number NUMBER;
267 l_Attr_Principal_id NUMBER;
268 l_ref_Attr_Principal_rec c_get_Attr_Principal%ROWTYPE ;
269 l_tar_Attr_Principal_rec PV_Attr_Principal_PVT.Attr_Principal_rec_type := P_Attr_Principal_rec;
270 l_rowid ROWID;
271
272 BEGIN
273 -- Standard Start of API savepoint
274 SAVEPOINT UPDATE_Attr_Principal_PVT;
275
276 -- Standard call to check for call compatibility.
277 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
278 p_api_version_number,
279 l_api_name,
280 G_PKG_NAME)
281 THEN
282 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
283 END IF;
284
285 -- Initialize message list if p_init_msg_list is set to TRUE.
286 IF FND_API.to_Boolean( p_init_msg_list )
287 THEN
288 FND_MSG_PUB.initialize;
289 END IF;
290
291 -- Debug Message
292 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
293 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - start');
294 END IF;
295
296
297 -- Initialize API return status to SUCCESS
298 x_return_status := FND_API.G_RET_STS_SUCCESS;
299
300 -- Debug Message
301 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
302 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Open Cursor to Select');
303 END IF;
304
305 OPEN c_get_Attr_Principal( l_tar_Attr_Principal_rec.Attr_Principal_id);
306
307 FETCH c_get_Attr_Principal INTO l_ref_Attr_Principal_rec ;
308
309 IF ( c_get_Attr_Principal%NOTFOUND) THEN
310 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
311 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_ENTITY');
312 FND_MESSAGE.set_token('MODE','Update');
313 FND_MESSAGE.set_token('ENTITY','Attr_Principal');
314 FND_MESSAGE.set_token('ID',TO_CHAR(l_tar_Attr_Principal_rec.Attr_Principal_id));
315 FND_MSG_PUB.add;
316 END IF;
317 RAISE FND_API.G_EXC_ERROR;
318 END IF;
319 -- Debug Message
320 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
321 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Close Cursor');
322 END IF;
323
324 CLOSE c_get_Attr_Principal;
325
326
327
328 IF (l_tar_Attr_Principal_rec.object_version_number is NULL or
329 l_tar_Attr_Principal_rec.object_version_number = FND_API.G_MISS_NUM ) Then
330
331 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
332 FND_MESSAGE.set_name('PV', 'PV_API_VERSION_MISSING');
333 FND_MESSAGE.set_token('COLUMN',TO_CHAR(l_tar_Attr_Principal_rec.last_update_date));
334 FND_MSG_PUB.add;
335 END IF;
336 RAISE FND_API.G_EXC_ERROR;
337 End if;
338
339 -- Check Whether record has been changed by someone else
340 If (l_tar_Attr_Principal_rec.object_version_number <> l_ref_Attr_Principal_rec.object_version_number) Then
341 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
342 FND_MESSAGE.set_name('PV', 'PV_API_RECORD_CHANGED');
343 FND_MESSAGE.set_token('VALUE','Attr_Principal');
344 FND_MSG_PUB.add;
345 END IF;
346 RAISE FND_API.G_EXC_ERROR;
347 End if;
348 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
349 THEN
350 -- Debug message
351 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
352 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Validate_Attr_Principal');
353 END IF;
354
355 -- Invoke validation procedures
356 Validate_Attr_Principal(
357 p_api_version_number => 1.0
358 ,p_init_msg_list => FND_API.G_FALSE
359 ,p_validation_level => p_validation_level
360 ,p_validation_mode => JTF_PLSQL_API.g_update
361 ,p_Attr_Principal_rec => p_Attr_Principal_rec
362 ,x_return_status => x_return_status
363 ,x_msg_count => x_msg_count
364 ,x_msg_data => x_msg_data
365 );
366
367 END IF;
368
369 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
370 RAISE FND_API.G_EXC_ERROR;
371 END IF;
372
373
374 -- Debug Message
375 --PVX_Utility_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_ERROR, 'Private API: Calling update table handler');
376 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
377 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Calling update table handler');
378 END IF;
379
380 -- Invoke table handler(PV_Attr_PrincipalS_PKG.Update_Row)
381 PV_Attr_PrincipalS_PKG.Update_Row(
382 p_Attr_Principal_id => p_Attr_Principal_rec.Attr_Principal_id
383 ,p_last_update_date => SYSDATE
384 ,p_last_updated_by => G_USER_ID
385 --,p_creation_date => SYSDATE
386 --,p_created_by => G_USER_ID
387 ,p_last_update_login => G_LOGIN_ID
388 ,p_object_version_number => p_Attr_Principal_rec.object_version_number
389 ,p_attribute_id => p_Attr_Principal_rec.attribute_id
390 ,p_jtf_auth_principal_id => p_Attr_Principal_rec.jtf_auth_principal_id
391 --p_security_group_id => p_Attr_Principal_rec.security_group_id
392 );
393
394 x_object_version_number := p_Attr_Principal_rec.object_version_number + 1;
395 --
396 -- End of API body.
397 --
398
399 -- Standard check for p_commit
400 IF FND_API.to_Boolean( p_commit )
401 THEN
402 COMMIT WORK;
403 END IF;
404
405
406 -- Debug Message
407 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
408 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - end');
409 END IF;
410
411 -- Standard call to get message count and if count is 1, get message info.
412 FND_MSG_PUB.Count_And_Get
413 (p_count => x_msg_count,
414 p_data => x_msg_data
415 );
416 EXCEPTION
417 /*
418 WHEN PVX_Utility_PVT.resource_locked THEN
419 x_return_status := FND_API.g_ret_sts_error;
420 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
421 */
422 WHEN FND_API.G_EXC_ERROR THEN
423 ROLLBACK TO UPDATE_Attr_Principal_PVT;
424 x_return_status := FND_API.G_RET_STS_ERROR;
425 -- Standard call to get message count and if count=1, get the message
426 FND_MSG_PUB.Count_And_Get (
427 p_encoded => FND_API.G_FALSE,
428 p_count => x_msg_count,
429 p_data => x_msg_data
430 );
431
432 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
433 ROLLBACK TO UPDATE_Attr_Principal_PVT;
434 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
435 -- Standard call to get message count and if count=1, get the message
436 FND_MSG_PUB.Count_And_Get (
437 p_encoded => FND_API.G_FALSE,
438 p_count => x_msg_count,
439 p_data => x_msg_data
440 );
441
442 WHEN OTHERS THEN
443 ROLLBACK TO UPDATE_Attr_Principal_PVT;
444 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
445 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
446 THEN
447 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
448 END IF;
449 -- Standard call to get message count and if count=1, get the message
450 FND_MSG_PUB.Count_And_Get (
451 p_encoded => FND_API.G_FALSE,
452 p_count => x_msg_count,
453 p_data => x_msg_data
454 );
455 End Update_Attr_Principal;
456
457
458 PROCEDURE Delete_Attr_Principal(
459 p_api_version_number IN NUMBER
460 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
461 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
462 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
463
464 ,x_return_status OUT NOCOPY VARCHAR2
465 ,x_msg_count OUT NOCOPY NUMBER
466 ,x_msg_data OUT NOCOPY VARCHAR2
467
468 ,p_Attr_Principal_id IN NUMBER
469 ,p_object_version_number IN NUMBER
470 )
471
472 IS
473 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Attr_Principal';
474 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
475 l_api_version_number CONSTANT NUMBER := 1.0;
476 l_object_version_number NUMBER;
477
478 BEGIN
479 -- Standard Start of API savepoint
480 SAVEPOINT DELETE_Attr_Principal_PVT;
481
482 -- Standard call to check for call compatibility.
483 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
484 p_api_version_number,
485 l_api_name,
486 G_PKG_NAME)
487 THEN
488 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
489 END IF;
490
491 -- Initialize message list if p_init_msg_list is set to TRUE.
492 IF FND_API.to_Boolean( p_init_msg_list )
493 THEN
494 FND_MSG_PUB.initialize;
495 END IF;
496
497 -- Debug Message
498 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
499 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - start');
500 END IF;
501
502
503 -- Initialize API return status to SUCCESS
504 x_return_status := FND_API.G_RET_STS_SUCCESS;
505
506 --
507 -- Api body
508 --
509 -- Debug Message
510 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
511 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - Calling delete table handler');
512 END IF;
513
514
515 -- Invoke table handler(PV_Attr_PrincipalS_PKG.Delete_Row)
516 PV_Attr_PrincipalS_PKG.Delete_Row(
517 p_Attr_Principal_ID => p_Attr_Principal_ID);
518 --
519 -- End of API body
520 --
521
522 -- Standard check for p_commit
523 IF FND_API.to_Boolean( p_commit )
524 THEN
525 COMMIT WORK;
526 END IF;
527
528
529 -- Debug Message
530 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
531 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - end');
532 END IF;
533
534 -- Standard call to get message count and if count is 1, get message info.
535 FND_MSG_PUB.Count_And_Get
536 (p_count => x_msg_count,
537 p_data => x_msg_data
538 );
539 EXCEPTION
540 /*
541 WHEN PVX_Utility_PVT.resource_locked THEN
542 x_return_status := FND_API.g_ret_sts_error;
543 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
544 */
545 WHEN FND_API.G_EXC_ERROR THEN
546 ROLLBACK TO DELETE_Attr_Principal_PVT;
547 x_return_status := FND_API.G_RET_STS_ERROR;
548 -- Standard call to get message count and if count=1, get the message
549 FND_MSG_PUB.Count_And_Get (
550 p_encoded => FND_API.G_FALSE,
551 p_count => x_msg_count,
552 p_data => x_msg_data
553 );
554
555 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
556 ROLLBACK TO DELETE_Attr_Principal_PVT;
557 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
558 -- Standard call to get message count and if count=1, get the message
559 FND_MSG_PUB.Count_And_Get (
560 p_encoded => FND_API.G_FALSE,
561 p_count => x_msg_count,
562 p_data => x_msg_data
563 );
564
565 WHEN OTHERS THEN
566 ROLLBACK TO DELETE_Attr_Principal_PVT;
567 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
568 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
569 THEN
570 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
571 END IF;
572 -- Standard call to get message count and if count=1, get the message
573 FND_MSG_PUB.Count_And_Get (
574 p_encoded => FND_API.G_FALSE,
575 p_count => x_msg_count,
576 p_data => x_msg_data
577 );
578 End Delete_Attr_Principal;
579
580
581
582 -- Hint: Primary key needs to be returned.
583 PROCEDURE Lock_Attr_Principal(
584 p_api_version_number IN NUMBER
585 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
586
587 ,x_return_status OUT NOCOPY VARCHAR2
588 ,x_msg_count OUT NOCOPY NUMBER
589 ,x_msg_data OUT NOCOPY VARCHAR2
590
591 ,p_Attr_Principal_id IN NUMBER
592 ,p_object_version IN NUMBER
593 )
594
595 IS
596 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Attr_Principal';
597 l_api_version_number CONSTANT NUMBER := 1.0;
598 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
599 l_Attr_Principal_ID NUMBER;
600
601 CURSOR c_Attr_Principal IS
602 SELECT Attr_Principal_ID
603 FROM PV_Attr_PrincipalS
604 WHERE Attr_Principal_ID = p_Attr_Principal_ID
605 AND object_version_number = p_object_version
606 FOR UPDATE NOWAIT;
607
608 BEGIN
609
610 -- Debug Message
611 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
612 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - start');
613 END IF;
614
615 -- Initialize message list if p_init_msg_list is set to TRUE.
616 IF FND_API.to_Boolean( p_init_msg_list )
617 THEN
618 FND_MSG_PUB.initialize;
619 END IF;
620
621 -- Standard call to check for call compatibility.
622 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
623 p_api_version_number,
624 l_api_name,
625 G_PKG_NAME)
626 THEN
627 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
628 END IF;
629
630
631 -- Initialize API return status to SUCCESS
632 x_return_status := FND_API.G_RET_STS_SUCCESS;
633
634
635 ------------------------ lock -------------------------
636 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
637 PVX_Utility_PVT.debug_message(l_full_name||': start');
638 END IF;
639 OPEN c_Attr_Principal;
640
641 FETCH c_Attr_Principal INTO l_Attr_Principal_ID;
642
643 IF (c_Attr_Principal%NOTFOUND) THEN
644 CLOSE c_Attr_Principal;
645 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
646 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
647 FND_MESSAGE.set_name('PV', 'PV_API_RECORD_NOT_FOUND');
648 FND_MSG_PUB.add;
649 END IF;
650 END IF;
651 RAISE FND_API.g_exc_error;
652 END IF;
653
654 CLOSE c_Attr_Principal;
655
656 -------------------- finish --------------------------
657 FND_MSG_PUB.count_and_get(
658 p_encoded => FND_API.g_false,
659 p_count => x_msg_count,
660 p_data => x_msg_data);
661 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
662 PVX_Utility_PVT.debug_message(l_full_name ||': end');
663 END IF;
664 EXCEPTION
665 /*
666 WHEN PVX_Utility_PVT.resource_locked THEN
667 x_return_status := FND_API.g_ret_sts_error;
668 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
669 */
670 WHEN FND_API.G_EXC_ERROR THEN
671 ROLLBACK TO LOCK_Attr_Principal_PVT;
672 x_return_status := FND_API.G_RET_STS_ERROR;
673 -- Standard call to get message count and if count=1, get the message
674 FND_MSG_PUB.Count_And_Get (
675 p_encoded => FND_API.G_FALSE,
676 p_count => x_msg_count,
677 p_data => x_msg_data
678 );
679
680 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
681 ROLLBACK TO LOCK_Attr_Principal_PVT;
682 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
683 -- Standard call to get message count and if count=1, get the message
684 FND_MSG_PUB.Count_And_Get (
685 p_encoded => FND_API.G_FALSE,
686 p_count => x_msg_count,
687 p_data => x_msg_data
688 );
689
690 WHEN OTHERS THEN
691 ROLLBACK TO LOCK_Attr_Principal_PVT;
692 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
693 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
694 THEN
695 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
696 END IF;
697 -- Standard call to get message count and if count=1, get the message
698 FND_MSG_PUB.Count_And_Get (
699 p_encoded => FND_API.G_FALSE,
700 p_count => x_msg_count,
701 p_data => x_msg_data
702 );
703 End Lock_Attr_Principal;
704
705
706 PROCEDURE check_uk_items(
707 p_Attr_Principal_rec IN Attr_Principal_rec_type
708 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
709 ,x_return_status OUT NOCOPY VARCHAR2)
710 IS
711 l_valid_flag VARCHAR2(1);
712
713 BEGIN
714 x_return_status := FND_API.g_ret_sts_success;
715 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
716 l_valid_flag := PVX_Utility_PVT.check_uniqueness(
717 'PV_Attr_PrincipalS',
718 'Attr_Principal_ID = ''' || p_Attr_Principal_rec.Attr_Principal_ID ||''''
719 );
720 ELSE
721 l_valid_flag := PVX_Utility_PVT.check_uniqueness(
722 'PV_Attr_PrincipalS',
723 'Attr_Principal_ID = ''' || p_Attr_Principal_rec.Attr_Principal_ID ||
724 ''' AND Attr_Principal_ID <> ' || p_Attr_Principal_rec.Attr_Principal_ID
725 );
726 END IF;
727
728 IF l_valid_flag = FND_API.g_false THEN
729 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
730 FND_MESSAGE.set_name('PV', 'PV_API_DUPLICATE_ENTITY');
731 FND_MESSAGE.set_token('ID',to_char(p_Attr_Principal_rec.Attr_Principal_ID) );
732 FND_MESSAGE.set_token('ENTITY','Attr_Principal');
733 FND_MSG_PUB.add;
734 END IF;
735 x_return_status := FND_API.g_ret_sts_error;
736 RETURN;
737 END IF;
738
739 END check_uk_items;
740
741 PROCEDURE check_req_items(
742 p_Attr_Principal_rec IN Attr_Principal_rec_type
743 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create
744 ,x_return_status OUT NOCOPY VARCHAR2
745 )
746 IS
747 BEGIN
748 x_return_status := FND_API.g_ret_sts_success;
749 --DBMS_OUTPUT.PUT_LINE('p_validation_mode = '||p_validation_mode);
750 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
751
752 --DBMS_OUTPUT.PUT_LINE('BEfore calling Attr_Principal_id');
753 --DBMS_OUTPUT.PUT_LINE('p_Attr_Principal_rec.Attr_Principal_id = '||
754 -- TO_CHAR(p_Attr_Principal_rec.Attr_Principal_id));
755 IF p_Attr_Principal_rec.Attr_Principal_id = FND_API.g_miss_num
756 OR p_Attr_Principal_rec.Attr_Principal_id IS NULL THEN
757 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
758 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
759 FND_MESSAGE.set_token('COLUMN','Attr_Principal_id');
760 FND_MSG_PUB.add;
761 END IF;
762 x_return_status := FND_API.g_ret_sts_error;
763 RETURN;
764 END IF;
765
766 IF p_Attr_Principal_rec.last_update_date = FND_API.g_miss_date
767 OR p_Attr_Principal_rec.last_update_date IS NULL THEN
768 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
769 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
770 FND_MESSAGE.set_token('COLUMN','last_update_date');
771 FND_MSG_PUB.add;
772 END IF;
773 x_return_status := FND_API.g_ret_sts_error;
774 RETURN;
775 END IF;
776
777 IF p_Attr_Principal_rec.last_updated_by = FND_API.g_miss_num
778 OR p_Attr_Principal_rec.last_updated_by IS NULL THEN
779 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
780 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
781 FND_MESSAGE.set_token('COLUMN','last_updated_by');
782 FND_MSG_PUB.add;
783 END IF;
784 x_return_status := FND_API.g_ret_sts_error;
785 RETURN;
786 END IF;
787
788 IF p_Attr_Principal_rec.creation_date = FND_API.g_miss_date
789 OR p_Attr_Principal_rec.creation_date IS NULL THEN
790 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
791 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
792 FND_MESSAGE.set_token('COLUMN','creation_date');
793 FND_MSG_PUB.add;
794 END IF;
795 x_return_status := FND_API.g_ret_sts_error;
796 RETURN;
797 END IF;
798
799 IF p_Attr_Principal_rec.created_by = FND_API.g_miss_num
800 OR p_Attr_Principal_rec.created_by IS NULL THEN
801 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
802 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
803 FND_MESSAGE.set_token('COLUMN','created_by');
804 FND_MSG_PUB.add;
805 END IF;
806 x_return_status := FND_API.g_ret_sts_error;
807 RETURN;
808 END IF;
809
810 IF p_Attr_Principal_rec.object_version_number = FND_API.g_miss_num
811 OR p_Attr_Principal_rec.object_version_number IS NULL THEN
812 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
813 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
814 FND_MESSAGE.set_token('COLUMN','object_version_number');
815 FND_MSG_PUB.add;
816 END IF;
817 x_return_status := FND_API.g_ret_sts_error;
818 RETURN;
819 END IF;
820
821
822
823 IF p_Attr_Principal_rec.attribute_id = FND_API.g_miss_num
824 OR p_Attr_Principal_rec.attribute_id IS NULL THEN
825 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
826 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
827 FND_MESSAGE.set_token('COLUMN','attribute_id');
828 FND_MSG_PUB.add;
829 END IF;
830 x_return_status := FND_API.g_ret_sts_error;
831 RETURN;
832 END IF;
833
834 IF p_Attr_Principal_rec.jtf_auth_principal_id = FND_API.g_miss_num
835 OR p_Attr_Principal_rec.jtf_auth_principal_id IS NULL THEN
836 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
837 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
838 FND_MESSAGE.set_token('COLUMN','jtf_auth_principal_id');
839 FND_MSG_PUB.add;
840 END IF;
841 x_return_status := FND_API.g_ret_sts_error;
842 RETURN;
843 END IF;
844 ELSE
845
846 IF p_Attr_Principal_rec.Attr_Principal_id IS NULL THEN
847 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
848 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
849 FND_MESSAGE.set_token('COLUMN','Attr_Principal_id');
850 FND_MSG_PUB.add;
851 END IF;
852 x_return_status := FND_API.g_ret_sts_error;
853 RETURN;
854 END IF;
855
856 IF p_Attr_Principal_rec.last_update_date IS NULL THEN
857 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
858 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
859 FND_MESSAGE.set_token('COLUMN','last_update_date');
860 FND_MSG_PUB.add;
861 END IF;
862 x_return_status := FND_API.g_ret_sts_error;
863 RETURN;
864 END IF;
865
866 IF p_Attr_Principal_rec.last_updated_by IS NULL THEN
867 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
868 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
869 FND_MESSAGE.set_token('COLUMN','last_updated_by');
870 FND_MSG_PUB.add;
871 END IF;
872 x_return_status := FND_API.g_ret_sts_error;
873 RETURN;
874 END IF;
875
876 IF p_Attr_Principal_rec.creation_date IS NULL THEN
877 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
878 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
879 FND_MESSAGE.set_token('COLUMN','creation_date');
880 FND_MSG_PUB.add;
881 END IF;
882 x_return_status := FND_API.g_ret_sts_error;
883 RETURN;
884 END IF;
885
886 IF p_Attr_Principal_rec.created_by IS NULL THEN
887 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
888 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
889 FND_MESSAGE.set_token('COLUMN','created_by');
890 FND_MSG_PUB.add;
891 END IF;
892 x_return_status := FND_API.g_ret_sts_error;
893 RETURN;
894 END IF;
895
896 IF p_Attr_Principal_rec.object_version_number IS NULL THEN
897 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
898 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
899 FND_MESSAGE.set_token('COLUMN','object_version_number');
900 FND_MSG_PUB.add;
901 END IF;
902 x_return_status := FND_API.g_ret_sts_error;
903 RETURN;
904 END IF;
905
906 IF p_Attr_Principal_rec.attribute_id IS NULL THEN
907 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
908 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
909 FND_MESSAGE.set_token('COLUMN','attribute_id');
910 FND_MSG_PUB.add;
911 END IF;
912 x_return_status := FND_API.g_ret_sts_error;
913 RETURN;
914 END IF;
915
916 IF p_Attr_Principal_rec.jtf_auth_principal_id IS NULL THEN
917 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
918 FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
919 FND_MESSAGE.set_token('COLUMN','enabled_flag');
920 FND_MSG_PUB.add;
921 END IF;
922 x_return_status := FND_API.g_ret_sts_error;
923 RETURN;
924 END IF;
925 END IF;
926
927 END check_req_items;
928
929 PROCEDURE check_FK_items(
930 p_Attr_Principal_rec IN Attr_Principal_rec_type,
931 x_return_status OUT NOCOPY VARCHAR2
932 )
933 IS
934 BEGIN
935 x_return_status := FND_API.g_ret_sts_success;
936
937 -- Enter custom code here
938
939 END check_FK_items;
940
941 PROCEDURE check_Lookup_items(
942 p_Attr_Principal_rec IN Attr_Principal_rec_type,
943 x_return_status OUT NOCOPY VARCHAR2
944 )
945 IS
946 BEGIN
947 x_return_status := FND_API.g_ret_sts_success;
948
949 -- Enter custom code here
950
951 END check_Lookup_items;
952
953 PROCEDURE Check_Attr_Principal_Items (
954 p_Attr_Principal_rec IN Attr_Principal_rec_type
955 ,p_validation_mode IN VARCHAR2
956 ,x_return_status OUT NOCOPY VARCHAR2
957 )
958 IS
959 l_api_name CONSTANT VARCHAR2(30) := 'Check_Attr_Usage_Items';
960 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
961
962 BEGIN
963
964 -- Check Items Uniqueness API calls
965 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : Before check_uk_items' );
966 check_uk_items(
967 p_Attr_Principal_rec => p_Attr_Principal_rec
968 ,p_validation_mode => p_validation_mode
969 ,x_return_status => x_return_status
970 );
971
972 IF x_return_status <> FND_API.g_ret_sts_success THEN
973 RETURN;
974 END IF;
975
976 -- Check Items Required/NOT NULL API calls
977 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : Before check_req_items' );
978 check_req_items(
979 p_Attr_Principal_rec => p_Attr_Principal_rec
980 ,p_validation_mode => p_validation_mode
981 ,x_return_status => x_return_status
982 );
983 IF x_return_status <> FND_API.g_ret_sts_success THEN
984 RETURN;
985 END IF;
986 -- Check Items Foreign Keys API calls
987 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : Before check_FK_items' );
988 check_FK_items(
989 p_Attr_Principal_rec => p_Attr_Principal_rec
990 ,x_return_status => x_return_status
991 );
992 IF x_return_status <> FND_API.g_ret_sts_success THEN
993 RETURN;
994 END IF;
995 -- Check Items Lookups
996 --DBMS_OUTPUT.PUT_LINE(l_full_name||' : Before check_Lookup_items' );
997 check_Lookup_items(
998 p_Attr_Principal_rec => p_Attr_Principal_rec
999 ,x_return_status => x_return_status
1000 );
1001 IF x_return_status <> FND_API.g_ret_sts_success THEN
1002 RETURN;
1003 END IF;
1004
1005 END Check_Attr_Principal_Items;
1006
1007
1008
1009 PROCEDURE Complete_Attr_Principal_Rec (
1010 p_Attr_Principal_rec IN Attr_Principal_rec_type
1011 ,x_complete_rec OUT NOCOPY Attr_Principal_rec_type
1012 )
1013 IS
1014 l_return_status VARCHAR2(1);
1015
1016 CURSOR c_complete IS
1017 SELECT *
1018 FROM pv_Attr_Principals
1019 WHERE Attr_Principal_id = p_Attr_Principal_rec.Attr_Principal_id;
1020 l_Attr_Principal_rec c_complete%ROWTYPE;
1021 BEGIN
1022 x_complete_rec := p_Attr_Principal_rec;
1023
1024 OPEN c_complete;
1025 FETCH c_complete INTO l_Attr_Principal_rec;
1026 CLOSE c_complete;
1027
1028 -- Attr_Principal_id
1029 IF p_Attr_Principal_rec.Attr_Principal_id = FND_API.g_miss_num THEN
1030 x_complete_rec.Attr_Principal_id := l_Attr_Principal_rec.Attr_Principal_id;
1031 END IF;
1032
1033 -- last_update_date
1034 IF p_Attr_Principal_rec.last_update_date = FND_API.g_miss_date THEN
1035 x_complete_rec.last_update_date := l_Attr_Principal_rec.last_update_date;
1036 END IF;
1037
1038 -- last_updated_by
1039 IF p_Attr_Principal_rec.last_updated_by = FND_API.g_miss_num THEN
1040 x_complete_rec.last_updated_by := l_Attr_Principal_rec.last_updated_by;
1041 END IF;
1042
1043 -- creation_date
1044 IF p_Attr_Principal_rec.creation_date = FND_API.g_miss_date THEN
1045 x_complete_rec.creation_date := l_Attr_Principal_rec.creation_date;
1046 END IF;
1047
1048 -- created_by
1049 IF p_Attr_Principal_rec.created_by = FND_API.g_miss_num THEN
1050 x_complete_rec.created_by := l_Attr_Principal_rec.created_by;
1051 END IF;
1052
1053 -- last_update_login
1054 IF p_Attr_Principal_rec.last_update_login = FND_API.g_miss_num THEN
1055 x_complete_rec.last_update_login := l_Attr_Principal_rec.last_update_login;
1056 END IF;
1057
1058
1059 -- object_version_number
1060 IF p_Attr_Principal_rec.object_version_number = FND_API.g_miss_num THEN
1061 x_complete_rec.object_version_number := l_Attr_Principal_rec.object_version_number;
1062 END IF;
1063
1064 -- attribute_id
1065 IF p_Attr_Principal_rec.attribute_id = FND_API.g_miss_num THEN
1066 x_complete_rec.attribute_id := l_Attr_Principal_rec.attribute_id;
1067 END IF;
1068
1069 -- jtf_auth_principal_id
1070 IF p_Attr_Principal_rec.jtf_auth_principal_id = FND_API.g_miss_num THEN
1071 x_complete_rec.jtf_auth_principal_id := l_Attr_Principal_rec.jtf_auth_principal_id;
1072 END IF;
1073
1074 -- security_group_id
1075 --IF p_Attr_Principal_rec.security_group_id = FND_API.g_miss_num THEN
1076 -- x_complete_rec.security_group_id := l_Attr_Principal_rec.security_group_id;
1077 --END IF;
1078 -- Note: Developers need to modify the procedure
1079 -- to handle any business specific requirements.
1080 END Complete_Attr_Principal_Rec;
1081
1082 PROCEDURE Validate_Attr_Principal(
1083 p_api_version_number IN NUMBER
1084 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1085 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1086 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.G_UPDATE
1087 ,p_Attr_Principal_rec IN Attr_Principal_rec_type
1088 ,x_return_status OUT NOCOPY VARCHAR2
1089 ,x_msg_count OUT NOCOPY NUMBER
1090 ,x_msg_data OUT NOCOPY VARCHAR2
1091 )
1092 IS
1093 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Attr_Principal';
1094 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1095 l_api_version_number CONSTANT NUMBER := 1.0;
1096 l_object_version_number NUMBER;
1097 l_Attr_Principal_rec PV_Attr_Principal_PVT.Attr_Principal_rec_type;
1098
1099 BEGIN
1100 -- Standard Start of API savepoint
1101 SAVEPOINT VALIDATE_Attr_Principal;
1102
1103 -- Standard call to check for call compatibility.
1104 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1105 p_api_version_number,
1106 l_api_name,
1107 G_PKG_NAME)
1108 THEN
1109 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1110 END IF;
1111
1112 -- Initialize message list if p_init_msg_list is set to TRUE.
1113 IF FND_API.to_Boolean( p_init_msg_list )
1114 THEN
1115 FND_MSG_PUB.initialize;
1116 END IF;
1117 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1118 Check_Attr_Principal_Items(
1119 p_Attr_Principal_rec => p_Attr_Principal_rec
1120 ,p_validation_mode => p_validation_mode
1121 ,x_return_status => x_return_status
1122 );
1123 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1124 RAISE FND_API.G_EXC_ERROR;
1125 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1126 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1127 END IF;
1128 END IF;
1129 Complete_Attr_Principal_Rec(
1130 p_Attr_Principal_rec => p_Attr_Principal_rec
1131 ,x_complete_rec => l_Attr_Principal_rec
1132 );
1133 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1134 Validate_Attr_Principal_Rec(
1135 p_api_version_number => 1.0
1136 ,p_init_msg_list => FND_API.G_FALSE
1137 ,x_return_status => x_return_status
1138 ,x_msg_count => x_msg_count
1139 ,x_msg_data => x_msg_data
1140 ,p_Attr_Principal_rec => l_Attr_Principal_rec
1141 ,p_validation_mode => p_validation_mode
1142 );
1143
1144 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1145 RAISE FND_API.G_EXC_ERROR;
1146 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1147 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1148 END IF;
1149 END IF;
1150
1151
1152 -- Debug Message
1153 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
1154 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - start');
1155 END IF;
1156
1157 -- Initialize API return status to SUCCESS
1158 x_return_status := FND_API.G_RET_STS_SUCCESS;
1159
1160
1161 -- Debug Message
1162 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
1163 PVX_Utility_PVT.debug_message('Private API: '||l_full_name||' - end');
1164 END IF;
1165
1166 -- Standard call to get message count and if count is 1, get message info.
1167 FND_MSG_PUB.Count_And_Get
1168 (p_count => x_msg_count,
1169 p_data => x_msg_data
1170 );
1171 EXCEPTION
1172 /*
1173 WHEN PVX_Utility_PVT.resource_locked THEN
1174 x_return_status := FND_API.g_ret_sts_error;
1175 PVX_Utility_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1176 */
1177 WHEN FND_API.G_EXC_ERROR THEN
1178 ROLLBACK TO VALIDATE_Attr_Principal;
1179 x_return_status := FND_API.G_RET_STS_ERROR;
1180 -- Standard call to get message count and if count=1, get the message
1181 FND_MSG_PUB.Count_And_Get (
1182 p_encoded => FND_API.G_FALSE,
1183 p_count => x_msg_count,
1184 p_data => x_msg_data
1185 );
1186
1187 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1188 ROLLBACK TO VALIDATE_Attr_Principal;
1189 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1190 -- Standard call to get message count and if count=1, get the message
1191 FND_MSG_PUB.Count_And_Get (
1192 p_encoded => FND_API.G_FALSE,
1193 p_count => x_msg_count,
1194 p_data => x_msg_data
1195 );
1196
1197 WHEN OTHERS THEN
1198 ROLLBACK TO VALIDATE_Attr_Principal;
1199 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1200 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1201 THEN
1202 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1203 END IF;
1204 -- Standard call to get message count and if count=1, get the message
1205 FND_MSG_PUB.Count_And_Get (
1206 p_encoded => FND_API.G_FALSE,
1207 p_count => x_msg_count,
1208 p_data => x_msg_data
1209 );
1210 End Validate_Attr_Principal;
1211
1212
1213 PROCEDURE Validate_Attr_Principal_Rec(
1214 p_api_version_number IN NUMBER
1215 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1216 ,x_return_status OUT NOCOPY VARCHAR2
1217 ,x_msg_count OUT NOCOPY NUMBER
1218 ,x_msg_data OUT NOCOPY VARCHAR2
1219 ,p_Attr_Principal_rec IN Attr_Principal_rec_type
1220 ,p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.G_UPDATE
1221 )
1222 IS
1223 BEGIN
1224 -- Initialize message list if p_init_msg_list is set to TRUE.
1225 IF FND_API.to_Boolean( p_init_msg_list )
1226 THEN
1227 FND_MSG_PUB.initialize;
1228 END IF;
1229
1230 -- Initialize API return status to SUCCESS
1231 x_return_status := FND_API.G_RET_STS_SUCCESS;
1232
1233 -- Hint: Validate data
1234 -- If data not valid
1235 -- THEN
1236 -- x_return_status := FND_API.G_RET_STS_ERROR;
1237
1238 -- Debug Message
1239 IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)) THEN
1240 PVX_Utility_PVT.debug_message('Private API: Validate_dm_model_rec');
1241 END IF;
1242 -- Standard call to get message count and if count is 1, get message info.
1243 FND_MSG_PUB.Count_And_Get
1244 (p_count => x_msg_count,
1245 p_data => x_msg_data
1246 );
1247 END Validate_Attr_Principal_Rec;
1248
1249 END PV_Attr_Principal_PVT;