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