1 package body BSC_IM_INT_MD AS
2 /*$Header: BSCIMDUB.pls 115.0 2003/12/09 00:50:15 vsurendr ship $*/
3
4 --=================PUBLIC CREATE API============================================
5 function create_dimension(
6 p_dim_name varchar2,
7 p_apps_origin varchar2,
8 p_description varchar2,
9 p_property varchar2
10 )return boolean is
11 l_found boolean;
12 l_index number;
13 Begin
14 if number_im_md_dimensions is null then
15 number_im_md_dimensions:=0;
16 im_md_dimensions:=im_md_dimensions_t(im_md_dimensions_i);
17 number_im_md_dimensions:=number_im_md_dimensions+1;
18 l_index:=number_im_md_dimensions;
19 elsif number_im_md_dimensions>0 then
20 l_found:=false;
21 for i in 1..number_im_md_dimensions loop
22 if im_md_dimensions(i).dim_name=p_dim_name and im_md_dimensions(i).apps_origin=p_apps_origin then
23 l_found:=true;
24 l_index:=i;
25 exit;
26 end if;
27 end loop;
28 if l_found=false then
29 im_md_dimensions.extend;
30 number_im_md_dimensions:=number_im_md_dimensions+1;
31 l_index:=number_im_md_dimensions;
32 end if;
33 else
34 im_md_dimensions.extend;
35 number_im_md_dimensions:=number_im_md_dimensions+1;
36 l_index:=number_im_md_dimensions;
37 end if;
38 im_md_dimensions(l_index).dim_name:=p_dim_name;
39 im_md_dimensions(l_index).apps_origin:=p_apps_origin;
40 im_md_dimensions(l_index).description:=p_description;
41 im_md_dimensions(l_index).property:=p_property;
42 return true;
43 Exception when others then
44 BSC_IM_UTILS.g_status_message:=sqlerrm;
45 g_status_message:=sqlerrm;
46 write_to_log_file_n('Error in create_dimension '||sqlerrm);
47 return false;
48 End;
49
50 function create_level(
51 p_level_name varchar2,
52 p_apps_origin varchar2,
53 p_dim_name varchar2,
54 p_number_children number,
55 p_description varchar2,
56 p_property varchar2
57 )return boolean is
58 l_found boolean;
59 l_index number;
60 Begin
61 if number_im_md_levels is null then
62 number_im_md_levels:=0;
63 im_md_levels:=im_md_levels_t(im_md_levels_i);
64 number_im_md_levels:=number_im_md_levels+1;
65 l_index:=number_im_md_levels;
66 elsif number_im_md_levels>0 then
67 l_found:=false;
68 for i in 1..number_im_md_levels loop
69 if im_md_levels(i).level_name=p_level_name and im_md_levels(i).dim_name=p_dim_name and
70 im_md_levels(i).apps_origin=p_apps_origin then
71 l_found:=true;
72 l_index:=i;
73 exit;
74 end if;
75 end loop;
76 if l_found=false then
77 im_md_levels.extend;
78 number_im_md_levels:=number_im_md_levels+1;
79 l_index:=number_im_md_levels;
80 end if;
81 else
82 im_md_levels.extend;
83 number_im_md_levels:=number_im_md_levels+1;
84 l_index:=number_im_md_levels;
85 end if;
86 im_md_levels(l_index).level_name:=p_level_name;
87 im_md_levels(l_index).apps_origin:=p_apps_origin;
88 im_md_levels(l_index).dim_name:=p_dim_name;
89 im_md_levels(l_index).number_children:=p_number_children;
90 im_md_levels(l_index).description:=p_description;
91 im_md_levels(l_index).property:=p_property;
92 return true;
93 Exception when others then
94 BSC_IM_UTILS.g_status_message:=sqlerrm;
95 g_status_message:=sqlerrm;
96 write_to_log_file_n('Error in create_level '||sqlerrm);
97 return false;
98 End;
99
100 function create_column(
101 p_column_name varchar2,
102 p_column_type varchar2,
103 p_column_data_type varchar2,
104 p_apps_origin varchar2,
105 p_column_origin varchar2,
106 p_aggregation_type varchar2,
107 p_description varchar2,
108 p_parent_name varchar2,
109 p_property varchar2
110 )return boolean is
111 l_found boolean;
112 l_index number;
113 Begin
114 if number_im_md_columns is null then
115 number_im_md_columns:=0;
116 im_md_columns:=im_md_columns_t(im_md_columns_i);
117 number_im_md_columns:=number_im_md_columns+1;
118 l_index:=number_im_md_columns;
119 elsif number_im_md_columns>0 then
120 l_found:=false;
121 for i in 1..number_im_md_columns loop
122 if im_md_columns(i).column_name=p_column_name and im_md_columns(i).apps_origin=p_apps_origin and
123 im_md_columns(i).parent_name=p_parent_name then
124 l_found:=true;
125 l_index:=i;
126 exit;
127 end if;
128 end loop;
129 if l_found=false then
130 im_md_columns.extend;
131 number_im_md_columns:=number_im_md_columns+1;
132 l_index:=number_im_md_columns;
133 end if;
134 else
135 im_md_columns.extend;
136 number_im_md_columns:=number_im_md_columns+1;
137 l_index:=number_im_md_columns;
138 end if;
139 im_md_columns(l_index).column_name:=p_column_name;
140 im_md_columns(l_index).column_type:=p_column_type;
141 im_md_columns(l_index).column_data_type:=p_column_data_type;
142 im_md_columns(l_index).apps_origin:=p_apps_origin;
143 im_md_columns(l_index).column_origin:=p_column_origin;
144 im_md_columns(l_index).aggregation_type:=p_aggregation_type;
145 im_md_columns(l_index).description:=p_description;
146 im_md_columns(l_index).parent_name:=p_parent_name;
147 im_md_columns(l_index).property:=p_property;
148 return true;
149 Exception when others then
150 BSC_IM_UTILS.g_status_message:=sqlerrm;
151 g_status_message:=sqlerrm;
152 write_to_log_file_n('Error in create_column '||sqlerrm);
153 return false;
154 End;
155
156 function create_level_relation(
157 p_child_level varchar2,
158 p_parent_level varchar2,
159 p_child_fk varchar2,
160 p_parent_pk varchar2,
161 p_hier_name varchar2,
162 p_dim_name varchar2,
163 p_apps_origin varchar2,
164 p_property varchar2
165 )return boolean is
166 l_found boolean;
167 l_index number;
168 Begin
169 if number_im_md_level_relations is null then
170 number_im_md_level_relations:=0;
171 im_md_level_relations:=im_md_level_relations_t(im_md_level_relations_i);
172 number_im_md_level_relations:=number_im_md_level_relations+1;
173 l_index:=number_im_md_level_relations;
174 elsif number_im_md_level_relations>0 then
175 l_found:=false;
176 for i in 1..number_im_md_level_relations loop
177 if im_md_level_relations(i).child_level=p_child_level and im_md_level_relations(i).parent_level=p_parent_level
178 and im_md_level_relations(i).hier_name=p_hier_name and im_md_level_relations(i).dim_name=p_dim_name
179 and im_md_level_relations(i).apps_origin=p_apps_origin then
180 l_found:=true;
181 l_index:=i;
182 exit;
183 end if;
184 end loop;
185 if l_found=false then
186 im_md_level_relations.extend;
187 number_im_md_level_relations:=number_im_md_level_relations+1;
188 l_index:=number_im_md_level_relations;
189 end if;
190 else
191 im_md_level_relations.extend;
192 number_im_md_level_relations:=number_im_md_level_relations+1;
193 l_index:=number_im_md_level_relations;
194 end if;
195 im_md_level_relations(l_index).child_level:=p_child_level;
196 im_md_level_relations(l_index).parent_level:=p_parent_level;
197 im_md_level_relations(l_index).child_fk:=p_child_fk;
198 im_md_level_relations(l_index).parent_pk:=p_parent_pk;
199 im_md_level_relations(l_index).hier_name:=p_hier_name;
200 im_md_level_relations(l_index).dim_name:=p_dim_name;
201 im_md_level_relations(l_index).apps_origin:=p_apps_origin;
202 im_md_level_relations(l_index).property:=p_property;
203 return true;
204 Exception when others then
205 BSC_IM_UTILS.g_status_message:=sqlerrm;
206 g_status_message:=sqlerrm;
207 write_to_log_file_n('Error in create_level_relation '||sqlerrm);
208 return false;
209 End;
210
211 function create_hierarchy(
212 p_hier_name varchar2,
213 p_dim_name varchar2,
214 p_apps_origin varchar2,
215 p_description varchar2,
216 p_property varchar2
217 )return boolean is
218 l_found boolean;
219 l_index number;
220 Begin
221 if number_im_md_hierarchies is null then
222 number_im_md_hierarchies:=0;
223 im_md_hierarchies:=im_md_hierarchies_t(im_md_hierarchies_i);
224 number_im_md_hierarchies:=number_im_md_hierarchies+1;
225 l_index:=number_im_md_hierarchies;
226 elsif number_im_md_hierarchies>0 then
227 l_found:=false;
228 for i in 1..number_im_md_hierarchies loop
229 if im_md_hierarchies(i).hier_name=p_hier_name and im_md_hierarchies(i).dim_name=p_dim_name
230 and im_md_hierarchies(i).apps_origin=p_apps_origin then
231 l_found:=true;
232 l_index:=i;
233 exit;
234 end if;
235 end loop;
236 if l_found=false then
237 im_md_hierarchies.extend;
238 number_im_md_hierarchies:=number_im_md_hierarchies+1;
239 l_index:=number_im_md_hierarchies;
240 end if;
241 else
242 im_md_hierarchies.extend;
243 number_im_md_hierarchies:=number_im_md_hierarchies+1;
244 l_index:=number_im_md_hierarchies;
245 end if;
246 im_md_hierarchies(l_index).hier_name:=p_hier_name;
247 im_md_hierarchies(l_index).dim_name:=p_dim_name;
248 im_md_hierarchies(l_index).apps_origin:=p_apps_origin;
249 im_md_hierarchies(l_index).description:=p_description;
250 im_md_hierarchies(l_index).property:=p_property;
251 return true;
252 Exception when others then
253 BSC_IM_UTILS.g_status_message:=sqlerrm;
254 g_status_message:=sqlerrm;
255 write_to_log_file_n('Error in create_hierarchy '||sqlerrm);
256 return false;
257 End;
258
259 function create_mapping(
260 p_map_name varchar2,
261 p_apps_origin varchar2,
262 p_map_type varchar2,
263 p_object_name varchar2,
264 p_property varchar2
265 )return boolean is
266 l_found boolean;
267 l_index number;
268 Begin
269 if number_im_md_mapping is null then
270 number_im_md_mapping:=0;
271 im_md_mapping:=im_md_mapping_t(im_md_mapping_i);
272 number_im_md_mapping:=number_im_md_mapping+1;
273 l_index:=number_im_md_mapping;
274 elsif number_im_md_mapping>0 then
275 l_found:=false;
276 for i in 1..number_im_md_mapping loop
277 if im_md_mapping(i).map_name=p_map_name and im_md_mapping(i).apps_origin=p_apps_origin then
278 l_found:=true;
279 l_index:=i;
280 exit;
281 end if;
282 end loop;
283 if l_found=false then
284 im_md_mapping.extend;
285 number_im_md_mapping:=number_im_md_mapping+1;
286 l_index:=number_im_md_mapping;
287 end if;
288 else
289 im_md_mapping.extend;
293 im_md_mapping(l_index).map_name:=p_map_name;
290 number_im_md_mapping:=number_im_md_mapping+1;
291 l_index:=number_im_md_mapping;
292 end if;
294 im_md_mapping(l_index).apps_origin:=p_apps_origin;
295 im_md_mapping(l_index).map_type:=p_map_type;
296 im_md_mapping(l_index).object_name:=p_object_name;
297 im_md_mapping(l_index).property:=p_property;
298 return true;
299 Exception when others then
300 BSC_IM_UTILS.g_status_message:=sqlerrm;
301 g_status_message:=sqlerrm;
302 write_to_log_file_n('Error in create_mapping '||sqlerrm);
303 return false;
304 End;
305
306 function create_mapping_detail(
307 p_map_name varchar2,
308 p_apps_origin varchar2,
309 p_line varchar2,
310 p_line_type varchar2,
311 p_property varchar2
312 )return boolean is
313 l_found boolean;
314 l_index number;
315 Begin
316 if number_im_md_mapping_details is null then
317 number_im_md_mapping_details:=0;
318 im_md_mapping_details:=im_md_mapping_details_t(im_md_mapping_details_i);
319 number_im_md_mapping_details:=number_im_md_mapping_details+1;
320 l_index:=number_im_md_mapping_details;
321 elsif number_im_md_mapping_details>0 then
322 l_found:=false;
323 for i in 1..number_im_md_mapping_details loop
324 if im_md_mapping_details(i).map_name=p_map_name and im_md_mapping_details(i).apps_origin=p_apps_origin and
325 im_md_mapping_details(i).line=p_line and im_md_mapping_details(i).line_type=p_line_type and
326 im_md_mapping_details(i).property=p_property then
327 l_found:=true;
328 l_index:=i;
329 exit;
330 end if;
331 end loop;
332 if l_found=false then
333 im_md_mapping_details.extend;
334 number_im_md_mapping_details:=number_im_md_mapping_details+1;
335 l_index:=number_im_md_mapping_details;
336 end if;
337 else
338 im_md_mapping_details.extend;
339 number_im_md_mapping_details:=number_im_md_mapping_details+1;
340 l_index:=number_im_md_mapping_details;
341 end if;
342 im_md_mapping_details(l_index).map_name:=p_map_name;
343 im_md_mapping_details(l_index).apps_origin:=p_apps_origin;
344 im_md_mapping_details(l_index).line:=p_line;
345 im_md_mapping_details(l_index).line_type:=p_line_type;
346 im_md_mapping_details(l_index).property:=p_property;
347 return true;
348 Exception when others then
349 BSC_IM_UTILS.g_status_message:=sqlerrm;
350 g_status_message:=sqlerrm;
351 write_to_log_file_n('Error in create_mapping_detail '||sqlerrm);
352 return false;
353 End;
354
355 function create_cube(
356 p_cube_name varchar2,
357 p_cube_id number,
358 p_cube_periodicity varchar2,
359 p_apps_origin varchar2,
360 p_description varchar2,
361 p_property varchar2
362 )return boolean is
363 l_found boolean;
364 l_index number;
365 Begin
366 if number_im_md_cube is null then
367 number_im_md_cube:=0;
368 im_md_cube:=im_md_cube_t(im_md_cube_i);
369 number_im_md_cube:=number_im_md_cube+1;
370 l_index:=number_im_md_cube;
371 elsif number_im_md_cube>0 then
372 l_found:=false;
373 for i in 1..number_im_md_cube loop
374 if im_md_cube(i).cube_name=p_cube_name and im_md_cube(i).apps_origin=p_apps_origin then
375 l_found:=true;
376 l_index:=i;
377 exit;
378 end if;
379 end loop;
380 if l_found=false then
381 im_md_cube.extend;
382 number_im_md_cube:=number_im_md_cube+1;
383 l_index:=number_im_md_cube;
384 end if;
385 else
386 im_md_cube.extend;
387 number_im_md_cube:=number_im_md_cube+1;
388 l_index:=number_im_md_cube;
389 end if;
390 im_md_cube(l_index).cube_name:=p_cube_name;
391 im_md_cube(l_index).cube_id:=p_cube_id;
392 im_md_cube(l_index).cube_periodicity:=p_cube_periodicity;
393 im_md_cube(l_index).apps_origin:=p_apps_origin;
394 im_md_cube(l_index).description:=p_description;
395 im_md_cube(l_index).property:=p_property;
396 return true;
397 Exception when others then
398 BSC_IM_UTILS.g_status_message:=sqlerrm;
399 g_status_message:=sqlerrm;
400 write_to_log_file_n('Error in create_cube '||sqlerrm);
401 return false;
402 End;
403
404 function create_fk(
405 p_fk_name varchar2,
406 p_fk_type varchar2,
407 p_owner_name varchar2,
408 p_uk_name varchar2,
409 p_uk_parent_name varchar2,
410 p_description varchar2,
411 p_apps_origin varchar2,
412 p_property varchar2
413 )return boolean is
414 l_found boolean;
415 l_index number;
416 Begin
417 if number_im_md_fk is null then
418 number_im_md_fk:=0;
419 im_md_fk:=im_md_fk_t(im_md_fk_i);
420 number_im_md_fk:=number_im_md_fk+1;
421 l_index:=number_im_md_fk;
422 elsif number_im_md_fk>0 then
423 l_found:=false;
424 for i in 1..number_im_md_fk loop
425 if im_md_fk(i).fk_name=p_fk_name and im_md_fk(i).owner_name=p_owner_name
426 and im_md_fk(i).apps_origin=p_apps_origin then
427 l_found:=true;
428 l_index:=i;
429 exit;
430 end if;
431 end loop;
432 if l_found=false then
433 im_md_fk.extend;
434 number_im_md_fk:=number_im_md_fk+1;
435 l_index:=number_im_md_fk;
436 end if;
437 else
438 im_md_fk.extend;
439 number_im_md_fk:=number_im_md_fk+1;
440 l_index:=number_im_md_fk;
441 end if;
442 im_md_fk(l_index).fk_name:=p_fk_name;
446 im_md_fk(l_index).owner_name:=p_owner_name;
443 im_md_fk(l_index).fk_type:=p_fk_type;
444 im_md_fk(l_index).uk_name:=p_uk_name;
445 im_md_fk(l_index).description:=p_description;
447 im_md_fk(l_index).uk_parent_name:=p_uk_parent_name;
448 im_md_fk(l_index).apps_origin:=p_apps_origin;
449 im_md_fk(l_index).property:=p_property;
450 return true;
451 Exception when others then
452 BSC_IM_UTILS.g_status_message:=sqlerrm;
453 g_status_message:=sqlerrm;
454 write_to_log_file_n('Error in create_fk '||sqlerrm);
455 return false;
456 End;
457
458 function create_uk(
459 p_uk_name varchar2,
460 p_uk_type varchar2,
461 p_description varchar2,
462 p_owner_name varchar2,
463 p_apps_origin varchar2,
464 p_property varchar2
465 )return boolean is
466 l_found boolean;
467 l_index number;
468 Begin
469 if number_im_md_uk is null then
470 number_im_md_uk:=0;
471 im_md_uk:=im_md_uk_t(im_md_uk_i);
472 number_im_md_uk:=number_im_md_uk+1;
473 l_index:=number_im_md_uk;
474 elsif number_im_md_uk>0 then
475 l_found:=false;
476 for i in 1..number_im_md_uk loop
477 if im_md_uk(i).uk_name=p_uk_name and im_md_uk(i).owner_name=p_owner_name
478 and im_md_uk(i).apps_origin=p_apps_origin then
479 l_found:=true;
480 l_index:=i;
481 exit;
482 end if;
483 end loop;
484 if l_found=false then
485 im_md_uk.extend;
486 number_im_md_uk:=number_im_md_uk+1;
487 l_index:=number_im_md_uk;
488 end if;
489 else
490 im_md_uk.extend;
491 number_im_md_uk:=number_im_md_uk+1;
492 l_index:=number_im_md_uk;
493 end if;
494 im_md_uk(l_index).uk_name:=p_uk_name;
495 im_md_uk(l_index).uk_type:=p_uk_type;
496 im_md_uk(l_index).description:=p_description;
497 im_md_uk(l_index).owner_name:=p_owner_name;
498 im_md_uk(l_index).apps_origin:=p_apps_origin;
499 im_md_uk(l_index).property:=p_property;
500 return true;
501 Exception when others then
502 BSC_IM_UTILS.g_status_message:=sqlerrm;
503 g_status_message:=sqlerrm;
504 write_to_log_file_n('Error in create_uk '||sqlerrm);
505 return false;
506 End;
507
508 function create_object(
509 p_object_name varchar2,
510 p_object_type varchar2,
511 p_apps_origin varchar2,
512 p_parent_name varchar2,
513 p_description varchar2,
514 p_property varchar2
515 )return boolean is
516 l_found boolean;
517 l_index number;
518 Begin
519 if number_im_md_object is null then
520 number_im_md_object:=0;
521 im_md_object:=im_md_object_t(im_md_object_i);
522 number_im_md_object:=number_im_md_object+1;
523 l_index:=number_im_md_object;
524 elsif number_im_md_object>0 then
525 l_found:=false;
526 for i in 1..number_im_md_object loop
527 if im_md_object(i).object_name=p_object_name and im_md_object(i).apps_origin=p_apps_origin and
528 im_md_object(i).object_type=p_object_type and im_md_object(i).property=p_property and
529 im_md_object(i).parent_name=p_parent_name then
530 l_found:=true;
531 l_index:=i;
532 exit;
533 end if;
534 end loop;
535 if l_found=false then
536 im_md_object.extend;
537 number_im_md_object:=number_im_md_object+1;
538 l_index:=number_im_md_object;
539 end if;
540 else
541 im_md_object.extend;
542 number_im_md_object:=number_im_md_object+1;
543 l_index:=number_im_md_object;
544 end if;
545 im_md_object(l_index).object_name:=p_object_name;
546 im_md_object(l_index).object_type:=p_object_type;
547 im_md_object(l_index).apps_origin:=p_apps_origin;
548 im_md_object(l_index).parent_name:=p_parent_name;
549 im_md_object(l_index).description:=p_description;
550 im_md_object(l_index).property:=p_property;
551 return true;
552 Exception when others then
553 BSC_IM_UTILS.g_status_message:=sqlerrm;
554 g_status_message:=sqlerrm;
555 write_to_log_file_n('Error in create_object '||sqlerrm);
556 return false;
557 End;
558
559 --==============================================================================
560
561 --============================PUBLIC DELETE API=================================
562 procedure reset_int_metadata is
563 Begin
564 if number_im_md_dimensions>0 then
565 im_md_dimensions.delete;
566 end if;
567 number_im_md_dimensions:=null;
568 if number_im_md_levels>0 then
569 im_md_levels.delete;
570 end if;
571 number_im_md_levels:=null;
572 if number_im_md_columns>0 then
573 im_md_columns.delete;
574 end if;
575 number_im_md_columns:=null;
576 if number_im_md_level_relations>0 then
577 im_md_level_relations.delete;
578 end if;
579 number_im_md_level_relations:=null;
580 if number_im_md_hierarchies>0 then
581 im_md_hierarchies.delete;
582 end if;
583 number_im_md_hierarchies:=null;
584 if number_im_md_mapping>0 then
585 im_md_mapping.delete;
586 end if;
587 number_im_md_mapping:=null;
588 if number_im_md_mapping_details>0 then
589 im_md_mapping_details.delete;
590 end if;
591 number_im_md_mapping_details:=null;
592 if number_im_md_cube>0 then
593 im_md_cube.delete;
594 end if;
595 number_im_md_cube:=null;
596 if number_im_md_fk>0 then
597 im_md_fk.delete;
598 end if;
599 number_im_md_fk:=null;
600 if number_im_md_uk>0 then
601 im_md_uk.delete;
602 end if;
603 number_im_md_uk:=null;
604 if number_im_md_object>0 then
605 im_md_object.delete;
606 end if;
610 write_to_log_file_n('Error in reset_int_metadata '||sqlerrm);
607 number_im_md_object:=null;
608 Exception when others then
609 BSC_IM_UTILS.g_status_message:=sqlerrm;
611 raise;
612 End;
613 --==============================================================================
614
615 --============================PUBLIC GET API====================================
616 function get_dimension(
617 p_dim_name varchar2,
618 p_apps_origin varchar2,
619 p_description out nocopy varchar2,
620 p_property out nocopy varchar2
621 )return boolean is
622 Begin
623 if number_im_md_dimensions is null then
624 return true;
625 end if;
626 for i in 1..number_im_md_dimensions loop
627 if im_md_dimensions(i).dim_name=p_dim_name and im_md_dimensions(i).apps_origin=p_apps_origin then
628 p_description:=im_md_dimensions(i).description;
629 p_property:=im_md_dimensions(i).property;
630 exit;
631 end if;
632 end loop;
633 return true;
634 Exception when others then
635 BSC_IM_UTILS.g_status_message:=sqlerrm;
636 g_status_message:=sqlerrm;
637 write_to_log_file_n('Error in get_dimension '||sqlerrm);
638 return false;
639 End;
640
641 function get_level(
642 p_dim_name varchar2,
643 p_apps_origin varchar2,
644 p_level_name out nocopy BSC_IM_UTILS.varchar_tabletype,
645 p_number_children out nocopy BSC_IM_UTILS.number_tabletype,
646 p_description out nocopy BSC_IM_UTILS.varchar_tabletype,
647 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
648 p_number_levels out nocopy number
649 )return boolean is
650 Begin
651 p_number_levels:=0;
652 if number_im_md_levels is null then
653 return true;
654 end if;
655 for i in 1..number_im_md_levels loop
656 if im_md_levels(i).dim_name=p_dim_name and im_md_levels(i).apps_origin=p_apps_origin then
657 p_number_levels:=p_number_levels+1;
658 p_level_name(p_number_levels):=im_md_levels(i).level_name;
659 p_number_children(p_number_levels):=im_md_levels(i).number_children;
660 p_description(p_number_levels):=im_md_levels(i).description;
661 p_property(p_number_levels):=im_md_levels(i).property;
662 end if;
663 end loop;
664 return true;
665 Exception when others then
666 BSC_IM_UTILS.g_status_message:=sqlerrm;
667 g_status_message:=sqlerrm;
668 write_to_log_file_n('Error in get_level '||sqlerrm);
669 return false;
670 End;
671
672 function get_dim_for_level(
673 p_level varchar2,
674 p_apps_origin varchar2,
675 p_dim_name out nocopy varchar2) return boolean is
676 Begin
677 if number_im_md_levels is null then
678 return true;
679 end if;
680 for i in 1..number_im_md_levels loop
681 if im_md_levels(i).level_name=p_level and im_md_levels(i).apps_origin=p_apps_origin then
682 p_dim_name:=im_md_levels(i).dim_name;
683 exit;
684 end if;
685 end loop;
686 return true;
687 Exception when others then
688 BSC_IM_UTILS.g_status_message:=sqlerrm;
689 g_status_message:=sqlerrm;
690 write_to_log_file_n('Error in get_dim_for_level '||sqlerrm);
691 return false;
692 End;
693
694 function get_column(
695 p_parent_name varchar2,
696 p_apps_origin varchar2,
697 p_column_name out nocopy BSC_IM_UTILS.varchar_tabletype,
698 p_column_type out nocopy BSC_IM_UTILS.varchar_tabletype,
699 p_column_data_type out nocopy BSC_IM_UTILS.varchar_tabletype,
700 p_column_origin out nocopy BSC_IM_UTILS.varchar_tabletype,
701 p_aggregation_type out nocopy BSC_IM_UTILS.varchar_tabletype,
702 p_description out nocopy BSC_IM_UTILS.varchar_tabletype,
703 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
704 p_number_columns out nocopy number
705 )return boolean is
706 Begin
707 p_number_columns:=0;
708 if number_im_md_columns is null then
709 return true;
710 end if;
711 for i in 1..number_im_md_columns loop
712 if im_md_columns(i).parent_name=p_parent_name and im_md_columns(i).apps_origin=p_apps_origin then
713 p_number_columns:=p_number_columns+1;
714 p_column_name(p_number_columns):=im_md_columns(i).column_name;
715 p_column_type(p_number_columns):=im_md_columns(i).column_type;
716 p_column_data_type(p_number_columns):=im_md_columns(i).column_data_type;
717 p_column_origin(p_number_columns):=im_md_columns(i).column_origin;
718 p_aggregation_type(p_number_columns):=im_md_columns(i).aggregation_type;
719 p_description(p_number_columns):=im_md_columns(i).description;
720 p_property(p_number_columns):=im_md_columns(i).property;
721 end if;
722 end loop;
723 return true;
724 Exception when others then
725 BSC_IM_UTILS.g_status_message:=sqlerrm;
726 g_status_message:=sqlerrm;
727 write_to_log_file_n('Error in get_column '||sqlerrm);
728 return false;
729 End;
730
731 function get_level_relation(
732 p_dim_name varchar2,
733 p_apps_origin varchar2,
734 p_child_level out nocopy BSC_IM_UTILS.varchar_tabletype,
735 p_parent_level out nocopy BSC_IM_UTILS.varchar_tabletype,
736 p_child_fk out nocopy BSC_IM_UTILS.varchar_tabletype,
737 p_parent_pk out nocopy BSC_IM_UTILS.varchar_tabletype,
738 p_hier_name out nocopy BSC_IM_UTILS.varchar_tabletype,
739 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
740 p_number_level_relations out nocopy number
741 )return boolean is
742 Begin
743 p_number_level_relations:=0;
744 if number_im_md_level_relations is null then
745 return true;
746 end if;
747 for i in 1..number_im_md_level_relations loop
748 if im_md_level_relations(i).dim_name=p_dim_name and im_md_level_relations(i).apps_origin=p_apps_origin then
749 p_number_level_relations:=p_number_level_relations+1;
753 p_parent_pk(p_number_level_relations):=im_md_level_relations(i).parent_pk;
750 p_child_level(p_number_level_relations):=im_md_level_relations(i).child_level;
751 p_parent_level(p_number_level_relations):=im_md_level_relations(i).parent_level;
752 p_child_fk(p_number_level_relations):=im_md_level_relations(i).child_fk;
754 p_hier_name(p_number_level_relations):=im_md_level_relations(i).hier_name;
755 p_property(p_number_level_relations):=im_md_level_relations(i).property;
756 end if;
757 end loop;
758 return true;
759 Exception when others then
760 BSC_IM_UTILS.g_status_message:=sqlerrm;
761 g_status_message:=sqlerrm;
762 write_to_log_file_n('Error in get_level_relation '||sqlerrm);
763 return false;
764 End;
765
766 function get_hierarchy(
767 p_dim_name varchar2,
768 p_apps_origin varchar2,
769 p_hier_name out nocopy BSC_IM_UTILS.varchar_tabletype,
770 p_description out nocopy BSC_im_UTILS.varchar_tabletype,
771 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
772 p_number_hierarchy out nocopy number
773 )return boolean is
774 Begin
775 p_number_hierarchy:=0;
776 if number_im_md_hierarchies is null then
777 return true;
778 end if;
779 for i in 1..number_im_md_hierarchies loop
780 if im_md_hierarchies(i).dim_name=p_dim_name and im_md_hierarchies(i).apps_origin=p_apps_origin then
781 p_number_hierarchy:=p_number_hierarchy+1;
782 p_hier_name(p_number_hierarchy):=im_md_hierarchies(i).hier_name;
783 p_description(p_number_hierarchy):=im_md_hierarchies(i).description;
784 p_property(p_number_hierarchy):=im_md_hierarchies(i).property;
785 end if;
786 end loop;
787 return true;
788 Exception when others then
789 BSC_IM_UTILS.g_status_message:=sqlerrm;
790 g_status_message:=sqlerrm;
791 write_to_log_file_n('Error in get_hierarchy '||sqlerrm);
792 return false;
793 End;
794
795 function get_mapping(
796 p_owner_name varchar2,
797 p_apps_origin varchar2,
798 p_map_name out nocopy BSC_IM_UTILS.varchar_tabletype,
799 p_map_type out nocopy BSC_IM_UTILS.varchar_tabletype,
800 p_object_name out nocopy BSC_IM_UTILS.varchar_tabletype,
801 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
802 p_number_mapping out nocopy number
803 )return boolean is
804 Begin
805 p_number_mapping:=0;
806 if number_im_md_mapping is null then
807 return true;
808 end if;
809 for i in 1..number_im_md_mapping loop
810 if im_md_mapping(i).apps_origin=p_apps_origin and im_md_mapping(i).object_name=p_owner_name then
811 p_number_mapping:=p_number_mapping+1;
812 p_map_name(p_number_mapping):=im_md_mapping(i).map_name;
813 p_map_type(p_number_mapping):=im_md_mapping(i).map_type;
814 p_object_name(p_number_mapping):=im_md_mapping(i).object_name;
815 p_property(p_number_mapping):=im_md_mapping(i).property;
816 end if;
817 end loop;
818 return true;
819 Exception when others then
820 BSC_IM_UTILS.g_status_message:=sqlerrm;
821 g_status_message:=sqlerrm;
822 write_to_log_file_n('Error in get_mapping '||sqlerrm);
823 return false;
824 End;
825
826 function get_mapping_detail(
827 p_map_name varchar2,
828 p_apps_origin varchar2,
829 p_line out nocopy BSC_IM_UTILS.varchar_tabletype,
830 p_line_type out nocopy BSC_IM_UTILS.varchar_tabletype,
831 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
832 p_number_map_detail out nocopy number
833 )return boolean is
834 Begin
835 p_number_map_detail:=0;
836 if number_im_md_mapping_details is null then
837 return true;
838 end if;
839 for i in 1..number_im_md_mapping_details loop
840 if im_md_mapping_details(i).map_name=p_map_name and im_md_mapping_details(i).apps_origin=p_apps_origin then
841 p_number_map_detail:=p_number_map_detail+1;
842 p_line(p_number_map_detail):=im_md_mapping_details(i).line;
843 p_line_type(p_number_map_detail):=im_md_mapping_details(i).line_type;
844 p_property(p_number_map_detail):=im_md_mapping_details(i).property;
845 end if;
846 end loop;
847 return true;
848 Exception when others then
849 BSC_IM_UTILS.g_status_message:=sqlerrm;
850 g_status_message:=sqlerrm;
851 write_to_log_file_n('Error in get_mapping_detail '||sqlerrm);
852 return false;
853 End;
854
855 function get_cube(
856 p_cube_name varchar2,
857 p_apps_origin varchar2,
858 p_cube_id out nocopy number,
859 p_cube_periodicity out nocopy varchar2,
860 p_description out nocopy varchar2,
861 p_property out nocopy varchar2
862 )return boolean is
863 Begin
864 if number_im_md_cube is null then
865 return true;
866 end if;
867 for i in 1..number_im_md_cube loop
868 if im_md_cube(i).cube_name=p_cube_name and im_md_cube(i).apps_origin=p_apps_origin then
869 p_cube_id:=im_md_cube(i).cube_id;
870 p_cube_periodicity:=im_md_cube(i).cube_periodicity;
871 p_description:=im_md_cube(i).description;
872 p_property:=im_md_cube(i).property;
873 exit;
874 end if;
875 end loop;
876 return true;
877 Exception when others then
878 BSC_IM_UTILS.g_status_message:=sqlerrm;
879 g_status_message:=sqlerrm;
880 write_to_log_file_n('Error in get_cube '||sqlerrm);
881 return false;
882 End;
883
884 function get_fk(
885 p_owner_name varchar2,
886 p_apps_origin varchar2,
887 p_fk_name out nocopy BSC_IM_UTILS.varchar_tabletype,
888 p_fk_type out nocopy BSC_IM_UTILS.varchar_tabletype,
889 p_uk_name out nocopy BSC_IM_UTILS.varchar_tabletype,
890 p_uk_parent_name out nocopy BSC_IM_UTILS.varchar_tabletype,
891 p_description out nocopy BSC_IM_UTILS.varchar_tabletype,
892 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
893 p_number_fk out nocopy number
897 if number_im_md_fk is null then
894 )return boolean is
895 Begin
896 p_number_fk:=0;
898 return true;
899 end if;
900 for i in 1..number_im_md_fk loop
901 if im_md_fk(i).owner_name=p_owner_name and im_md_fk(i).apps_origin=p_apps_origin then
902 p_number_fk:=p_number_fk+1;
903 p_fk_name(p_number_fk):=im_md_fk(i).fk_name;
904 p_fk_type(p_number_fk):=im_md_fk(i).fk_type;
905 p_uk_name(p_number_fk):=im_md_fk(i).uk_name;
906 p_description(p_number_fk):=im_md_fk(i).description;
907 p_uk_parent_name(p_number_fk):=im_md_fk(i).uk_parent_name;
908 p_property(p_number_fk):=im_md_fk(i).property;
909 end if;
910 end loop;
911 return true;
912 Exception when others then
913 BSC_IM_UTILS.g_status_message:=sqlerrm;
914 g_status_message:=sqlerrm;
915 write_to_log_file_n('Error in get_fk '||sqlerrm);
916 return false;
917 End;
918
919 function get_uk(
920 p_owner_name varchar2,
921 p_apps_origin varchar2,
922 p_uk_name out nocopy BSC_IM_UTILS.varchar_tabletype,
923 p_uk_type out nocopy BSC_IM_UTILS.varchar_tabletype,
924 p_description out nocopy BSC_IM_UTILS.varchar_tabletype,
925 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
926 p_number_uk out nocopy number
927 )return boolean is
928 Begin
929 p_number_uk:=0;
930 if number_im_md_uk is null then
931 return true;
932 end if;
933 for i in 1..number_im_md_uk loop
934 if im_md_uk(i).owner_name=p_owner_name and im_md_uk(i).apps_origin=p_apps_origin then
935 p_number_uk:=p_number_uk+1;
936 p_uk_name(p_number_uk):=im_md_uk(i).uk_name;
937 p_uk_type(p_number_uk):=im_md_uk(i).uk_type;
938 p_description(p_number_uk):=im_md_uk(i).description;
939 p_property(p_number_uk):=im_md_uk(i).property;
940 end if;
941 end loop;
942 return true;
943 Exception when others then
944 BSC_IM_UTILS.g_status_message:=sqlerrm;
945 g_status_message:=sqlerrm;
946 write_to_log_file_n('Error in get_uk '||sqlerrm);
947 return false;
948 End;
949
950 function get_object(
951 p_parent_name varchar2,
952 p_apps_origin varchar2,
953 p_object_name out nocopy BSC_IM_UTILS.varchar_tabletype,
954 p_object_type out nocopy BSC_IM_UTILS.varchar_tabletype,
955 p_description out nocopy BSC_IM_UTILS.varchar_tabletype,
956 p_property out nocopy BSC_IM_UTILS.varchar_tabletype,
957 p_number_object out nocopy number
958 )return boolean is
959 Begin
960 p_number_object:=0;
961 if number_im_md_object is null then
962 return true;
963 end if;
964 for i in 1..number_im_md_object loop
965 if im_md_object(i).parent_name=p_parent_name and im_md_object(i).apps_origin=p_apps_origin then
966 p_number_object:=p_number_object+1;
967 p_object_name(p_number_object):=im_md_object(i).object_name;
968 p_object_type(p_number_object):=im_md_object(i).object_type;
969 p_description(p_number_object):=im_md_object(i).description;
970 p_property(p_number_object):=im_md_object(i).property;
971 end if;
972 end loop;
973 return true;
974 Exception when others then
975 BSC_IM_UTILS.g_status_message:=sqlerrm;
976 g_status_message:=sqlerrm;
977 write_to_log_file_n('Error in get_object '||sqlerrm);
978 return false;
979 End;
980
981 function get_object(
982 p_parent_name varchar2,
983 p_apps_origin varchar2,
984 p_property varchar2,
985 p_object_name out nocopy BSC_IM_UTILS.varchar_tabletype,
986 p_object_type out nocopy BSC_IM_UTILS.varchar_tabletype,
987 p_description out nocopy BSC_IM_UTILS.varchar_tabletype,
988 p_number_object out nocopy number
989 )return boolean is
990 Begin
991 p_number_object:=0;
992 if number_im_md_object is null then
993 return true;
994 end if;
995 for i in 1..number_im_md_object loop
996 if im_md_object(i).parent_name=p_parent_name and im_md_object(i).apps_origin=p_apps_origin and
997 im_md_object(i).property=p_property then
998 p_number_object:=p_number_object+1;
999 p_object_name(p_number_object):=im_md_object(i).object_name;
1000 p_object_type(p_number_object):=im_md_object(i).object_type;
1001 p_description(p_number_object):=im_md_object(i).description;
1002 end if;
1003 end loop;
1004 return true;
1005 Exception when others then
1006 BSC_IM_UTILS.g_status_message:=sqlerrm;
1007 g_status_message:=sqlerrm;
1008 write_to_log_file_n('Error in get_object '||sqlerrm);
1009 return false;
1010 End;
1011
1012 function get_object(
1013 p_object_name varchar2,
1014 p_apps_origin varchar2,
1015 p_parent_name out nocopy varchar2,
1016 p_object_type out nocopy varchar2,
1017 p_description out nocopy varchar2,
1018 p_property out nocopy varchar2
1019 )return boolean is
1020 Begin
1021 if number_im_md_object is null then
1022 return true;
1023 end if;
1024 for i in 1..number_im_md_object loop
1025 if im_md_object(i).object_name=p_object_name and im_md_object(i).apps_origin=p_apps_origin then
1026 p_parent_name:=im_md_object(i).parent_name;
1027 p_object_type:=im_md_object(i).object_type;
1028 p_description:=im_md_object(i).description;
1029 p_property:=im_md_object(i).property;
1030 exit;
1031 end if;
1032 end loop;
1033 return true;
1034 Exception when others then
1035 BSC_IM_UTILS.g_status_message:=sqlerrm;
1036 g_status_message:=sqlerrm;
1037 write_to_log_file_n('Error in get_object '||sqlerrm);
1038 return false;
1039 End;
1040
1041 function get_object_type(p_object varchar2) return varchar2 is
1042 Begin
1043 --dim
1044 if number_im_md_dimensions is not null then
1045 for i in 1..number_im_md_dimensions loop
1049 end loop;
1046 if im_md_dimensions(i).dim_name=p_object then
1047 return 'DIMENSION';
1048 end if;
1050 end if;
1051 --level
1052 if number_im_md_levels is not null then
1053 for i in 1..number_im_md_levels loop
1054 if im_md_levels(i).level_name=p_object then
1055 return 'LEVEL';
1056 end if;
1057 end loop;
1058 end if;
1059 --hier
1060 if number_im_md_hierarchies is not null then
1061 for i in 1..number_im_md_hierarchies loop
1062 if im_md_hierarchies(i).hier_name=p_object then
1063 return 'HIERARCHY';
1064 end if;
1065 end loop;
1066 end if;
1067 --mapping
1068 if number_im_md_mapping is not null then
1069 for i in 1..number_im_md_mapping loop
1070 if im_md_mapping(i).map_name=p_object then
1071 return 'MAPPING';
1072 end if;
1073 end loop;
1074 end if;
1075 --cube
1076 if number_im_md_cube is not null then
1077 for i in 1..number_im_md_cube loop
1078 if im_md_cube(i).cube_name=p_object then
1079 return 'CUBE';
1080 end if;
1081 end loop;
1082 end if;
1083 --object
1084 if number_im_md_object is not null then
1085 for i in 1..number_im_md_object loop
1086 if im_md_object(i).object_name=p_object then
1087 return 'OBJECT';
1088 end if;
1089 end loop;
1090 end if;
1091 --fk
1092 if number_im_md_fk is not null then
1093 for i in 1..number_im_md_fk loop
1094 if im_md_fk(i).fk_name=p_object then
1095 return 'FK';
1096 end if;
1097 end loop;
1098 end if;
1099 --uk
1100 if number_im_md_uk is not null then
1101 for i in 1..number_im_md_uk loop
1102 if im_md_uk(i).uk_name=p_object then
1103 return 'UK';
1104 end if;
1105 end loop;
1106 end if;
1107 return 'OTHER';
1108 Exception when others then
1109 BSC_IM_UTILS.g_status_message:=sqlerrm;
1110 g_status_message:=sqlerrm;
1111 write_to_log_file_n('Error in get_object_type '||sqlerrm);
1112 return null;
1113 End;
1114
1115 --==============================================================================
1116 --****************** GET COUNTS ***********************************************
1117 function get_cube_count return number is
1118 Begin
1119 if number_im_md_cube is null then
1120 return 0;
1121 else
1122 return number_im_md_cube;
1123 end if;
1124 Exception when others then
1125 BSC_IM_UTILS.g_status_message:=sqlerrm;
1126 g_status_message:=sqlerrm;
1127 write_to_log_file_n('Error in get_object_type '||sqlerrm);
1128 return null;
1129 End;
1130
1131 --==============================================================================
1132 --****************** DEBUG DUMPS ***********************************************
1133 procedure dump_dimension is
1134 Begin
1135 write_to_log_file_n('Dump dimension');
1136 if number_im_md_dimensions is null then
1137 return;
1138 end if;
1139 write_to_log_file('dim_name apps_origin description property');
1140 for i in 1..number_im_md_dimensions loop
1141 write_to_log_file_s(im_md_dimensions(i).dim_name);
1142 write_to_log_file_s(im_md_dimensions(i).apps_origin);
1143 write_to_log_file_s(im_md_dimensions(i).description);
1144 write_to_log_file_s(im_md_dimensions(i).property);
1145 write_to_log_file(' ');
1146 end loop;
1147 Exception when others then
1148 BSC_IM_UTILS.g_status_message:=sqlerrm;
1149 write_to_log_file_n('Error in dump_dimension '||sqlerrm);
1150 End;
1151
1152 procedure dump_level is
1153 Begin
1154 write_to_log_file_n('Level level');
1155 if number_im_md_levels is null then
1156 return;
1157 end if;
1158 write_to_log_file('dim_name apps_origin level_name number_children description property');
1159 for i in 1..number_im_md_levels loop
1160 write_to_log_file_s(im_md_levels(i).dim_name);
1161 write_to_log_file_s(im_md_levels(i).apps_origin);
1162 write_to_log_file_s(im_md_levels(i).level_name);
1163 write_to_log_file_s(im_md_levels(i).number_children);
1164 write_to_log_file_s(im_md_levels(i).description);
1165 write_to_log_file_s(im_md_levels(i).property);
1166 write_to_log_file(' ');
1167 end loop;
1168 Exception when others then
1169 BSC_IM_UTILS.g_status_message:=sqlerrm;
1170 write_to_log_file_n('Error in dump_level '||sqlerrm);
1171 End;
1172
1173 procedure dump_column is
1174 Begin
1175 write_to_log_file_n('dump columns');
1176 if number_im_md_columns is null then
1177 return;
1178 end if;
1179 write_to_log_file('parent_name apps_origin column_name column_type column_data_type '||
1180 'column_origin aggregation_type description property');
1181 for i in 1..number_im_md_columns loop
1182 write_to_log_file_s(im_md_columns(i).parent_name);
1183 write_to_log_file_s(im_md_columns(i).apps_origin);
1184 write_to_log_file_s(im_md_columns(i).column_name);
1185 write_to_log_file_s(im_md_columns(i).column_type);
1186 write_to_log_file_s(im_md_columns(i).column_data_type);
1187 write_to_log_file_s(im_md_columns(i).column_origin);
1188 write_to_log_file_s(im_md_columns(i).aggregation_type);
1189 write_to_log_file_s(im_md_columns(i).description);
1190 write_to_log_file_s(im_md_columns(i).property);
1191 write_to_log_file(' ');
1192 end loop;
1193 Exception when others then
1194 BSC_IM_UTILS.g_status_message:=sqlerrm;
1195 write_to_log_file_n('Error in dump_column '||sqlerrm);
1196 End;
1197
1198 procedure dump_level_relation is
1199 Begin
1200 write_to_log_file_n('dump level relations');
1201 if number_im_md_level_relations is null then
1202 return;
1203 end if;
1207 write_to_log_file_s(im_md_level_relations(i).apps_origin);
1204 write_to_log_file('dim_name apps_origin child_level parent_level child_fk parent_pk hier_name property');
1205 for i in 1..number_im_md_level_relations loop
1206 write_to_log_file_s(im_md_level_relations(i).dim_name);
1208 write_to_log_file_s(im_md_level_relations(i).child_level);
1209 write_to_log_file_s(im_md_level_relations(i).parent_level);
1210 write_to_log_file_s(im_md_level_relations(i).child_fk);
1211 write_to_log_file_s(im_md_level_relations(i).parent_pk);
1212 write_to_log_file_s(im_md_level_relations(i).hier_name);
1213 write_to_log_file_s(im_md_level_relations(i).property);
1214 write_to_log_file(' ');
1215 end loop;
1216 Exception when others then
1217 BSC_IM_UTILS.g_status_message:=sqlerrm;
1218 write_to_log_file_n('Error in dump_level_relation '||sqlerrm);
1219 End;
1220
1221 procedure dump_hierarchy is
1222 Begin
1223 write_to_log_file_n('dump hierarchy');
1224 if number_im_md_hierarchies is null then
1225 return;
1226 end if;
1227 write_to_log_file('dim_name apps_origin hier_name description property');
1228 for i in 1..number_im_md_hierarchies loop
1229 write_to_log_file_s(im_md_hierarchies(i).dim_name);
1230 write_to_log_file_s(im_md_hierarchies(i).apps_origin);
1231 write_to_log_file_s(im_md_hierarchies(i).hier_name);
1232 write_to_log_file_s(im_md_hierarchies(i).description);
1233 write_to_log_file_s(im_md_hierarchies(i).property);
1234 write_to_log_file(' ');
1235 end loop;
1236 Exception when others then
1237 BSC_IM_UTILS.g_status_message:=sqlerrm;
1238 write_to_log_file_n('Error in dump_hierarchy '||sqlerrm);
1239 End;
1240
1241 procedure dump_mapping is
1242 Begin
1243 write_to_log_file_n('dump mapping');
1244 if number_im_md_mapping is null then
1245 return;
1246 end if;
1247 write_to_log_file('apps_origin object_name map_name map_type object_name property');
1248 for i in 1..number_im_md_mapping loop
1249 write_to_log_file_s(im_md_mapping(i).apps_origin);
1250 write_to_log_file_s(im_md_mapping(i).object_name);
1251 write_to_log_file_s(im_md_mapping(i).map_name);
1252 write_to_log_file_s(im_md_mapping(i).map_type);
1253 write_to_log_file_s(im_md_mapping(i).object_name);
1254 write_to_log_file_s(im_md_mapping(i).property);
1255 write_to_log_file(' ');
1256 end loop;
1257 Exception when others then
1258 BSC_IM_UTILS.g_status_message:=sqlerrm;
1259 write_to_log_file_n('Error in dump_mapping '||sqlerrm);
1260 End;
1261
1262 procedure dump_mapping_detail is
1263 Begin
1264 write_to_log_file_n('dump mapping detail');
1265 if number_im_md_mapping_details is null then
1266 return;
1267 end if;
1268 write_to_log_file('map_name apps_origin line line_type property');
1269 for i in 1..number_im_md_mapping_details loop
1270 write_to_log_file_s(im_md_mapping_details(i).map_name);
1271 write_to_log_file_s(im_md_mapping_details(i).apps_origin);
1272 write_to_log_file_s(im_md_mapping_details(i).line);
1273 write_to_log_file_s(im_md_mapping_details(i).line_type);
1274 write_to_log_file_s(im_md_mapping_details(i).property);
1275 write_to_log_file(' ');
1276 end loop;
1277 Exception when others then
1278 BSC_IM_UTILS.g_status_message:=sqlerrm;
1279 write_to_log_file_n('Error in dump_mapping_detail '||sqlerrm);
1280 End;
1281
1282 procedure dump_cube is
1283 Begin
1284 write_to_log_file_n('dump cube');
1285 if number_im_md_cube is null then
1286 return;
1287 end if;
1288 write_to_log_file('cube_name apps_origin cube_id cube_periodicity description property');
1289 for i in 1..number_im_md_cube loop
1290 write_to_log_file_s(im_md_cube(i).cube_name);
1291 write_to_log_file_s(im_md_cube(i).apps_origin);
1292 write_to_log_file_s(im_md_cube(i).cube_id);
1293 write_to_log_file_s(im_md_cube(i).cube_periodicity);
1294 write_to_log_file_s(im_md_cube(i).description);
1295 write_to_log_file_s(im_md_cube(i).property);
1296 write_to_log_file(' ');
1297 end loop;
1298 Exception when others then
1299 BSC_IM_UTILS.g_status_message:=sqlerrm;
1300 write_to_log_file_n('Error in dump_cube '||sqlerrm);
1301 End;
1302
1303 procedure dump_fk is
1304 Begin
1305 write_to_log_file_n('dump fk');
1306 if number_im_md_fk is null then
1307 return;
1308 end if;
1309 write_to_log_file('owner_name apps_origin fk_name fk_type uk_name description uk_parent_name'||
1310 'top_parent_name property');
1311 for i in 1..number_im_md_fk loop
1312 write_to_log_file_s(im_md_fk(i).owner_name);
1313 write_to_log_file_s(im_md_fk(i).apps_origin);
1314 write_to_log_file_s(im_md_fk(i).fk_name);
1315 write_to_log_file_s(im_md_fk(i).fk_type);
1316 write_to_log_file_s(im_md_fk(i).uk_name);
1317 write_to_log_file_s(im_md_fk(i).description);
1318 write_to_log_file_s(im_md_fk(i).uk_parent_name);
1319 write_to_log_file_s(im_md_fk(i).property);
1320 write_to_log_file(' ');
1321 end loop;
1322 Exception when others then
1323 BSC_IM_UTILS.g_status_message:=sqlerrm;
1324 write_to_log_file_n('Error in dump_fk '||sqlerrm);
1325 End;
1326
1327 procedure dump_uk is
1328 Begin
1329 write_to_log_file_n('dump uk');
1330 if number_im_md_uk is null then
1331 return;
1332 end if;
1333 write_to_log_file('owner_name apps_origin uk_name uk_type description property');
1334 for i in 1..number_im_md_uk loop
1335 write_to_log_file_s(im_md_uk(i).owner_name);
1336 write_to_log_file_s(im_md_uk(i).apps_origin);
1337 write_to_log_file_s(im_md_uk(i).uk_name);
1338 write_to_log_file_s(im_md_uk(i).uk_type);
1339 write_to_log_file_s(im_md_uk(i).description);
1340 write_to_log_file_s(im_md_uk(i).property);
1341 write_to_log_file(' ');
1342 end loop;
1346 End;
1343 Exception when others then
1344 BSC_IM_UTILS.g_status_message:=sqlerrm;
1345 write_to_log_file_n('Error in dump_uk '||sqlerrm);
1347
1348 procedure dump_object is
1349 Begin
1350 write_to_log_file_n('dump object');
1351 if number_im_md_object is null then
1352 return;
1353 end if;
1354 write_to_log_file('parent_name apps_origin object_name object_type description property');
1355 for i in 1..number_im_md_object loop
1356 write_to_log_file_s(im_md_object(i).parent_name);
1357 write_to_log_file_s(im_md_object(i).apps_origin);
1358 write_to_log_file_s(im_md_object(i).object_name);
1359 write_to_log_file_s(im_md_object(i).object_type);
1360 write_to_log_file_s(im_md_object(i).description);
1361 write_to_log_file_s(im_md_object(i).property);
1362 write_to_log_file(' ');
1363 end loop;
1364 Exception when others then
1365 BSC_IM_UTILS.g_status_message:=sqlerrm;
1366 write_to_log_file_n('Error in dump_object '||sqlerrm);
1367 End;
1368
1369 procedure dump_all is
1370 Begin
1371 dump_dimension;
1372 dump_level;
1373 dump_column;
1374 dump_level_relation;
1375 dump_hierarchy;
1376 dump_mapping;
1377 dump_mapping_detail;
1378 dump_cube;
1379 dump_fk;
1380 dump_uk;
1381 dump_object;
1382 Exception when others then
1383 BSC_IM_UTILS.g_status_message:=sqlerrm;
1384 write_to_log_file_n('Error in dump_all '||sqlerrm);
1385 End;
1386
1387
1388 --==============================================================================
1389 procedure write_to_log_file(p_message varchar2) is
1390 Begin
1391 BSC_IM_UTILS.write_to_log_file(p_message);
1392 Exception when others then
1393 BSC_IM_UTILS.g_status_message:=sqlerrm;
1394 null;
1395 End;
1396
1397 procedure write_to_log_file_s(p_message varchar2) is
1398 Begin
1399 BSC_IM_UTILS.write_to_log_file_s(p_message);
1400 Exception when others then
1401 BSC_IM_UTILS.g_status_message:=sqlerrm;
1402 null;
1403 End;
1404
1405 procedure write_to_log_file_n(p_message varchar2) is
1406 begin
1407 write_to_log_file(' ');
1408 write_to_log_file(p_message);
1409 Exception when others then
1410 BSC_IM_UTILS.g_status_message:=sqlerrm;
1411 null;
1412 end;
1413
1414 procedure write_to_debug_n(p_message varchar2) is
1415 begin
1416 if g_debug then
1417 write_to_log_file_n(p_message);
1418 end if;
1419 Exception when others then
1420 BSC_IM_UTILS.g_status_message:=sqlerrm;
1421 null;
1422 end;
1423
1424 procedure write_to_debug(p_message varchar2) is
1425 begin
1426 if g_debug then
1427 write_to_log_file(p_message);
1428 end if;
1429 Exception when others then
1430 BSC_IM_UTILS.g_status_message:=sqlerrm;
1431 null;
1432 end;
1433
1434 function get_time return varchar2 is
1435 begin
1436 return ' '||to_char(sysdate,'MM/DD/YYYY HH24:MI:SS');
1437 Exception when others then
1438 BSC_IM_UTILS.g_status_message:=sqlerrm;
1439 null;
1440 End;
1441
1442 procedure set_globals(p_debug boolean) is
1443 Begin
1444 g_debug:=p_debug;
1445 Exception when others then
1446 BSC_IM_UTILS.g_status_message:=sqlerrm;
1447 write_to_log_file_n('Error in set_globals '||sqlerrm);
1448 End;
1449
1450
1451 END BSC_IM_INT_MD;