DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_IBA_PL_STYLESHEETS_PVT

Source


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