DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_FLEX_TYPES

Source


1 PACKAGE BODY fnd_flex_types AS
2 /* $Header: AFFFTYPB.pls 120.2.12010000.1 2008/07/25 14:14:34 appldev ship $ */
3 
4 
5 
6 PROCEDURE validate_type(typ IN VARCHAR2, code IN VARCHAR2) IS
7    dummy NUMBER;
8 BEGIN
9    SELECT NULL INTO dummy
10      FROM fnd_lookups
11      WHERE lookup_type = typ
12      AND lookup_code = code
13      AND enabled_flag = 'Y'
14      AND ( (start_date_active IS NULL)
15            OR (start_date_active <= SYSDATE))
16      AND ( (end_date_active IS NULL)
17            OR (end_date_active >= SYSDATE));
18 EXCEPTION
19    WHEN no_data_found THEN
20       RAISE;
21 END;
22 
23 
24 
25 PROCEDURE validate_default_type(code IN VARCHAR2) IS
26 BEGIN
27    validate_type(typ => 'FLEX_DEFAULT_TYPE', code => code);
28 END;
29 
30 
31 PROCEDURE validate_range_code(code IN VARCHAR2) IS
32 BEGIN
33    validate_type(typ => 'RANGE_CODES', code => code);
34 END;
35 
36 
37 PROCEDURE validate_field_type(code IN VARCHAR2) IS
38 BEGIN
39    validate_type(typ => 'FIELD_TYPE', code => code);
40 END;
41 
42 
43 PROCEDURE validate_segval_type(code IN VARCHAR2) IS
44 BEGIN
45    validate_type(typ => 'SEG_VAL_TYPES', code => code);
46 END;
47 
48 
49 PROCEDURE validate_event_type(code IN VARCHAR2) IS
50 BEGIN
51    validate_type(typ => 'FLEX_VALIDATION_EVENTS', code => code);
52 END;
53 
54 
55 PROCEDURE validate_column_type(code IN VARCHAR2) IS
56 BEGIN
57    validate_type(typ => 'COLUMN_TYPE', code => code);
58 END;
59 
60 PROCEDURE validate_yes_no_flag(code IN VARCHAR2) IS
61 BEGIN
62    validate_type(typ => 'YES_NO', code => code);
63 END;
64 
65 FUNCTION get_code(typ IN VARCHAR2, descr IN VARCHAR2) RETURN VARCHAR2
66   IS
67      CURSOR codes_c IS
68 	SELECT lookup_code, Decode(language, 'US', 1, 2) pri
69 	  FROM fnd_lookup_values
70 	  WHERE meaning = descr
71 	  AND lookup_type = typ
72 	  ORDER BY pri;
73      codes_r codes_c%ROWTYPE;
74      rv fnd_lookups.lookup_code%TYPE;
75 BEGIN
76    OPEN codes_c;
77    FETCH codes_c INTO codes_r;
78    IF(codes_c%found) THEN
79       rv := codes_r.lookup_code;
80     ELSE
81       RAISE no_data_found;
82    END IF;
83    CLOSE codes_c;
84    RETURN rv;
85 EXCEPTION
86    WHEN OTHERS THEN
87       CLOSE codes_c;
88       RAISE;
89 END;
90 
91 FUNCTION ad_dd_used_by_flex(p_application_id IN fnd_tables.application_id%TYPE,
92 			    p_table_name     IN fnd_tables.table_name%TYPE,
93 			    p_column_name    IN fnd_columns.column_name%TYPE,
94 			    x_message        OUT NOCOPY VARCHAR2) RETURN BOOLEAN
95   IS
96      l_message VARCHAR2(2000);
97 BEGIN
98    IF (p_column_name IS NULL) THEN
99       x_message := 'This table is not used by Flexfields.';
100       IF (fnd_flex_dsc_api.is_table_used(p_application_id,
101 					 p_table_name,
102 					 l_message)) THEN
103 	 x_message := l_message;
104 	 RETURN(TRUE);
105       END IF;
106       IF (fnd_flex_key_api.is_table_used(p_application_id,
107 					 p_table_name,
108 					 l_message)) THEN
109 	 x_message := l_message;
110 	 RETURN(TRUE);
111       END IF;
112       IF (fnd_flex_val_api.is_table_used(p_application_id,
113 					 p_table_name,
114 					 l_message)) THEN
115 	 x_message := l_message;
116 	 RETURN(TRUE);
117       END IF;
118     ELSE
119       x_message := 'This column is not used by Flexfields.';
120       IF (fnd_flex_dsc_api.is_column_used(p_application_id,
121 					  p_table_name,
122 					  p_column_name,
123 					  l_message)) THEN
124 	 x_message := l_message;
125 	 RETURN(TRUE);
126       END IF;
127       IF (fnd_flex_key_api.is_column_used(p_application_id,
128 					  p_table_name,
129 					  p_column_name,
130 					  l_message)) THEN
131 	 x_message := l_message;
132 	 RETURN(TRUE);
133       END IF;
134       IF (fnd_flex_val_api.is_column_used(p_application_id,
135 					  p_table_name,
136 					  p_column_name,
137 					  l_message)) THEN
138 	 x_message := l_message;
139 	 RETURN(TRUE);
140       END IF;
141    END IF;
142    RETURN(FALSE);
143 EXCEPTION
144    WHEN OTHERS THEN
145       x_message := 'FND_FLEX_TYPES.AD_DD_USED_BY_FLEX is failed. ' ||
146 	'SQLERRM : ' || Sqlerrm;
147       RETURN(TRUE);
148 END ad_dd_used_by_flex;
149 
150 END fnd_flex_types;			/* end package */