DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_LIST_GROUP_PVT

Source


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