DBA Data[Home] [Help]

PACKAGE BODY: APPS.EDW_FLEX_MAPPING

Source


1 PACKAGE BODY EDW_FLEX_MAPPING as
2 /* $Header: EDWSRFLB.pls 115.5 2002/12/05 22:19:00 arsantha ship $ */
3 
4 /*===========================================================================*/
5 
6 FUNCTION GET_VALUE(   P_fact_name	 	 IN  VARCHAR2,
7 			  P_dim_name		 IN  VARCHAR2,
8 			  P_ccid		 IN  NUMBER,
9 			  P_set_of_books_id      IN  VARCHAR2,
10 			  P_structure_id              IN  NUMBER)
11 				RETURN VARCHAR2 IS
12 
13 l_application_column_name	VARCHAR2(30);
14 l_value_set_id                  NUMBER(10);
15 l_instance_code			VARCHAR2(10);
16 l_segment_value                 VARCHAR2(25);
17 l_sob				NUMBER;
18 l_edw_sob			NUMBER;
19 l_parent_equi_sob		NUMBER;
20 l_parent_sob			NUMBER;
21 l_instance			VARCHAR2(30);
22 BEGIN
23 
24 	l_sob := p_set_of_books_id;
25 
26 	begin
27 
28 	select loc.edw_set_of_books_id into l_edw_sob
29 	from edw_local_set_of_books loc,
30 	edw_local_instance inst
31 	where P_set_of_books_id = loc.set_of_books_id
32 	AND loc.instance = inst.instance_code;
33 
34 	Exception when no_data_found then
35 		return 'NA_EDW';
36 	end;
37 
38 	begin
39 
40 	select EQUI_SET_OF_BOOKS_ID into l_parent_equi_sob
41 	from edw_local_equi_set_of_books
42 	where l_edw_sob = EDW_SET_OF_BOOKS_ID;
43 
44 	select set_of_books_id, instance into l_parent_sob, l_instance
45 	from edw_local_set_of_books loc
46 	where edw_set_of_books_id = l_parent_equi_sob;
47 
48 	Exception
49           when no_data_found then
50 		null;
51 	  when others then
52 		raise;
53 	END;
54   --------------------------
55   IF  (P_fact_name IS NULL) OR
56       (P_dim_name IS NULL) OR
57 	(P_ccid IS NULL) OR
58 	(P_set_of_books_id IS NULL) OR
59 	(P_structure_id IS NULL)
60 	then
61       RETURN 'NA_EDW';
62   END IF;
63 
64 
65 	SELECT
66 		map.application_column_name,
67 		map.value_set_id,
68 		map.instance_code
69 	INTO
70 		l_application_column_name,
71 		l_value_set_id,
72 		l_instance_code
73 	FROM
74 		edw_local_instance inst,
75 		edw_local_flex_seg_mappings_v map,
76 		edw_local_fact_flex_fk_maps_v fact
77 	WHERE
78 		fact.fact_short_name 		= p_fact_name
79 	--	AND fact.fk_physical_name 	= p_fk_name
80 		AND map.dimension_short_name 	= fact.dimension_short_name
81 		AND fact.dimension_short_name   = p_dim_name
82 		AND map.instance_code		= inst.instance_code
83 		AND map.structure_num		= p_structure_id
84 		AND upper(fact.enabled_flag)	= 'Y';
85 
86 	IF l_parent_equi_sob IS NOT NULL  THEN
87 		l_instance_code := l_instance;
88 		l_sob		:= l_parent_sob;
89 	END IF;
90 
91 	-- We will now put a huge IF statement in order not to use dynamic sql
92 
93 
94 		IF (l_application_column_name = 'SEGMENT1') THEN
95 			SELECT 	segment1
96 			INTO   	l_segment_value
97 			FROM 	gl_code_combinations
98 			WHERE	code_combination_id	= p_ccid
99 			AND	chart_of_accounts_id	= p_structure_id;
100 
101 		ELSIF (l_application_column_name = 'SEGMENT2') THEN
102 			SELECT 	segment2
103 			INTO   	l_segment_value
104 			FROM 	gl_code_combinations
105 			WHERE	code_combination_id	= p_ccid
106 			AND	chart_of_accounts_id	= p_structure_id;
107 
108 		ELSIF (l_application_column_name = 'SEGMENT3') THEN
109 			SELECT 	segment3
110 			INTO   	l_segment_value
111 			FROM 	gl_code_combinations
112 			WHERE	code_combination_id	= p_ccid
113 			AND	chart_of_accounts_id	= p_structure_id;
114 
115 		ELSIF (l_application_column_name = 'SEGMENT4') THEN
116 			SELECT 	segment4
117 			INTO   	l_segment_value
118 			FROM 	gl_code_combinations
119 			WHERE	code_combination_id	= p_ccid
120 			AND	chart_of_accounts_id	= p_structure_id;
121 
122 		ELSIF (l_application_column_name = 'SEGMENT5') THEN
123 			SELECT 	segment5
124 			INTO   	l_segment_value
125 			FROM 	gl_code_combinations
126 			WHERE	code_combination_id	= p_ccid
127 			AND	chart_of_accounts_id	= p_structure_id;
128 
129 		ELSIF (l_application_column_name = 'SEGMENT6') THEN
130 			SELECT 	segment6
131 			INTO   	l_segment_value
132 			FROM 	gl_code_combinations
133 			WHERE	code_combination_id	= p_ccid
134 			AND	chart_of_accounts_id	= p_structure_id;
135 
136 		ELSIF (l_application_column_name = 'SEGMENT7') THEN
137 			SELECT 	segment7
138 			INTO   	l_segment_value
139 			FROM 	gl_code_combinations
140 			WHERE	code_combination_id	= p_ccid
141 			AND	chart_of_accounts_id	= p_structure_id;
142 
143 		ELSIF (l_application_column_name = 'SEGMENT8') THEN
144 			SELECT 	segment8
145 			INTO   	l_segment_value
146 			FROM 	gl_code_combinations
147 			WHERE	code_combination_id	= p_ccid
148 			AND	chart_of_accounts_id	= p_structure_id;
149 
150 		ELSIF (l_application_column_name = 'SEGMENT9') THEN
151 			SELECT 	segment9
152 			INTO   	l_segment_value
153 			FROM 	gl_code_combinations
154 			WHERE	code_combination_id	= p_ccid
155 			AND	chart_of_accounts_id	= p_structure_id;
156 
157 		ELSIF (l_application_column_name = 'SEGMENT10') THEN
158 			SELECT 	segment10
159 			INTO   	l_segment_value
160 			FROM 	gl_code_combinations
161 			WHERE	code_combination_id	= p_ccid
162 			AND	chart_of_accounts_id	= p_structure_id;
163 
164 		ELSIF (l_application_column_name = 'SEGMENT11') THEN
165 			SELECT 	segment11
166 			INTO   	l_segment_value
167 			FROM 	gl_code_combinations
168 			WHERE	code_combination_id	= p_ccid
169 			AND	chart_of_accounts_id	= p_structure_id;
170 
171 		ELSIF (l_application_column_name = 'SEGMENT12') THEN
172 			SELECT 	segment12
173 			INTO   	l_segment_value
174 			FROM 	gl_code_combinations
175 			WHERE	code_combination_id	= p_ccid
176 			AND	chart_of_accounts_id	= p_structure_id;
177 
178 		ELSIF (l_application_column_name = 'SEGMENT13') THEN
179 			SELECT 	segment13
180 			INTO   	l_segment_value
181 			FROM 	gl_code_combinations
182 			WHERE	code_combination_id	= p_ccid
183 			AND	chart_of_accounts_id	= p_structure_id;
184 
185 		ELSIF (l_application_column_name = 'SEGMENT14') THEN
186 			SELECT 	segment14
187 			INTO   	l_segment_value
188 			FROM 	gl_code_combinations
189 			WHERE	code_combination_id	= p_ccid
190 			AND	chart_of_accounts_id	= p_structure_id;
191 
192 		ELSIF (l_application_column_name = 'SEGMENT15') THEN
193 			SELECT 	segment15
194 			INTO   	l_segment_value
195 			FROM 	gl_code_combinations
196 			WHERE	code_combination_id	= p_ccid
197 			AND	chart_of_accounts_id	= p_structure_id;
198 
199 		ELSIF (l_application_column_name = 'SEGMENT16') THEN
200 			SELECT 	segment16
201 			INTO   	l_segment_value
202 			FROM 	gl_code_combinations
203 			WHERE	code_combination_id	= p_ccid
204 			AND	chart_of_accounts_id	= p_structure_id;
205 
206 		ELSIF (l_application_column_name = 'SEGMENT17') THEN
207 			SELECT 	segment17
208 			INTO   	l_segment_value
209 			FROM 	gl_code_combinations
210 			WHERE	code_combination_id	= p_ccid
211 			AND	chart_of_accounts_id	= p_structure_id;
212 
213 		ELSIF (l_application_column_name = 'SEGMENT18') THEN
214 			SELECT 	segment18
215 			INTO   	l_segment_value
216 			FROM 	gl_code_combinations
217 			WHERE	code_combination_id	= p_ccid
218 			AND	chart_of_accounts_id	= p_structure_id;
219 
220 		ELSIF (l_application_column_name = 'SEGMENT19') THEN
221 			SELECT 	segment19
222 			INTO   	l_segment_value
223 			FROM 	gl_code_combinations
224 			WHERE	code_combination_id	= p_ccid
225 			AND	chart_of_accounts_id	= p_structure_id;
226 
227 		ELSIF (l_application_column_name = 'SEGMENT20') THEN
228 			SELECT 	segment20
229 			INTO   	l_segment_value
230 			FROM 	gl_code_combinations
231 			WHERE	code_combination_id	= p_ccid
232 			AND	chart_of_accounts_id	= p_structure_id;
233 		ELSIF (l_application_column_name = 'SEGMENT21') THEN
234 			SELECT 	segment21
235 			INTO   	l_segment_value
236 			FROM 	gl_code_combinations
237 			WHERE	code_combination_id	= p_ccid
238 			AND	chart_of_accounts_id	= p_structure_id;
239 		ELSIF (l_application_column_name = 'SEGMENT22') THEN
240 			SELECT 	segment22
241 			INTO   	l_segment_value
242 			FROM 	gl_code_combinations
243 			WHERE	code_combination_id	= p_ccid
244 			AND	chart_of_accounts_id	= p_structure_id;
245 		ELSIF (l_application_column_name = 'SEGMENT23') THEN
246 			SELECT 	segment23
247 			INTO   	l_segment_value
248 			FROM 	gl_code_combinations
249 			WHERE	code_combination_id	= p_ccid
250 			AND	chart_of_accounts_id	= p_structure_id;
251 		ELSIF (l_application_column_name = 'SEGMENT24') THEN
252 			SELECT 	segment24
253 			INTO   	l_segment_value
254 			FROM 	gl_code_combinations
255 			WHERE	code_combination_id	= p_ccid
256 			AND	chart_of_accounts_id	= p_structure_id;
257 		ELSIF (l_application_column_name = 'SEGMENT25') THEN
258 			SELECT 	segment25
259 			INTO   	l_segment_value
260 			FROM 	gl_code_combinations
261 			WHERE	code_combination_id	= p_ccid
262 			AND	chart_of_accounts_id	= p_structure_id;
263 		ELSIF (l_application_column_name = 'SEGMENT26') THEN
264 			SELECT 	segment26
265 			INTO   	l_segment_value
266 			FROM 	gl_code_combinations
267 			WHERE	code_combination_id	= p_ccid
268 			AND	chart_of_accounts_id	= p_structure_id;
269 		ELSIF (l_application_column_name = 'SEGMENT27') THEN
270 			SELECT 	segment27
271 			INTO   	l_segment_value
272 			FROM 	gl_code_combinations
273 			WHERE	code_combination_id	= p_ccid
274 			AND	chart_of_accounts_id	= p_structure_id;
275 		ELSIF (l_application_column_name = 'SEGMENT28') THEN
276 			SELECT 	segment28
277 			INTO   	l_segment_value
278 			FROM 	gl_code_combinations
279 			WHERE	code_combination_id	= p_ccid
280 			AND	chart_of_accounts_id	= p_structure_id;
281 		ELSIF (l_application_column_name = 'SEGMENT29') THEN
282 			SELECT 	segment29
283 			INTO   	l_segment_value
284 			FROM 	gl_code_combinations
285 			WHERE	code_combination_id	= p_ccid
286 			AND	chart_of_accounts_id	= p_structure_id;
287 		ELSIF (l_application_column_name = 'SEGMENT30') THEN
288 			SELECT 	segment30
289 			INTO   	l_segment_value
290 			FROM 	gl_code_combinations
291 			WHERE	code_combination_id	= p_ccid
292 			AND	chart_of_accounts_id	= p_structure_id;
293 
294 		END IF;
295 
296 
297    RETURN l_segment_value||'-'||l_sob||'-'||l_instance_code;
298 
299 
300 EXCEPTION
301  WHEN NO_DATA_FOUND THEN
302        RETURN 'NA_EDW';
303  WHEN OTHERS THEN
304    IF (SQLCODE <> -20001) THEN
305 	return 'Error!';
306        -- Provide debug information
307 --       RETURN "ERROR!! "||debug_info
308    END IF;
309    -- APP_EXCEPTION.RAISE_EXCEPTION;
310 
311 END get_value;
312 
313 
314 END EDW_FLEX_MAPPING;