DBA Data[Home] [Help]

PACKAGE BODY: APPS.GCS_DYNAMIC_UTIL_PKG

Source


1 PACKAGE BODY GCS_DYNAMIC_UTIL_PKG AS
2 /* $Header: gcsdynutilb.pls 120.1 2005/09/15 18:38:40 spala noship $ */
3 
4 --
5 -- Private Exceptions
6 --
7   GCS_CCY_APPLSYS_NOT_FOUND	EXCEPTION;
8 
9 --
10 -- Private Global Variables
11 --
12 
13   -- Store whether a dimension is used by GCS
14   g_felm_req  VARCHAR2(1);
15   g_prd_req   VARCHAR2(1);
16   g_na_req    VARCHAR2(1);
17   g_chl_req   VARCHAR2(1);
18   g_prj_req   VARCHAR2(1);
19   g_cst_req   VARCHAR2(1);
20   g_tsk_req   VARCHAR2(1);
21   g_ud1_req   VARCHAR2(1);
22   g_ud2_req   VARCHAR2(1);
23   g_ud3_req   VARCHAR2(1);
24   g_ud4_req   VARCHAR2(1);
25   g_ud5_req   VARCHAR2(1);
26   g_ud6_req   VARCHAR2(1);
27   g_ud7_req   VARCHAR2(1);
28   g_ud8_req   VARCHAR2(1);
29   g_ud9_req   VARCHAR2(1);
30   g_ud10_req  VARCHAR2(1);
31 
32   -- Store whether a dimension is used by FEM
33   g_felm_fem_req  VARCHAR2(1);
34   g_prd_fem_req   VARCHAR2(1);
35   g_na_fem_req    VARCHAR2(1);
36   g_chl_fem_req   VARCHAR2(1);
37   g_prj_fem_req   VARCHAR2(1);
38   g_cst_fem_req   VARCHAR2(1);
39   g_tsk_fem_req   VARCHAR2(1);
40   g_ud1_fem_req   VARCHAR2(1);
41   g_ud2_fem_req   VARCHAR2(1);
42   g_ud3_fem_req   VARCHAR2(1);
43   g_ud4_fem_req   VARCHAR2(1);
44   g_ud5_fem_req   VARCHAR2(1);
45   g_ud6_fem_req   VARCHAR2(1);
46   g_ud7_fem_req   VARCHAR2(1);
47   g_ud8_fem_req   VARCHAR2(1);
48   g_ud9_fem_req   VARCHAR2(1);
49   g_ud10_fem_req  VARCHAR2(1);
50 
51   --
52   -- Private Procedures
53   --
54 
55   PROCEDURE init_dyn_pkg_info IS
56 
57     status	VARCHAR2(1);
58     industry	VARCHAR2(1);
59 --    appl	VARCHAR2(30);
60 
61   BEGIN
62     -- Initialize the dimension information.
63     GCS_UTILITY_PKG.init_dimension_info;
64 
65     -- Set the global variables determining which dimensions are used by GCS
66     g_felm_req := gcs_utility_pkg.get_dimension_required('FINANCIAL_ELEM_ID');
67     g_prd_req  := gcs_utility_pkg.get_dimension_required('PRODUCT_ID');
68     g_na_req   := gcs_utility_pkg.get_dimension_required('NATURAL_ACCOUNT_ID');
69     g_chl_req  := gcs_utility_pkg.get_dimension_required('CHANNEL_ID');
70     g_prj_req  := gcs_utility_pkg.get_dimension_required('PROJECT_ID');
71     g_cst_req  := gcs_utility_pkg.get_dimension_required('CUSTOMER_ID');
72     g_tsk_req  := gcs_utility_pkg.get_dimension_required('TASK_ID');
73     g_ud1_req  := gcs_utility_pkg.get_dimension_required('USER_DIM1_ID');
74     g_ud2_req  := gcs_utility_pkg.get_dimension_required('USER_DIM2_ID');
75     g_ud3_req  := gcs_utility_pkg.get_dimension_required('USER_DIM3_ID');
76     g_ud4_req  := gcs_utility_pkg.get_dimension_required('USER_DIM4_ID');
77     g_ud5_req  := gcs_utility_pkg.get_dimension_required('USER_DIM5_ID');
78     g_ud6_req  := gcs_utility_pkg.get_dimension_required('USER_DIM6_ID');
79     g_ud7_req  := gcs_utility_pkg.get_dimension_required('USER_DIM7_ID');
80     g_ud8_req  := gcs_utility_pkg.get_dimension_required('USER_DIM8_ID');
81     g_ud9_req  := gcs_utility_pkg.get_dimension_required('USER_DIM9_ID');
82     g_ud10_req := gcs_utility_pkg.get_dimension_required('USER_DIM10_ID');
83 
84     -- Set the global variables determining which dimensions are used by FEM
85     g_felm_fem_req := gcs_utility_pkg.get_fem_dim_required('FINANCIAL_ELEM_ID');
86     g_prd_fem_req  := gcs_utility_pkg.get_fem_dim_required('PRODUCT_ID');
87     g_na_fem_req   := gcs_utility_pkg.get_fem_dim_required('NATURAL_ACCOUNT_ID');
88     g_chl_fem_req  := gcs_utility_pkg.get_fem_dim_required('CHANNEL_ID');
89     g_prj_fem_req  := gcs_utility_pkg.get_fem_dim_required('PROJECT_ID');
90     g_cst_fem_req  := gcs_utility_pkg.get_fem_dim_required('CUSTOMER_ID');
91     g_tsk_fem_req  := gcs_utility_pkg.get_fem_dim_required('TASK_ID');
92     g_ud1_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM1_ID');
93     g_ud2_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM2_ID');
94     g_ud3_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM3_ID');
95     g_ud4_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM4_ID');
96     g_ud5_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM5_ID');
97     g_ud6_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM6_ID');
98     g_ud7_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM7_ID');
99     g_ud8_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM8_ID');
100     g_ud9_fem_req  := gcs_utility_pkg.get_fem_dim_required('USER_DIM9_ID');
101     g_ud10_fem_req := gcs_utility_pkg.get_fem_dim_required('USER_DIM10_ID');
102 
103     -- Get APPLSYS information. Needed for ad_ddl
104     IF NOT fnd_installation.get_app_info('FND', status, industry,
105 					 g_applsys_username) THEN
106       raise gcs_ccy_applsys_not_found;
107     END IF;
108 
109   END init_dyn_pkg_info;
110 
111   --
112   -- Procedure
113   --   Build_Dimension_Row
114   -- Purpose
115   --   Build one row of the comma or join list in ad_ddl.
116   --
117   -- Arguments
118   --   p_item		The item to write if the dimension is used
119   --   p_def_item	The item to write if the dimension is unused
120   --   p_rownum		The row number to use for ad_ddl
121   --   p_dim_req	Whether or not the dimension is required
122   -- Example
123   --
124   -- Notes
125   --   Returns the line number for the next row.
126   --
127   FUNCTION Build_Dimension_Row( p_item		VARCHAR2,
128 				p_def_item	VARCHAR2,
129 				p_rownum	NUMBER,
130 				p_dim_req	VARCHAR2) RETURN NUMBER IS
131   BEGIN
132     IF p_dim_req = 'Y' THEN
133       ad_ddl.build_statement(p_item, p_rownum);
134     ELSE
135       ad_ddl.build_statement(p_def_item, p_rownum);
136     END IF;
137     RETURN (p_rownum + 1);
138   END Build_Dimension_Row;
139 
140   --
141   -- Procedure
142   --   Build_Fem_Dimension_Row
143   -- Purpose
144   --   Build one row of the comma or join list in ad_ddl.
145   --
146   -- Arguments
147   --   p_item		The item to write if the dimension is used
148   --   p_def_item	The item to write if the dimension is unused
149   --   p_rownum		The row number to use for ad_ddl
150   --   p_dim_req	Whether or not the dimension is required
151   -- Example
152   --
153   -- Notes
154   --   Returns the line number for the next row.
155   --
156   FUNCTION Build_Fem_Dimension_Row( p_item		VARCHAR2,
157 				p_def_item	VARCHAR2,
158 				p_rownum	NUMBER,
159 				p_dim_req	VARCHAR2) RETURN NUMBER IS
160   BEGIN
161     IF p_dim_req = 'Y' THEN
162       ad_ddl.build_statement('''' || p_item || '''' || ',', p_rownum);
163     ELSE
164       ad_ddl.build_statement(p_def_item, p_rownum);
165     END IF;
166     RETURN (p_rownum + 1);
167   END Build_Fem_Dimension_Row;
168 
169 
170   --
171   -- Public Procedures
172   --
173 
174   FUNCTION Build_Comma_List(p_prefix		VARCHAR2,
175 			    p_suffix		VARCHAR2,
176 			    p_default_text	VARCHAR2,
177 			    p_first_rownum	NUMBER) RETURN NUMBER IS
178     the_rownum  NUMBER := p_first_rownum;
179   BEGIN
180     -- Go through each of the optional dimensions, and fill out accordingly
181 
182     the_rownum := build_dimension_row(p_prefix||'FINANCIAL_ELEM_ID,'||p_suffix,
183 			p_default_text, the_rownum, g_felm_req);
184     the_rownum := build_dimension_row(p_prefix||'PRODUCT_ID,'||p_suffix,
185 			p_default_text, the_rownum, g_prd_req);
186     the_rownum := build_dimension_row(p_prefix||'NATURAL_ACCOUNT_ID,'||p_suffix,
187 			p_default_text, the_rownum, g_na_req);
188     the_rownum := build_dimension_row(p_prefix||'CHANNEL_ID,'||p_suffix,
189 			p_default_text, the_rownum, g_chl_req);
190     the_rownum := build_dimension_row(p_prefix||'PROJECT_ID,'||p_suffix,
191 			p_default_text, the_rownum, g_prj_req);
192     the_rownum := build_dimension_row(p_prefix||'CUSTOMER_ID,'||p_suffix,
193 			p_default_text, the_rownum,g_cst_req);
194     the_rownum := build_dimension_row(p_prefix||'TASK_ID,'||p_suffix,
195 			p_default_text, the_rownum, g_tsk_req);
196     the_rownum := build_dimension_row(p_prefix||'USER_DIM1_ID,'||p_suffix,
197 			p_default_text, the_rownum, g_ud1_req);
198     the_rownum := build_dimension_row(p_prefix||'USER_DIM2_ID,'||p_suffix,
199 			p_default_text, the_rownum, g_ud2_req);
200     the_rownum := build_dimension_row(p_prefix||'USER_DIM3_ID,'||p_suffix,
201 			p_default_text, the_rownum, g_ud3_req);
202     the_rownum := build_dimension_row(p_prefix||'USER_DIM4_ID,'||p_suffix,
203 			p_default_text, the_rownum, g_ud4_req);
204     the_rownum := build_dimension_row(p_prefix||'USER_DIM5_ID,'||p_suffix,
205 			p_default_text, the_rownum, g_ud5_req);
206     the_rownum := build_dimension_row(p_prefix||'USER_DIM6_ID,'||p_suffix,
207 			p_default_text, the_rownum, g_ud6_req);
208     the_rownum := build_dimension_row(p_prefix||'USER_DIM7_ID,'||p_suffix,
209 			p_default_text, the_rownum, g_ud7_req);
210     the_rownum := build_dimension_row(p_prefix||'USER_DIM8_ID,'||p_suffix,
211 			p_default_text, the_rownum, g_ud8_req);
212     the_rownum := build_dimension_row(p_prefix||'USER_DIM9_ID,'||p_suffix,
213 			p_default_text, the_rownum, g_ud9_req);
214     the_rownum := build_dimension_row(p_prefix||'USER_DIM10_ID,'||p_suffix,
215 			p_default_text, the_rownum, g_ud10_req);
216 
217     RETURN the_rownum;
218   END Build_Comma_List;
219 
220 
221   FUNCTION Build_Join_List(p_left		VARCHAR2,
222 			   p_middle		VARCHAR2,
223 			   p_right		VARCHAR2,
224 			   p_first_rownum	NUMBER) RETURN NUMBER IS
225     the_rownum NUMBER := p_first_rownum;
226   BEGIN
227     -- Go through each of the optional dimensions, and fill out accordingly
228 
229     the_rownum := build_dimension_row(p_left||'FINANCIAL_ELEM_ID'||
230 				p_middle||'FINANCIAL_ELEM_ID'||p_right,
231 				'', the_rownum, g_felm_req);
232     the_rownum := build_dimension_row(p_left||'PRODUCT_ID'||
233 				p_middle||'PRODUCT_ID'||p_right,
234 				'', the_rownum, g_prd_req);
235     the_rownum := build_dimension_row(p_left||'NATURAL_ACCOUNT_ID'||
236 				p_middle||'NATURAL_ACCOUNT_ID'||p_right,
237 				'', the_rownum, g_na_req);
238     the_rownum := build_dimension_row(p_left||'CHANNEL_ID'||
239 				p_middle||'CHANNEL_ID'||p_right,
240 				'', the_rownum, g_chl_req);
241     the_rownum := build_dimension_row(p_left||'PROJECT_ID'||
242 				p_middle||'PROJECT_ID'||p_right,
243 				'', the_rownum, g_prj_req);
244     the_rownum := build_dimension_row(p_left||'CUSTOMER_ID'||
245 				p_middle||'CUSTOMER_ID'||p_right,
246 				'', the_rownum, g_cst_req);
247     the_rownum := build_dimension_row(p_left||'TASK_ID'||
248 				p_middle||'TASK_ID'||p_right,
249 				'', the_rownum, g_tsk_req);
250     the_rownum := build_dimension_row(p_left||'USER_DIM1_ID'||
251 				p_middle||'USER_DIM1_ID'||p_right,
252 				'', the_rownum, g_ud1_req);
253     the_rownum := build_dimension_row(p_left||'USER_DIM2_ID'||
254 				p_middle||'USER_DIM2_ID'||p_right,
255 				'', the_rownum, g_ud2_req);
256     the_rownum := build_dimension_row(p_left||'USER_DIM3_ID'||
257 				p_middle||'USER_DIM3_ID'||p_right,
258 				'', the_rownum, g_ud3_req);
259     the_rownum := build_dimension_row(p_left||'USER_DIM4_ID'||
260 				p_middle||'USER_DIM4_ID'||p_right,
261 				'', the_rownum, g_ud4_req);
262     the_rownum := build_dimension_row(p_left||'USER_DIM5_ID'||
263 				p_middle||'USER_DIM5_ID'||p_right,
264 				'', the_rownum, g_ud5_req);
265     the_rownum := build_dimension_row(p_left||'USER_DIM6_ID'||
266 				p_middle||'USER_DIM6_ID'||p_right,
267 				'', the_rownum, g_ud6_req);
268     the_rownum := build_dimension_row(p_left||'USER_DIM7_ID'||
269 				p_middle||'USER_DIM7_ID'||p_right,
270 				'', the_rownum, g_ud7_req);
271     the_rownum := build_dimension_row(p_left||'USER_DIM8_ID'||
272 				p_middle||'USER_DIM8_ID'||p_right,
273 				'', the_rownum, g_ud8_req);
274     the_rownum := build_dimension_row(p_left||'USER_DIM9_ID'||
275 				p_middle||'USER_DIM9_ID'||p_right,
276 				'', the_rownum, g_ud9_req);
277     the_rownum := build_dimension_row(p_left||'USER_DIM10_ID'||
278 				p_middle||'USER_DIM10_ID'||p_right,
279 				'', the_rownum, g_ud10_req);
280 
281     RETURN the_rownum;
282   END Build_Join_List;
283 
284 
285   --
286   -- Public Procedures
287   --
288 
289   FUNCTION Build_Fem_Comma_List(p_prefix		VARCHAR2,
290 			    p_suffix		VARCHAR2,
291 			    p_default_text	VARCHAR2,
292 			    p_first_rownum	NUMBER,
293                             p_value_req         VARCHAR2) RETURN NUMBER IS
294     the_rownum  NUMBER := p_first_rownum;
295     default_val NUMBER;
296   BEGIN
297     -- Go through each of the optional dimensions, and fill out accordingly
298 
299     IF (p_value_req = 'Y' AND g_felm_req = 'N') THEN
300         default_val := GCS_UTILITY_PKG.get_default_value('FINANCIAL_ELEM_ID');
301         the_rownum := build_fem_dimension_row( to_char(default_val), p_default_text, the_rownum, g_felm_fem_req);
302     ELSE
303         the_rownum := build_dimension_row(p_prefix||'FINANCIAL_ELEM_ID,'||p_suffix,p_default_text, the_rownum, g_felm_fem_req);
304     END IF;
305 
306     IF (p_value_req = 'Y' AND g_prd_req = 'N') THEN
307         default_val := GCS_UTILITY_PKG.get_default_value('PRODUCT_ID');
308         the_rownum := build_fem_dimension_row( to_char(default_val), p_default_text, the_rownum, g_prd_fem_req);
309     ELSE
310         the_rownum := build_dimension_row(p_prefix||'PRODUCT_ID,'||p_suffix,p_default_text, the_rownum, g_prd_fem_req);
311     END IF;
312 
313     IF (p_value_req = 'Y' AND g_na_req = 'N') THEN
314         default_val := GCS_UTILITY_PKG.get_default_value('NATURAL_ACCOUNT_ID');
315         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_na_fem_req);
316     ELSE
317         the_rownum := build_dimension_row(p_prefix||'NATURAL_ACCOUNT_ID,'||p_suffix,p_default_text, the_rownum, g_na_fem_req);
318     END IF;
319 
320 
321     IF (p_value_req = 'Y' AND g_chl_req = 'N') THEN
322         default_val := GCS_UTILITY_PKG.get_default_value('CHANNEL_ID');
323         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_chl_fem_req);
324     ELSE
325         the_rownum := build_dimension_row(p_prefix||'CHANNEL_ID,'||p_suffix,
326 			p_default_text, the_rownum, g_chl_fem_req);
327     END IF;
328 
329     IF (p_value_req = 'Y' AND g_prj_req = 'N') THEN
330         default_val := GCS_UTILITY_PKG.get_default_value('PROJECT_ID');
331         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_prj_fem_req);
332     ELSE
333         the_rownum := build_dimension_row(p_prefix||'PROJECT_ID,'||p_suffix,
334 			p_default_text, the_rownum, g_prj_fem_req);
335     END IF;
336 
337     IF (p_value_req = 'Y' AND g_cst_req = 'N') THEN
338         default_val := GCS_UTILITY_PKG.get_default_value('CUSTOMER_ID');
339         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_cst_fem_req);
340     ELSE
341         the_rownum := build_dimension_row(p_prefix||'CUSTOMER_ID,'||p_suffix,
342 			p_default_text, the_rownum,g_cst_fem_req);
343     END IF;
344 
345     IF (p_value_req = 'Y' AND g_tsk_req = 'N') THEN
346         default_val := GCS_UTILITY_PKG.get_default_value('TASK_ID');
347         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_tsk_fem_req);
348     ELSE
349         the_rownum := build_dimension_row(p_prefix||'TASK_ID,'||p_suffix,
350 			p_default_text, the_rownum, g_tsk_fem_req);
351     END IF;
352 
353     IF (p_value_req = 'Y' AND g_ud1_req = 'N') THEN
354         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM1_ID');
355         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud1_fem_req);
356     ELSE
357         the_rownum := build_dimension_row(p_prefix||'USER_DIM1_ID,'||p_suffix,
358 			p_default_text, the_rownum, g_ud1_fem_req);
359     END IF;
360 
361     IF (p_value_req = 'Y' AND g_ud2_req = 'N') THEN
362         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM2_ID');
363         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud2_fem_req);
364     ELSE
365         the_rownum := build_dimension_row(p_prefix||'USER_DIM2_ID,'||p_suffix,
366 			p_default_text, the_rownum, g_ud2_fem_req);
367     END IF;
368 
369     IF (p_value_req = 'Y' AND g_ud3_req = 'N') THEN
370         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM3_ID');
371         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud3_fem_req);
372     ELSE
373         the_rownum := build_dimension_row(p_prefix||'USER_DIM3_ID,'||p_suffix,
374 			p_default_text, the_rownum, g_ud3_fem_req);
375     END IF;
376 
377     IF (p_value_req = 'Y' AND g_ud4_req = 'N') THEN
378         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM4_ID');
379         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud4_fem_req);
380     ELSE
381         the_rownum := build_dimension_row(p_prefix||'USER_DIM4_ID,'||p_suffix,
382 			p_default_text, the_rownum, g_ud4_fem_req);
383     END IF;
384 
385     IF (p_value_req = 'Y' AND g_ud5_req = 'N') THEN
386         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM5_ID');
387         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud5_fem_req);
388     ELSE
389         the_rownum := build_dimension_row(p_prefix||'USER_DIM5_ID,'||p_suffix,
390 			p_default_text, the_rownum, g_ud5_fem_req);
391     END IF;
392 
393     IF (p_value_req = 'Y' AND g_ud6_req = 'N') THEN
394         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM6_ID');
395         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud6_fem_req);
396     ELSE
397         the_rownum := build_dimension_row(p_prefix||'USER_DIM6_ID,'||p_suffix,
398 			p_default_text, the_rownum, g_ud6_fem_req);
399     END IF;
400 
401     IF (p_value_req = 'Y' AND g_ud7_req = 'N') THEN
402         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM7_ID');
403         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud7_fem_req);
404     ELSE
405         the_rownum := build_dimension_row(p_prefix||'USER_DIM7_ID,'||p_suffix,
406 			p_default_text, the_rownum, g_ud7_fem_req);
407     END IF;
408 
409     IF (p_value_req = 'Y' AND g_ud8_req = 'N') THEN
410         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM8_ID');
411         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud8_fem_req);
412     ELSE
413         the_rownum := build_dimension_row(p_prefix||'USER_DIM8_ID,'||p_suffix,
414 			p_default_text, the_rownum, g_ud8_fem_req);
415     END IF;
416 
417     IF (p_value_req = 'Y' AND g_ud9_req = 'N') THEN
418         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM9_ID');
419         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud9_fem_req);
420     ELSE
421         the_rownum := build_dimension_row(p_prefix||'USER_DIM9_ID,'||p_suffix,
422 			p_default_text, the_rownum, g_ud9_fem_req);
423     END IF;
424 
425     IF (p_value_req = 'Y' AND g_ud10_req = 'N') THEN
426         default_val := GCS_UTILITY_PKG.get_default_value('USER_DIM10_ID');
427         the_rownum := build_fem_dimension_row(to_char(default_val), p_default_text, the_rownum, g_ud10_fem_req);
428     ELSE
429         the_rownum := build_dimension_row(p_prefix||'USER_DIM10_ID,'||p_suffix,
430 			p_default_text, the_rownum, g_ud10_fem_req);
431     END IF;
432 
433     RETURN the_rownum;
434   END Build_Fem_Comma_List;
435 
436   --
437   -- Public Procedures
438   --
439 
440   FUNCTION Build_interco_Comma_List(p_pre_prefix		VARCHAR2,
441                             p_prefix	VARCHAR2,
442                             P_post_prefix       VARCHAR2,
443                             p_pre_suffix        VARCHAR2,
444 			    p_suffix		VARCHAR2,
445                             p_post_suffix       VARCHAR2,
446 			    p_default_text	VARCHAR2,
447 			    p_first_rownum	NUMBER) RETURN NUMBER IS
448     the_rownum  NUMBER := p_first_rownum;
449   BEGIN
450     -- Go through each of the optional dimensions, and fill out accordingly
451 /*   the_rownum := build_dimension_row(p_prefix||'FINANCIAL_ELEM_ID,'
452   ||p_post_prefix||'''FINANCIAL_ELEM_ID'','
453   ||p_pre_suffix||'FINANCIAL_ELEM_ID'||p_suffix
454   ||p_post_suffix, p_default_text, the_rownum, g_felm_req);   */
455   the_rownum := build_dimension_row(
456                  p_pre_prefix||'FINANCIAL_ELEM_ID,'||p_post_suffix,
457 			p_default_text, the_rownum, g_felm_req);
458    the_rownum := build_dimension_row(
459                         p_pre_prefix||'PRODUCT_ID,'||p_post_suffix,
460 			p_default_text, the_rownum, g_prd_req);
461    the_rownum := build_dimension_row(
462                        p_pre_prefix||'NATURAL_ACCOUNT_ID,'||p_post_suffix,
463 			 p_default_text, the_rownum, g_na_req);
464    the_rownum := build_dimension_row(
465                        p_pre_prefix||'CHANNEL_ID,'||p_post_suffix,
466 			  p_default_text, the_rownum, g_chl_req);
467    the_rownum := build_dimension_row(
468                       p_pre_prefix||'PROJECT_ID,'||p_post_suffix,
469 			p_default_text, the_rownum, g_prj_req);
470    the_rownum := build_dimension_row(
471                          p_pre_prefix||'CUSTOMER_ID,'||p_post_suffix,
472 			p_default_text, the_rownum,g_cst_req);
473    the_rownum := build_dimension_row(p_pre_prefix||'TASK_ID,'||p_post_suffix,
474 			p_default_text, the_rownum, g_tsk_req);
475     the_rownum := build_dimension_row(p_prefix||'USER_DIM1_ID,'
476                       ||p_post_prefix||'''USER_DIM1_ID'','
477                       ||p_pre_suffix||'USER_DIM1_ID'||p_suffix
478                       ||p_post_suffix, p_default_text, the_rownum, g_ud1_req);
479 
480     the_rownum := build_dimension_row(p_prefix||'USER_DIM2_ID,'
481                       ||p_post_prefix||'''USER_DIM2_ID'','
482                       ||p_pre_suffix||'USER_DIM2_ID'||p_suffix
483                       ||p_post_suffix, p_default_text, the_rownum, g_ud2_req);
484 
485     the_rownum := build_dimension_row(p_prefix||'USER_DIM3_ID,'
486                        ||p_post_prefix||'''USER_DIM3_ID'','
487                        ||p_pre_suffix||'USER_DIM3_ID'||p_suffix
488 		       ||p_post_suffix, p_default_text,the_rownum, g_ud3_req);
489 
490     the_rownum := build_dimension_row(p_prefix||'USER_DIM4_ID,'
491                         ||p_post_prefix||'''USER_DIM4_ID'','
492                         ||p_pre_suffix||'USER_DIM4_ID'||p_suffix
493 			||p_post_suffix,p_default_text, the_rownum, g_ud4_req);
494 
495     the_rownum := build_dimension_row(p_prefix||'USER_DIM5_ID,'
496                         ||p_post_prefix||'''USER_DIM5_ID'','
497                         ||p_pre_suffix||'USER_DIM5_ID'||p_suffix
498 			||p_post_suffix,p_default_text, the_rownum, g_ud5_req);
499 
500     the_rownum := build_dimension_row(p_prefix||'USER_DIM6_ID,'
501                         ||p_post_prefix||'''USER_DIM6_ID'','
502                         ||p_pre_suffix||'USER_DIM6_ID'||p_suffix
503 			||p_post_suffix,p_default_text, the_rownum, g_ud6_req);
504 
505     the_rownum := build_dimension_row(p_prefix||'USER_DIM7_ID,'
506                         ||p_post_prefix||'''USER_DIM7_ID'','
507                         ||p_pre_suffix||'USER_DIM7_ID'||p_suffix
508 			||p_post_suffix,p_default_text, the_rownum, g_ud7_req);
509 
510     the_rownum := build_dimension_row(p_prefix||'USER_DIM8_ID,'
511                         ||p_post_prefix||'''USER_DIM8_ID'','
512                         ||p_pre_suffix||'USER_DIM8_ID'||p_suffix
513 			||p_post_suffix,p_default_text, the_rownum, g_ud8_req);
514 
515     the_rownum := build_dimension_row(p_prefix||'USER_DIM9_ID,'
516                         ||p_post_prefix||'''USER_DIM9_ID'','
517                         ||p_pre_suffix||'USER_DIM9_ID'||p_suffix
518 			||p_post_suffix,p_default_text, the_rownum, g_ud9_req);
519 
520     the_rownum := build_dimension_row(p_prefix||'USER_DIM10_ID,'
521                         ||p_post_prefix||'''USER_DIM10_ID'','
522                         ||p_pre_suffix||'USER_DIM10_ID'||p_suffix
523 			||p_post_suffix,p_default_text,the_rownum, g_ud10_req);
524 
525     RETURN the_rownum;
526   END Build_Interco_Comma_List;
527 
528 
529   FUNCTION index_col_list ( collist OUT NOCOPY VARCHAR2) RETURN VARCHAR2 IS
530   BEGIN
531 
532     IF g_felm_req = 'Y' THEN
533       collist := 'FINANCIAL_ELEM_ID, ';
534     END IF;
535     IF g_prd_req = 'Y' THEN
536       collist := collist || 'PRODUCT_ID, ';
537     END IF;
538     IF g_na_req = 'Y' THEN
539       collist := collist || 'NATURAL_ACCOUNT_ID, ';
540     END IF;
541     IF g_chl_req = 'Y' THEN
542       collist := collist || 'CHANNEL_ID, ';
543     END IF;
544     IF g_prj_req = 'Y' THEN
545       collist := collist || 'PROJECT_ID, ';
546     END IF;
547     IF g_cst_req = 'Y' THEN
548       collist := collist || 'CUSTOMER_ID, ';
549     END IF;
550     IF g_tsk_req = 'Y' THEN
551       collist := collist || 'TASK_ID, ';
552     END IF;
553     IF g_ud1_req = 'Y' THEN
554       collist := collist || 'USER_DIM1_ID, ';
555     END IF;
556     IF g_ud2_req = 'Y' THEN
557       collist := collist || 'USER_DIM2_ID, ';
558     END IF;
559     IF g_ud3_req = 'Y' THEN
560       collist := collist || 'USER_DIM3_ID, ';
561     END IF;
562     IF g_ud4_req = 'Y' THEN
563       collist := collist || 'USER_DIM4_ID, ';
564     END IF;
565     IF g_ud5_req = 'Y' THEN
566       collist := collist || 'USER_DIM5_ID, ';
567     END IF;
568     IF g_ud6_req = 'Y' THEN
569       collist := collist || 'USER_DIM6_ID, ';
570     END IF;
571     IF g_ud7_req = 'Y' THEN
572       collist := collist || 'USER_DIM7_ID, ';
573     END IF;
574     IF g_ud8_req = 'Y' THEN
575       collist := collist || 'USER_DIM8_ID, ';
576     END IF;
577     IF g_ud9_req = 'Y' THEN
578       collist := collist || 'USER_DIM9_ID, ';
579     END IF;
580     IF g_ud10_req = 'Y' THEN
581       collist := collist || 'USER_DIM10_ID, ';
582     END IF;
583 
584     RETURN collist;
585   END index_col_list;
586 
587 
588 BEGIN
589 
590   init_dyn_pkg_info();
591 
592   EXCEPTION
593     WHEN GCS_CCY_APPLSYS_NOT_FOUND THEN
594       FND_MESSAGE.SET_NAME('GCS', 'GCS_APPLSYS_NOT_FOUND');
595       IF FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED THEN
596         FND_LOG.message(FND_LOG.LEVEL_UNEXPECTED, 'GCS_DYNAMIC_UTIL_PKG');
597       END IF;
598     WHEN OTHERS THEN
599       FND_MESSAGE.set_name('GCS', 'GCS_DYNAMIC_UTIL_PKG_ERR');
600       IF FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED THEN
601         FND_LOG.message(FND_LOG.LEVEL_UNEXPECTED, 'GCS_DYNAMIC_UTIL_PKG');
602       END IF;
603 END GCS_DYNAMIC_UTIL_PKG;