DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_PS_CNDCLSES_PVT

Source


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