[Home] [Help]
PACKAGE BODY: APPS.AMS_LISTFIELD_PVT
Source
1 PACKAGE BODY AMS_ListField_PVT AS
2 /* $Header: amsvlfdb.pls 115.1 2000/02/05 17:48:57 pkm ship $ */
3
4 -----------------------------------------------------------
5 -- PACKAGE
6 -- AMS_ListField_PVT
7 --
8 -- PURPOSE
9 -- Private API for Oracle Marketing List Fields.
10 --
11 -- PROCEDURES
12 -- Check_ListField_Flag_Items
13 --
14 -- HISTORY
15 -- 25-Jan-2000 choang Created.
16 --
17 ------------------------------------------------------------
18
19 PROCEDURE Check_ListField_Flag_Items (
20 p_listfield_rec IN List_Field_Rec_Type,
21 x_return_status OUT VARCHAR2
22 );
23
24 --------------------------------------------------------------------
25 -- PROCEDURE
26 -- Lock_ListField
27 --
28 -- PURPOSE
29 -- Lock a list field entry.
30 --
31 -- PARAMETERS
32 -- p_listfield_id: the list_field_id
33 -- p_object_version: the object_version_number
34 --
35 -- ISSUES
36 --
37 -- NOTES
38 -- 1. Raise exception if the object_version_number doesn't match.
39 --------------------------------------------------------------------
40 PROCEDURE Lock_ListField (
41 p_api_version IN NUMBER,
42 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
43 p_commit IN VARCHAR2 := FND_API.g_false,
44 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
45
46 x_return_status OUT VARCHAR2,
47 x_msg_count OUT NUMBER,
48 x_msg_data OUT VARCHAR2,
49
50 p_listfield_id IN NUMBER,
51 p_object_version IN NUMBER
52 )
53 IS
54 l_api_version CONSTANT NUMBER := 1.0;
55 l_api_name CONSTANT VARCHAR2(30) := 'Lock_ListField';
56 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
57
58 l_dummy NUMBER; -- Used by the lock cursor.
59
60 --
61 -- NOTE: Not necessary to distinguish between a record
62 -- which does not exist and one which has been updated
63 -- by another user. To get that distinction, remove
64 -- the object_version condition from the SQL statement
65 -- and perform comparison in the body and raise the
66 -- exception there.
67 CURSOR c_lock_req IS
68 SELECT object_version_number
69 FROM ams_list_fields_b
70 WHERE list_field_id = p_listfield_id
71 AND object_version_number = p_object_version
72 FOR UPDATE NOWAIT;
73 BEGIN
74 --------------------- initialize -----------------------
75 AMS_Utility_PVT.debug_message (l_full_name || ': Start');
76
77 IF FND_API.to_boolean (p_init_msg_list) THEN
78 FND_MSG_PUB.initialize;
79 END IF;
80
81 IF NOT FND_API.compatible_api_call (
82 l_api_version,
83 p_api_version,
84 l_api_name,
85 g_pkg_name
86 ) THEN
87 RAISE FND_API.g_exc_unexpected_error;
88 END IF;
89
90 x_return_status := FND_API.g_ret_sts_success;
91
92 ------------------------ lock -------------------------
93 OPEN c_lock_req;
94 FETCH c_lock_req INTO l_dummy;
95 IF c_lock_req%NOTFOUND THEN
96 CLOSE c_lock_req;
97 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
98 FND_MESSAGE.set_name ('AMS', 'AMS_API_RECORD_NOT_FOUND');
99 FND_MSG_PUB.add;
100 END IF;
101 RAISE FND_API.g_exc_error;
102 END IF;
103 CLOSE c_lock_req;
104
105 -------------------- finish --------------------------
106 FND_MSG_PUB.count_and_get (
107 p_encoded => FND_API.g_false,
108 p_count => x_msg_count,
109 p_data => x_msg_data
110 );
111
112 AMS_Utility_PVT.debug_message (l_full_name || ': End');
113
114 EXCEPTION
115 WHEN AMS_Utility_PVT.resource_locked THEN
116 x_return_status := FND_API.g_ret_sts_error;
117 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
118 FND_MESSAGE.set_name ('AMS', 'AMS_API_RESOURCE_LOCKED');
119 FND_MSG_PUB.add;
120 END IF;
121
122 FND_MSG_PUB.count_and_get(
123 p_encoded => FND_API.g_false,
124 p_count => x_msg_count,
125 p_data => x_msg_data
126 );
127 WHEN FND_API.g_exc_error THEN
128 x_return_status := FND_API.g_ret_sts_error;
129 FND_MSG_PUB.count_and_get (
130 p_encoded => FND_API.g_false,
131 p_count => x_msg_count,
132 p_data => x_msg_data
133 );
134 WHEN FND_API.g_exc_unexpected_error THEN
135 x_return_status := FND_API.g_ret_sts_unexp_error ;
136 FND_MSG_PUB.count_and_get (
137 p_encoded => FND_API.g_false,
138 p_count => x_msg_count,
139 p_data => x_msg_data
140 );
141 WHEN OTHERS THEN
142 x_return_status := FND_API.g_ret_sts_unexp_error ;
143 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_unexp_error)
144 THEN
145 FND_MSG_PUB.add_exc_msg (g_pkg_name, l_api_name);
146 END IF;
147
148 FND_MSG_PUB.count_and_get (
149 p_encoded => FND_API.g_false,
150 p_count => x_msg_count,
151 p_data => x_msg_data
152 );
153 END Lock_ListField;
154
155
156 --------------------------------------------------------------------
157 -- PROCEDURE
158 -- Update_ListField
159 --
160 -- PURPOSE
161 -- Update a list field entry.
162 --
163 -- PARAMETERS
164 -- p_listfield_rec: the record representing AMS_LIST_FIELDS_VL.
165 --
166 -- NOTES
167 -- 1. Raise exception if the object_version_number doesn't match.
168 -- 2. If an attribute is passed in as FND_API.g_miss_char/num/date,
169 -- that column won't be updated.
170 --------------------------------------------------------------------
171 PROCEDURE Update_ListField (
172 p_api_version IN NUMBER,
173 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
174 p_commit IN VARCHAR2 := FND_API.g_false,
175 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
176
177 x_return_status OUT VARCHAR2,
178 x_msg_count OUT NUMBER,
179 x_msg_data OUT VARCHAR2,
180
181 p_listfield_rec IN List_Field_Rec_Type
182 )
183 IS
184 l_api_version CONSTANT NUMBER := 1.0;
185 l_api_name CONSTANT VARCHAR2(30) := 'Update_ListField';
186 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
187
188 l_listfield_rec List_Field_Rec_Type := p_listfield_rec;
189 l_return_status VARCHAR2(1);
190 BEGIN
191 --------------------- initialize -----------------------
192 SAVEPOINT Update_ListField;
193
194 AMS_Utility_PVT.debug_message (l_full_name || ': Start');
195
196 IF FND_API.to_boolean (p_init_msg_list) THEN
197 FND_MSG_PUB.initialize;
198 END IF;
199
200 IF NOT FND_API.compatible_api_call(
201 l_api_version,
202 p_api_version,
203 l_api_name,
204 g_pkg_name
205 ) THEN
206 RAISE FND_API.g_exc_unexpected_error;
207 END IF;
208
209 x_return_status := FND_API.g_ret_sts_success;
210
211 ----------------------- validate ----------------------
212 AMS_Utility_PVT.debug_message (l_full_name || ': Validate');
213
214 -- replace g_miss_char/num/date with current column values
215 Complete_ListField_Rec (p_listfield_rec, l_listfield_rec);
216
217 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
218 Check_ListField_Items (
219 p_listfield_rec => p_listfield_rec,
220 p_validation_mode => JTF_PLSQL_API.g_update,
221 x_return_status => l_return_status
222 );
223
224 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
225 RAISE FND_API.g_exc_unexpected_error;
226 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
227 RAISE FND_API.g_exc_error;
228 END IF;
229 END IF;
230
231 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
232 Check_ListField_Record (
233 p_listfield_rec => p_listfield_rec,
234 p_complete_rec => l_listfield_rec,
235 x_return_status => l_return_status
236 );
237
238 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
239 RAISE FND_API.g_exc_unexpected_error;
240 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
241 RAISE FND_API.g_exc_error;
242 END IF;
243 END IF;
244
245 -------------------------- update --------------------
246 UPDATE ams_list_fields_b
247 SET
248 object_version_number = object_version_number + 1,
249 field_table_name = l_listfield_rec.field_table_name,
250 field_column_name = l_listfield_rec.field_column_name,
251 column_data_type = l_listfield_rec.column_data_type,
252 column_data_length = l_listfield_rec.column_data_length,
253 enabled_flag = l_listfield_rec.enabled_flag,
254 list_type_field_apply_on = l_listfield_rec.list_type_field_apply_on,
255 last_update_date = SYSDATE,
256 last_updated_by = FND_GLOBAL.user_id,
257 last_update_login = FND_GLOBAL.conc_login_id
258 WHERE list_field_id = l_listfield_rec.list_field_id;
259
260 IF (SQL%NOTFOUND) THEN
261 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
262 FND_MESSAGE.set_name ('AMS', 'AMS_API_RECORD_NOT_FOUND');
263 FND_MSG_PUB.add;
264 END IF;
265 RAISE FND_API.g_exc_error;
266 END IF;
267
268 UPDATE ams_list_fields_tl
269 SET
270 description = l_listfield_rec.description,
271 last_update_date = SYSDATE,
272 last_updated_by = FND_GLOBAL.user_id,
273 last_update_login = FND_GLOBAL.conc_login_id,
274 source_lang = USERENV('LANG')
275 WHERE list_field_id = l_listfield_rec.list_field_id
276 AND USERENV('LANG') IN (language, source_lang);
277
278 IF (SQL%NOTFOUND) THEN
279 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
280 FND_MESSAGE.set_name ('AMS', 'AMS_API_RECORD_NOT_FOUND');
281 FND_MSG_PUB.add;
282 END IF;
283 RAISE FND_API.g_exc_error;
284 END IF;
285
286 -------------------- finish --------------------------
287 IF FND_API.to_boolean (p_commit) THEN
288 COMMIT;
289 END IF;
290
291 FND_MSG_PUB.count_and_get (
292 p_encoded => FND_API.g_false,
293 p_count => x_msg_count,
294 p_data => x_msg_data
295 );
296
297 AMS_Utility_PVT.debug_message (l_full_name || ': End');
298
299 EXCEPTION
300 WHEN FND_API.g_exc_error THEN
301 ROLLBACK TO Update_ListField;
302 x_return_status := FND_API.g_ret_sts_error;
303 FND_MSG_PUB.count_and_get (
304 p_encoded => FND_API.g_false,
305 p_count => x_msg_count,
306 p_data => x_msg_data
307 );
308 WHEN FND_API.g_exc_unexpected_error THEN
309 ROLLBACK TO Update_ListField;
310 x_return_status := FND_API.g_ret_sts_unexp_error ;
311 FND_MSG_PUB.count_and_get (
312 p_encoded => FND_API.g_false,
313 p_count => x_msg_count,
314 p_data => x_msg_data
315 );
316 WHEN OTHERS THEN
317 ROLLBACK TO Update_ListField;
318 x_return_status := FND_API.g_ret_sts_unexp_error ;
319
320 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_unexp_error)
321 THEN
322 FND_MSG_PUB.add_exc_msg (g_pkg_name, l_api_name);
323 END IF;
324
325 FND_MSG_PUB.count_and_get (
326 p_encoded => FND_API.g_false,
327 p_count => x_msg_count,
328 p_data => x_msg_data
329 );
330 END Update_ListField;
331
332
333 --------------------------------------------------------------------
334 -- PROCEDURE
335 -- Validate_ListField
336 --
337 -- PURPOSE
338 -- Validate a list field entry.
339 --
340 -- PARAMETERS
341 -- p_listfield_rec: the record representing AMS_LIST_FIELDS_VL.
342 --
343 -- NOTES
344 -- 1. p_listfield_rec should be the complete list field record. There
345 -- should not be any FND_API.g_miss_char/num/date in it.
346 -- 2. If FND_API.g_miss_char/num/date is in the record, then raise
347 -- an exception, as those values are not handled.
348 --------------------------------------------------------------------
349 PROCEDURE Validate_ListField (
350 p_api_version IN NUMBER,
351 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
352 p_commit IN VARCHAR2 := FND_API.g_false,
353 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
354
355 x_return_status OUT VARCHAR2,
356 x_msg_count OUT NUMBER,
357 x_msg_data OUT VARCHAR2,
358
359 p_listfield_rec IN List_Field_Rec_Type
360 )
361 IS
362 l_api_version CONSTANT NUMBER := 1.0;
363 l_api_name CONSTANT VARCHAR2(30) := 'Validate_ListField';
364 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
365
366 l_return_status VARCHAR2(1);
367 BEGIN
371 IF FND_API.to_boolean (p_init_msg_list) THEN
368 --------------------- initialize -----------------------
369 AMS_Utility_PVT.debug_message (l_full_name || ': Start');
370
372 FND_MSG_PUB.initialize;
373 END IF;
374
375 IF NOT FND_API.compatible_api_call (
376 l_api_version,
377 p_api_version,
378 l_api_name,
379 g_pkg_name
380 ) THEN
381 RAISE FND_API.g_exc_unexpected_error;
382 END IF;
383
384 x_return_status := FND_API.g_ret_sts_success;
385
386 ---------------------- validate ------------------------
387 AMS_Utility_PVT.debug_message (l_full_name || ': Check items');
388
389 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
390 Check_ListField_Items (
391 p_listfield_rec => p_listfield_rec,
392 p_validation_mode => JTF_PLSQL_API.g_create,
393 x_return_status => l_return_status
394 );
395
396 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
397 RAISE FND_API.g_exc_unexpected_error;
398 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
399 RAISE FND_API.g_exc_error;
400 END IF;
401 END IF;
402
403 AMS_Utility_PVT.debug_message (l_full_name || ': Check record');
404
405 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
406 Check_ListField_Record (
407 p_listfield_rec => p_listfield_rec,
408 p_complete_rec => NULL,
409 x_return_status => l_return_status
410 );
411
412 IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
413 RAISE FND_API.g_exc_unexpected_error;
414 ELSIF l_return_status = FND_API.g_ret_sts_error THEN
415 RAISE FND_API.g_exc_error;
416 END IF;
417 END IF;
418
419 -------------------- finish --------------------------
420 FND_MSG_PUB.count_and_get (
421 p_encoded => FND_API.g_false,
422 p_count => x_msg_count,
423 p_data => x_msg_data
424 );
425
426 AMS_Utility_PVT.debug_message (l_full_name || ': End');
427
428 EXCEPTION
429 WHEN FND_API.g_exc_error THEN
430 x_return_status := FND_API.g_ret_sts_error;
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 WHEN FND_API.g_exc_unexpected_error THEN
437 x_return_status := FND_API.g_ret_sts_unexp_error ;
438 FND_MSG_PUB.count_and_get (
439 p_encoded => FND_API.g_false,
440 p_count => x_msg_count,
441 p_data => x_msg_data
442 );
443 WHEN OTHERS THEN
444 x_return_status := FND_API.g_ret_sts_unexp_error;
445 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_unexp_error)
446 THEN
447 FND_MSG_PUB.add_exc_msg (g_pkg_name, l_api_name);
448 END IF;
449
450 FND_MSG_PUB.count_and_get (
451 p_encoded => FND_API.g_false,
452 p_count => x_msg_count,
453 p_data => x_msg_data
454 );
455 END Validate_ListField;
456
457
458 ---------------------------------------------------------------------
459 -- PROCEDURE
460 -- Check_ListField_Items
461 --
462 -- PURPOSE
463 -- Perform the item level checking including unique keys,
464 -- required columns, foreign keys, domain constraints.
465 --
466 -- PARAMETERS
467 -- p_listfield_rec: the record to be validated
468 -- p_validation_mode: JTF_PLSQL_API.g_create/g_update
469 ---------------------------------------------------------------------
470 PROCEDURE Check_ListField_Items (
471 p_listfield_rec IN List_Field_Rec_Type,
472 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
473 x_return_status OUT VARCHAR2
474 )
475 IS
476 BEGIN
477 --
478 -- Validate required items.
479 Check_ListField_Flag_Items (
480 p_listfield_rec => p_listfield_rec,
481 x_return_status => x_return_status
482 );
483
484 IF x_return_status <> FND_API.g_ret_sts_success THEN
485 RETURN;
486 END IF;
487 END Check_ListField_Items;
488
489 ---------------------------------------------------------------------
490 -- PROCEDURE
491 -- Check_ListField_Record
492 --
493 -- PURPOSE
494 -- Check the record level business rules.
495 --
496 -- PARAMETERS
497 -- p_listfield_rec: the record to be validated; may contain attributes
498 -- as FND_API.g_miss_char/num/date
499 -- p_complete_rec: the complete record after all "g_miss" items
500 -- have been replaced by current database values
501 ---------------------------------------------------------------------
502 PROCEDURE Check_ListField_Record (
503 p_listfield_rec IN List_Field_Rec_Type,
504 p_complete_rec IN List_Field_Rec_Type := NULL,
505 x_return_status OUT VARCHAR2
506 )
507 IS
508 BEGIN
509 x_return_status := FND_API.g_ret_sts_success;
510 END Check_ListField_Record;
511
512
513 ---------------------------------------------------------------------
514 -- PROCEDURE
515 -- Init_ListField_Rec
516 --
517 -- PURPOSE
518 -- Initialize all attributes to be FND_API.g_miss_char/num/date.
519 ---------------------------------------------------------------------
520 PROCEDURE Init_ListField_Rec (
521 x_listfield_rec OUT List_Field_Rec_Type
522 )
523 IS
524 BEGIN
525 x_listfield_rec.list_field_id := FND_API.g_miss_num;
529 x_listfield_rec.created_by := FND_API.g_miss_num;
526 x_listfield_rec.last_update_date := FND_API.g_miss_date;
527 x_listfield_rec.last_updated_by := FND_API.g_miss_num;
528 x_listfield_rec.creation_date := FND_API.g_miss_date;
530 x_listfield_rec.last_update_login := FND_API.g_miss_num;
531 x_listfield_rec.object_version_number := FND_API.g_miss_num;
532 x_listfield_rec.field_table_name := FND_API.g_miss_char;
533 x_listfield_rec.field_column_name := FND_API.g_miss_char;
534 x_listfield_rec.column_data_type := FND_API.g_miss_char;
535 x_listfield_rec.column_data_length := FND_API.g_miss_num;
536 x_listfield_rec.enabled_flag := FND_API.g_miss_char;
537 x_listfield_rec.list_type_field_apply_on := FND_API.g_miss_char;
538 x_listfield_rec.description := FND_API.g_miss_char;
539 END Init_ListField_Rec;
540
541
542 ---------------------------------------------------------------------
543 -- PROCEDURE
544 -- Complete_ListField_Rec
545 --
546 -- PURPOSE
547 -- For Update_ListField, some attributes may be passed in as
548 -- FND_API.g_miss_char/num/date if the user doesn't want to
549 -- update those attributes. This procedure will replace the
550 -- "g_miss" attributes with current database values.
551 --
552 -- PARAMETERS
553 -- p_listdr_rec: the record which may contain attributes as
554 -- FND_API.g_miss_char/num/date
555 -- x_complete_rec: the complete record after all "g_miss" items
556 -- have been replaced by current database values
557 ---------------------------------------------------------------------
558 PROCEDURE Complete_ListField_Rec (
559 p_listfield_rec IN List_Field_Rec_Type,
560 x_complete_rec OUT List_Field_Rec_Type
561 )
562 IS
563 CURSOR c_field IS
564 SELECT *
565 FROM ams_list_fields_b
566 WHERE list_field_id = p_listfield_rec.list_field_id
567 ;
568 l_listfield_rec c_field%ROWTYPE;
569 BEGIN
570 x_complete_rec := p_listfield_rec;
571
572 --
573 -- Fetch the values which are in the database.
574 OPEN c_field;
575 FETCH c_field INTO l_listfield_rec;
576 IF c_field%NOTFOUND THEN
577 CLOSE c_field;
578 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
579 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
580 FND_MSG_PUB.add;
581 END IF;
582 RAISE FND_API.g_exc_error;
583 END IF;
584 CLOSE c_field;
585
586 -- FIELD_TABLE_NAME
587 IF p_listfield_rec.field_table_name = FND_API.g_miss_char THEN
588 x_complete_rec.field_table_name := l_listfield_rec.field_table_name;
589 END IF;
590
591 -- FIELD_COLUMN_NAME
592 IF p_listfield_rec.field_column_name = FND_API.g_miss_char THEN
593 x_complete_rec.field_column_name := l_listfield_rec.field_column_name;
594 END IF;
595
596 -- COLUMN_DATA_TYPE
597 IF p_listfield_rec.column_data_type = FND_API.g_miss_char THEN
598 x_complete_rec.column_data_type := l_listfield_rec.column_data_type;
599 END IF;
600
601 -- COLUMN_DATA_LENGTH
602 IF p_listfield_rec.column_data_length = FND_API.g_miss_num THEN
603 x_complete_rec.column_data_length := l_listfield_rec.column_data_length;
604 END IF;
605
606 -- ENABLED_FLAG
607 IF p_listfield_rec.enabled_flag = FND_API.g_miss_char THEN
608 x_complete_rec.enabled_flag := l_listfield_rec.enabled_flag;
609 END IF;
610
611 -- LIST_TYPE_FIELD_APPLY_ON
612 IF p_listfield_rec.list_type_field_apply_on = FND_API.g_miss_char THEN
613 x_complete_rec.list_type_field_apply_on := l_listfield_rec.list_type_field_apply_on;
614 END IF;
615
616 -------------------------------------------
617 -- ISSUE:
618 -- As of 25-jan-2000, VL views are broken
619 -- because of language setting in dev
620 -- database. Remove the leading comments
621 -- after language setting fixed.
622 -- DESCRIPTION
623 -- IF p_listfield_rec.description = FND_API.g_miss_char THEN
624 -- x_complete_rec.description := l_listfield_rec.description;
625 -- END IF;
626
627 END Complete_ListField_Rec;
628
629
630 ---------------------------------------------------------------------
631 -- PROCEDURE
632 -- Check_ListField_Flag_Items
633 --
634 -- PURPOSE
635 -- Validate that the flags have proper values. Proper values
636 -- for flags are 'Y' and 'N'.
637 --
638 -- HISTORY
639 -- 01-Nov-1999 choang Created.
640 -- 16-Dec-1999 choang Added check for DEDUPE_FLAG and PROCESS_IMMED_FLAG.
641 ---------------------------------------------------------------------
642 PROCEDURE Check_ListField_Flag_Items (
643 p_listfield_rec IN List_Field_Rec_Type,
644 x_return_status OUT VARCHAR2
645 )
646 IS
647 BEGIN
648 x_return_status := FND_API.g_ret_sts_success;
649
650 --
651 -- ENABLED_FLAG
652 IF p_listfield_rec.enabled_flag <> FND_API.g_miss_char AND p_listfield_rec.enabled_flag IS NOT NULL THEN
653 IF AMS_Utility_PVT.is_Y_or_N (p_listfield_rec.enabled_flag) = FND_API.g_false THEN
654 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
655 FND_MESSAGE.set_name ('AMS', 'AMS_LIST_BAD_ENABLED_FLAG');
656 FND_MSG_PUB.add;
657 END IF;
658
659 x_return_status := FND_API.g_ret_sts_error;
660 RETURN;
661 END IF;
662 END IF;
663 END Check_ListField_Flag_Items;
664
665
666 END AMS_ListField_PVT;