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