DBA Data[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;