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