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