DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_IBA_PL_PAGES_PVT

Source


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