1 PACKAGE BSC_UTILITY AS
2 /*$Header: BSCUTILS.pls 120.24 2007/10/04 14:29:31 sirukull ship $ */
3 /*===========================================================================+
4 | Copyright (c) 1995 Oracle Corporation |
5 | Redwood Shores, California, USA |
6 | All rights reserved. |
7 | 12-NOV-03 Bug #3232366 |
8 | 09-AUG-2004 sawu Added API Get_Default_Internal_Name for bug#3819855 |
9 | 18-AUG-2004 ADRAO Fixed Bug#3831815 |
10 | 01-OCT-2004 ashankar Fixed Bug#3908204 |
11 | 05-OCT-2004 ankgoel Bug#3933075 Moved C_BSC_UNDERSCORE here from |
12 | BSCCRUDS.pls |
13 | 08-APR-2005 kyadamak Added function get_valid_bsc_master_tbl_name() for |
14 | bug# 4290359 |
15 | 18-JYL-2005 ppandey added Dimension entity validation APIs |
16 | 11-AUG-2005 ppandey Bug #4324947 Validation for Dim,Dim Obj in Rpt |
17 | 01-SEP-2005 adrao Added API Get_Responsibility_Key for Bug#4563456 |
18 | 06-SEP-2005 KYADMAK added constant for bug#4593321 |
19 | 13-Sep-2005 sawu Bug#4602231: Broken is_internal_dim into component apis|
20 | 05-Oct-2005 ashankar Bug# Added the method Get_User_Time |
21 | 02-Jan-2006 akoduri Bug#4611303 - Support For Enable/Disable All |
22 | In Report Designer |
23 | 05-JAN-06 ppandey Enh#4860106 Defined Is_More as a public function |
24 | 13-JAN-06 adrao |
25 | The following APIs have been added as a part of the Enhancement#3909868 |
26 | |
27 | Validate_Plsql_For_Report |
28 | -- actual api to validation the pl/sql for the report |
29 | Get_Plsql_Parameters |
30 | -- gets the pl/sql report for the passed pl/sql procedure |
31 | Remove_Repeating_Comma |
32 | -- Removes and parses repeating comma's |
33 | Validate_PLSQL |
34 | -- Validates existentially the pl/sql package anderformes some |
35 | validation apis |
36 | Obtain_Report_Query |
37 | -- Does the job of actually getting the Report query |
38 | Insert_Into_Query_Table |
39 | -- An API to insert into the PL/SQL table. |
40 | Do_DDL_AT |
41 | -- Autonously call DDL statements, used in our case for creating |
42 | and dropping views |
43 | Validate_Sql_String |
44 | -- Validate's if a SQL string is ok by creating a view |
45 | Sort_String |
46 | -- sorts a comma separated string values |
47 | |
48 | 19-JUN-2006 adrao Added util API Create_Unique_Comma_List & |
49 | Get_Unique_List for Bug#5300060 |
50 | 09-feb-2007 ashankar Simulation Tree Enhacement 5386112 |
51 | 21-MAR-2007 akoduri Copy Indicator Enh#5943238 |
52 +===========================================================================*/
53 /*----------------------------------------------------------------------------
54 FILE NAME
55
56 BSCUTILS.pls
57
58 PACKAGE NAME
59
60 bsc_utility
61
62 DESCRIPTION
63
64 Contains debuging and utility functions and procedures.
65
66 PUBLIC PROCEDURES/FUNCTIONS
67
68 HISTORY
69 15-JAN-1999 Srinivasan Jandyala Created
70 22-JAN-1999 Alex Yang Added Do_SQL() procedure
71 29-MAR-2001 Srini Added PROCEDURE update_edw_flag.
72 21-DEC-2001 Mario-Jair Campos Added procedures: get_dataset_id
73 get_kpi_dim_levels
74 27-DEC-2001 Srini Added function:get_kpi_dim_level_short_names
75 12-MAR-2002 M. Jair Campos Added system time stamp function.
76 23-APR-2003 mdamle Added the toStringArray and ToNumberArray
77 23-APR-2003 mdamle Added the Add_To_Fnd_Msg_Stack
78 27-FEB-2004 adeulgao fixed bug#3431750
79 16-JUN-2004 ADRAO added API Is_BSC_Licensed() for Bug#3764205
80 21-DEC-2004 adrao added type DIMOBJ_SHORT_NAME_CLASS for Bug#4079898
81 31-MAR-2005 adrao added API is_Mix_Dim_Objects_Allowed
82 24-JAN-2006 ankgoel Bug#4954663 Show Info text for AG to PL/SQL or VB conversion
83 08-FEB-2006 akoduri Bug#4956836 Updating dim object cache should
84 invalidate AK Cache also
85 04-OCT-2007 sirukull Bug#6406844. Comparing Leapyear daily periodicity |
86 data with non-leapyear data. |
87
88 ----------------------------------------------------------------------------*/
89 -----------------------------------------------------------------------------
90 -- Public Variables
91 -----------------------------------------------------------------------------
92 -- Linefeed character
93 --
94 CRLF CONSTANT VARCHAR2(1) := '
95 ';
96
97 YES CONSTANT VARCHAR2(1) := 'Y';
98 NO CONSTANT VARCHAR2(1) := 'N';
99
100 MSG_LEVEL_BASIC CONSTANT NUMBER := 0;
101 MSG_LEVEL_TIMING CONSTANT NUMBER := 1;
102 MSG_LEVEL_DEBUG CONSTANT NUMBER := 2;
103 MSG_LEVEL_DEBUG2 CONSTANT NUMBER := 3;
104 MSG_LEVEL_DEVELOP CONSTANT NUMBER := 10;
105 NO_IND_DIM_OBJ_LIMIT CONSTANT NUMBER := 10;
106
107 PRODUCTION_MODE CONSTANT VARCHAR2(10) := 'PRODUCTION';
108 PROTOTYPE_MODE CONSTANT VARCHAR2(9) := 'PROTOTYPE';
109 INVALID_MODE CONSTANT VARCHAR2(9) := 'INVALID';
110 BSC_APP_ID CONSTANT NUMBER := 271;
111 INVALID_CUST_VIEW_NAME CONSTANT VARCHAR2(25) := 'INVALID_INTERNAL_NAME';
112 BSC_CUSTOM_VIEW CONSTANT VARCHAR2(25) := 'CUSTOMVIEW';
113
114 MAX_DIM_IN_DIM_SET CONSTANT NUMBER := 20; -- Added for the Maximum number of Dimension Object that can exist
115 -- within a Dimension Set for Bug# 3141813
116 msg_level NUMBER := MSG_LEVEL_DEVELOP;
117
118
119 c_BSC CONSTANT VARCHAR2(3) := 'BSC';
120
121 c_ADV_SUMMARIZATION_LEVEL CONSTANT VARCHAR2(32) := 'BSC_ADVANCED_SUMMARIZATION_LEVEL';
122
123 c_BSC_MEASURE CONSTANT VARCHAR(11) := 'BSC_MEASURE';
124 c_BSC_DIMENSION CONSTANT VARCHAR(13) := 'BSC_DIMENSION';
125 c_BSC_DIM_OBJ CONSTANT VARCHAR(11) := 'BSC_DIM_OBJ';
126 C_BSC_MEASURE_SHORT_NAME CONSTANT VARCHAR2(7) := 'BSC_MES';
127 C_BSC_UNDERSCORE CONSTANT VARCHAR2(5) := 'BSC_';
128
129 -- Added for Enhancement #3947903
130 c_PMF CONSTANT VARCHAR2(3) := 'PMF';
131 c_CALENDAR CONSTANT VARCHAR2(30) := 'CALENDAR';
132 c_DIMENSION CONSTANT VARCHAR2(9) := 'DIMENSION';
133 c_DIM_OBJ CONSTANT VARCHAR2(7) := 'DIM_OBJ';
134 c_DIM_OBJ_REL CONSTANT VARCHAR2(16) := 'DIM_OBJ_RELATION';
135 c_MEASURE CONSTANT VARCHAR2(7) := 'MEASURE';
136
137 c_CREATE CONSTANT VARCHAR2(6) := 'CREATE';
138 c_UPDATE CONSTANT VARCHAR2(6) := 'UPDATE';
139 c_DELETE CONSTANT VARCHAR2(6) := 'DELETE';
140
141 c_MIXED_DIM_OBJS CONSTANT VARCHAR2(14) := 'MIXED_DIM_OBJS';
142
143 -- added for Dimension entity validations
144 c_DIMENSION_OBJECT CONSTANT VARCHAR2(30) := 'DIMENSION_OBJECT';
145
146 -- BSC AND BIS RESPONSIBILITIES
147 c_BSC_Manager CONSTANT VARCHAR2(11) := 'BSC_Manager';
148 c_BSC_DESIGNER CONSTANT VARCHAR2(12) := 'BSC_DESIGNER';
149 c_BSC_PMD_USER CONSTANT VARCHAR2(12) := 'BSC_PMD_USER';
150 c_BIS_BID_RESP CONSTANT VARCHAR2(12) := 'BIS_BID_RESP';
151 c_BIS_DBI_ADMIN CONSTANT VARCHAR2(13) := 'BIS_DBI_ADMIN';
152
153 -- BIS Report Constants
154 C_ATTRIBUTE_CATEGORY CONSTANT VARCHAR2(22) := 'BIS PM Viewer';
155 C_REPORT_TYPE_MDS CONSTANT VARCHAR2(22) := 'MULTIPLE_DATA_SOURCE';
156 C_REPORT_TYPE_TABLE CONSTANT VARCHAR2(20) := 'TABLE_DATA_SOURCE';
157
158 ---
159 C_MEASURE_SOURCE_CDS CONSTANT VARCHAR2(22) := 'CDS';
160 C_MEASURE_TYPE_CDS_SCORE CONSTANT VARCHAR2(22) := 'CDS_SCORE';
161 C_MEASURE_TYPE_CDS_PERF CONSTANT VARCHAR2(22) := 'CDS_PERF';
162 C_MEASURE_SOURCE_CDS_CALC CONSTANT VARCHAR2(22) := 'CDS_CALC';
163
164 C_ATTRTYPE_MEASURE CONSTANT VARCHAR2(30) := 'MEASURE';
165 C_ATTRTYPE_MEASURE_NO_TARGET CONSTANT VARCHAR2(30) := 'MEASURE_NOTARGET';
166 C_BUCKET_MEASURE CONSTANT VARCHAR2(30) := 'BUCKET_MEASURE';
167 C_SUB_MEASURE CONSTANT VARCHAR2(30) := 'SUB MEASURE';
168 C_MULTIPLE_DATA_SOURCE CONSTANT VARCHAR2(30) := 'MULTIPLE_DATA_SOURCE';
169
170
171 TYPE varchar_tabletype IS TABLE OF varchar2(32000) INDEX BY binary_integer;
172
173 -- added for Bug#4079898
174 TYPE DIMOBJ_SHORT_NAME_CLASS IS VARRAY(20) OF BIS_LEVELS.SHORT_NAME%TYPE;
175
176
177 -- added for Enh to Validate PL/SQL procedure.
178 TYPE PARAMETER_CLASS IS VARRAY(30) OF VARCHAR2(1024);
179
180 C_REPORT_PARAMETER_CLASS CONSTANT PARAMETER_CLASS := PARAMETER_CLASS (
181 'BIS_CURRENT_ASOF_DATE',
182 'BIS_CURRENT_EFFECTIVE_END_DATE',
183 'BIS_CURRENT_EFFECTIVE_START_DATE',
184 'BIS_CURRENT_REPORT_START_DATE',
185 'BIS_CUR_REPORT_START_DATE',
186 'BIS_FXN_NAME',
187 'BIS_ICX_SESSION_ID',
188 'BIS_PERIOD_TYPE',
189 'BIS_PREVIOUS_ASOF_DATE',
190 'BIS_PREVIOUS_EFFECTIVE_END_DATE',
191 'BIS_PREVIOUS_EFFECTIVE_START_DATE',
192 'BIS_PREVIOUS_REPORT_START_DATE',
193 'BIS_PREV_REPORT_START_DATE',
194 'BIS_P_ASOF_DATE',
195 'BIS_REGION_CODE',
196 'BIS_SELECTED_TOP_MANAGER',
197 'BIS_TIME_COMPARISON_TYPE',
198 'BIS_TOP_MANAGERS',
199 'ORDERBY',
200 'PERIOD_TYPE',
201 'TIME_COMPARISON_TYPE',
202 'VIEW_BY',
203 '_LOCAL_TIME_PARAM');
204
205
206 /*
207 Constants for package parser
208 */
209
210 C_PACKAGE_BODY CONSTANT VARCHAR2(20) := 'PACKAGE BODY';
211 C_PACKAGE_SPECIFICATION CONSTANT VARCHAR2(20) := 'PACKAGE';
212 C_PACKAGE_OWNER CONSTANT VARCHAR2(20) := 'APPS';
213 C_PLSQL_TOKEN_FUNCTION CONSTANT VARCHAR2(30) := 'FUNCTION';
214 C_PACKAGE_STATUS_VALID VARCHAR2(20) := 'VALID';
215 C_PACKAGE_STATUS_INVALID VARCHAR2(20) := 'INVALID';
216 C_PLSQL_TOKEN_PROCEDURE CONSTANT VARCHAR2(30) := 'PROCEDURE';
217
218
219
220 -----------------------------------------------------------------------------
221 -- Debugging functions
222 -----------------------------------------------------------------------------
223 PROCEDURE enable_debug;
224 PROCEDURE enable_debug( buffer_size NUMBER );
225 PROCEDURE disable_debug;
226 PROCEDURE print_debug( line IN VARCHAR2 ) ;
227 PROCEDURE print_debug( str VARCHAR2, print_level NUMBER );
228 PROCEDURE print_fcn_label( p_label VARCHAR2 );
229 PROCEDURE print_fcn_label2( p_label VARCHAR2 );
230
231 -----------------------------------------------------------------------------
232 TYPE t_array_of_number IS TABLE OF NUMBER
233 INDEX BY BINARY_INTEGER;
234
235 TYPE t_array_of_varchar2 IS TABLE OF VARCHAR2(32000)
236 INDEX BY BINARY_INTEGER;
237 -----------------------------------------------------------------------------
238 --
239 -- x_mode:
240 -- 'N': no insert.
241 -- 'I': insert into BSC_MESSAGE_LOGS immediately.
242 --
243 Procedure Debug(
244 x_calling_fn IN Varchar2,
245 x_debug_msg IN Varchar2 := NULL,
246 x_mode IN Varchar2 := 'N'
247 );
248
249
250 -----------------------------------------------------------------------------
251 -- database Functions/Procedures
252 -----------------------------------------------------------------------------
253 PROCEDURE close_cursor(p_cursor_handle IN OUT NOCOPY NUMBER);
254
255 Procedure Do_SQL(
256 x_sql_stmt IN Varchar2,
257 x_calling_fn IN Varchar2
258 );
259
260 Procedure Do_Rollback;
261
262 -----------------------------------------------------------------------------
263 -- Procedure: update_edw_flag (for BSC v5.0)
264 -----------------------------------------------------------------------------
265
266 -- Purpose: To ENABLE/DISABLE bsc_sys_init.property_code = 'EDW_INSTALLED'.
267 -- This procedure is called by BUILDER.
268 --
269 -- Arguments
270 --
271 -- h_call_proc_name: Calling Function/Procedure name.
272 -- h_mode: ENABLE/DISABLE mode.
273 --
274 -----------------------------------------------------------------------------
275
276 PROCEDURE update_edw_flag(
277 h_call_proc_name IN VARCHAR2,
278 h_mode IN VARCHAR2);
279
280 -----------------------------------------------------------------------------
281 -- Function: is_edw_installed (for BSC v5.0)
282 -----------------------------------------------------------------------------
283
284 -- Purpose: To ENABLE/DISABLE menu item 'EDW' in Builder. This function will
285 -- check if EDW and BSC patch are installed. If they are, then
286 -- Builder will show menu item 'EDW' enabled, otherwise, disabled.
287 --
288 -- This function is called by BUILDER.
289 --
290 -- Arguments
291 --
292 -- h_call_proc_name: Calling Function/Procedure name.
293 --
294 -- Return code
295 --
296 -- 1 = EDW installed
297 -- 0 = EDW not installed
298 --
299 -----------------------------------------------------------------------------
300
301 FUNCTION is_edw_installed(h_call_proc_name IN VARCHAR2) RETURN NUMBER;
302
303 -----------------------------------------------------------------------------
304
305 /* The following function is used to get the dataset id for an analysis
306 option. A function is needed to do this because of the way
307 BSC_KPI_ANALYSIS_MEASURES_B handles analysis option ids, it has different
308 columns for the different analysis groups. This Function in a way
309 normalizes these columns.
310 Parameters for the function are: BSC KPI Id, Analysis Option group Id,
311 Analysis Option Id.
312 */
313
314 function get_dataset_id(
315 p_kpi_id number
316 ,p_option_group_id number
317 ,p_option_id number
318 ) return number;
319
320 -----------------------------------------------------------------------------
321
322 /* The following function is used to obtain the dimension levels for a given
323 Analysis Option. This function returns all dimension levels in a single
324 string.
325 */
326
327 function get_kpi_dim_levels(
328 p_kpi_id number
329 ,p_dim_set_id number
330 ) return varchar2;
331
332 function get_kpi_dim_level_short_names(
333 p_kpi_id number
334 ,p_dim_set_id number
335 ) return varchar2;
336
337 function get_system_timestamp (
338 x_return_status OUT NOCOPY varchar2
339 ,x_msg_count OUT NOCOPY number
340 ,x_msg_data OUT NOCOPY varchar2
341 ) return varchar2;
342
343 function get_session_error(
344 x_return_status OUT NOCOPY varchar2
345 ,x_msg_count OUT NOCOPY number
346 ,x_msg_data OUT NOCOPY varchar2
347 ) return varchar2;
348
349
350 FUNCTION ListToNumericArray(
351 x_string IN VARCHAR2,
352 x_number_array IN OUT NOCOPY t_array_of_number,
353 x_separator IN VARCHAR2
354 ) RETURN NUMBER;
355
356 FUNCTION ListToStringArray(
357 x_string IN VARCHAR2,
358 x_array IN OUT NOCOPY t_array_of_varchar2,
359 x_separator IN VARCHAR2
360 ) RETURN NUMBER;
361
362 PROCEDURE Add_To_Fnd_Msg_Stack
363 (p_error_tbl IN BIS_UTILITIES_PUB.ERROR_TBL_TYPE
364 ,x_msg_count OUT NOCOPY NUMBER
365 ,x_msg_data OUT NOCOPY VARCHAR2
366 ,x_return_status OUT NOCOPY VARCHAR2
367 );
368
369 FUNCTION is_Internal_User RETURN BOOLEAN;
370
371 /**************************************************************************************
372 FUNCTION get_Next_DispName
373
374 Function to generated names as required by Bug 3137260 , for example if Country
375 is passed we will get 'Country 1' if 'Country 5' is passed, we will get
376 'Country 6', if 'Country A' is passed, we will get 'Country A 1', etc.
377 **************************************************************************************/
378
379 FUNCTION get_Next_DispName
380 (
381 p_Alias IN VARCHAR2
382 ) RETURN VARCHAR2;
383
384 FUNCTION get_Next_Name (
385 p_Name IN VARCHAR2
386 ,p_Max_Count IN NUMBER
387 ,p_Table_Name IN VARCHAR2
388 ,p_Column_Name IN VARCHAR2
389 ,p_Character IN CHAR
390 ) RETURN VARCHAR2;
391
392 /*********************************************************************************
393 This function is used to get no of independent dimension objects in a dimension set
394 of a given objective
395 /*********************************************************************************/
396 FUNCTION get_nof_independent_dimobj
397 ( p_kpi_id IN NUMBER
398 , p_dim_set_id IN NUMBER
399 )RETURN NUMBER;
400 /*********************************************************************************/
401
402
403 /*********************************************************************************
404 FUNCTION isBscInProductionMode
405 *********************************************************************************/
406
407 FUNCTION isBscInProductionMode
408 RETURN BOOLEAN;
409 /*********************************************************************************/
410 FUNCTION is_MV_Exists(
411 p_MV_Name IN VARCHAR2
412 ) RETURN BOOLEAN;
413 /*********************************************************************************/
414 FUNCTION is_View_Exists(
415 p_View_Name IN VARCHAR2
416 ) RETURN BOOLEAN;
417 /*********************************************************************************/
418 FUNCTION is_Table_Exists(
419 p_Table_Name IN VARCHAR2
420 ) RETURN BOOLEAN;
421 /*********************************************************************************/
422 FUNCTION is_Table_View_Exists(
423 p_Table_View_Name IN VARCHAR2
424 ) RETURN BOOLEAN;
425 /*********************************************************************************/
426 FUNCTION get_owner_for_object(
427 p_object_name IN VARCHAR2
428 ) RETURN VARCHAR2;
429 /*********************************************************************************/
430 FUNCTION is_Indicator_In_Production(
431 p_kpi_id IN NUMBER
432 ) RETURN BOOLEAN;
433 /*********************************************************************************/
434 FUNCTION Is_BSC_Licensed
435 RETURN VARCHAR2;
436 /*********************************************************************************/
437 FUNCTION Is_Adv_Summarization_Enabled
438 RETURN VARCHAR2;
439 /*********************************************************************************/
440 FUNCTION Get_Default_Internal_Name(
441 p_type IN VARCHAR2
442 )RETURN VARCHAR2;
443 /*********************************************************************************/
444
445 /*********************************************************************************
446 API TO PARSE THE COMMA SEPARATED BASE PERIODS
447 *********************************************************************************/
448 PROCEDURE Parse_String
449 (
450 p_List VARCHAR2
451 , p_Separator VARCHAR2
452 , p_List_Data OUT NOCOPY BSC_UTILITY.varchar_tabletype
453 , p_List_number OUT NOCOPY NUMBER
454 );
455
456 FUNCTION get_Next_Alias
457 (
458 p_Alias IN VARCHAR2
459 ) RETURN VARCHAR2;
460
461 /*********************************************************************************
462 API TO CHECK IF MIXED DIMENSION OBJECTS SHOULD BE ALLOWED AT THE
463 DIMENSION AND DIMENSION SET LEVEL
464 *********************************************************************************/
465
466 FUNCTION is_Mix_Dim_Objects_Allowed
467 RETURN VARCHAR2;
468
469 FUNCTION get_valid_bsc_master_tbl_name
470 (
471 p_short_name IN VARCHAR2
472 )
473 RETURN VARCHAR2;
474
475
476 FUNCTION Is_Time_Period_Type (
477 p_Dimension_Short_Name IN VARCHAR2
478 , p_Dimension_Object_Short_Name IN VARCHAR2
479 ) RETURN VARCHAR2;
480
481 FUNCTION is_dim_time_period_type (
482 p_dimension_short_name IN VARCHAR2
483 ) RETURN VARCHAR2;
484
485 FUNCTION Is_Dim_Object_Periodicity_Type (
486 p_Dimension_Object_Short_Name IN VARCHAR2
487 ) RETURN VARCHAR2;
488
489
490 /*
491 Dimension Designer validation APIs for multiple entity
492 */
493 PROCEDURE Enable_Dimensions_Entity (
494 p_Entity_Type IN VARCHAR2
495 , p_Entity_Short_Names IN VARCHAR2
496 , p_Entity_Action_Type IN VARCHAR2
497 , x_Return_Status OUT NOCOPY VARCHAR2
498 , x_Msg_Count OUT NOCOPY NUMBER
499 , x_Msg_Data OUT NOCOPY VARCHAR2
500 );
501
502 /*
503 Dimension Designer validation APIs
504 This API returns "S" under x_Return_Status if the Dimension
505 entity can be enabled, else it returns "E" or "U" with
506 a valid error message text
507 */
508 PROCEDURE Enable_Dimension_Entity (
509 p_Entity_Type IN VARCHAR2
510 , p_Entity_Short_Name IN VARCHAR2
511 , p_Entity_Action_Type IN VARCHAR2
512 , p_Entity_Name IN VARCHAR2
513 , x_Return_Status OUT NOCOPY VARCHAR2
514 , x_Msg_Count OUT NOCOPY NUMBER
515 , x_Msg_Data OUT NOCOPY VARCHAR2
516 );
517
518 PROCEDURE Check_Weighted_Dimension (
519 p_Dim_Short_Names IN VARCHAR2
520 , x_Return_Status OUT NOCOPY VARCHAR2
521 , x_Msg_Count OUT NOCOPY NUMBER
522 , x_Msg_Data OUT NOCOPY VARCHAR2
523 );
524
525 FUNCTION Is_More
526 ( p_comma_sep_values IN OUT NOCOPY VARCHAR2
527 ,x_value OUT NOCOPY VARCHAR2
528 ) RETURN BOOLEAN;
529
530 /****************************************************************************************************
531 This functions returns an unique time based short name .
532 It Prefixes the word based on type of the object sent in parameter p_Object_Type
533 ****************************************************************************************************/
534
535 FUNCTION Get_Unique_Sht_Name_By_Obj_Typ(p_Object_Type IN VARCHAR2)
536 RETURN VARCHAR2;
537
538 FUNCTION Is_Internal_Dimension(p_Short_Name IN VARCHAR2)
539 RETURN VARCHAR2;
540
541 FUNCTION Is_Dim_In_AKReport(
542 p_Short_Name IN VARCHAR2
543 , p_Entity_Type IN VARCHAR2 := c_MIXED_DIM_OBJS
544 )
545 RETURN VARCHAR2;
546
547 PROCEDURE Is_Dim_Obj_In_AKReport(
548 p_Short_Names IN VARCHAR2
549 , x_region_codes OUT NOCOPY FND_TABLE_OF_VARCHAR2_30
550 , x_Return_Status OUT NOCOPY VARCHAR2
551 , x_Msg_Count OUT NOCOPY NUMBER
552 , x_Msg_Data OUT NOCOPY VARCHAR2
553 );
554
555 FUNCTION Get_Report_Name(
556 p_Region_Code IN VARCHAR2
557 )
558 RETURN VARCHAR2;
559
560 FUNCTION Get_Responsibility_Key RETURN VARCHAR2;
561
562 /****************************************************************************************************
563 These three apis are taken from Is_Internal_Dim. They are required for fixes of bug#4602231
564 where the Dimension LOV window will only call Is_Internal_AG_Dim and Is_Internal_BIS_Import_Dim
565 to boost LOV performance. Is_Internal_WKPI_Dim is causing performance issue since it queries
566 ak_regions without using indexed columns.
567 ****************************************************************************************************/
568 FUNCTION Is_Internal_AG_Dim(p_Short_Name IN VARCHAR2) RETURN VARCHAR2;
569 FUNCTION Is_Internal_BIS_Import_Dim(p_Short_Name IN VARCHAR2) RETURN VARCHAR2;
570 FUNCTION Is_Internal_WKPI_Dim(p_Short_Name IN VARCHAR2) RETURN VARCHAR2;
571 FUNCTION Is_Internal_VB_Dim(p_Short_Name IN VARCHAR2) RETURN VARCHAR2;
572
573
574 -- added for Bug#4599432
575 FUNCTION Is_Measure_Seeded (p_Short_Name IN VARCHAR2) RETURN VARCHAR2;
576
577
578 FUNCTION Get_User_Time
579 (
580 p_current_user_time IN DATE
581 , p_date_format IN VARCHAR2
582 ) RETURN VARCHAR2;
583
584
585 /****************************************************************************************************
586
587 Implementation of SQL Parser Starts from here
588
589
590 Current Implementation Algorithm
591 --------------------------------
592
593 STEP#1: Validate the PL/SQL Procedure passed down from the API
594 STEP#1A: Existential check
595 STEP#1B: Check if the package has both spec/body
596 STEP#1C: Check if the package body/speck has any errors
597
598 STEP#2: Obtain the parameter to pass to the PL/SQL package.
599 ****************************************************************************************************/
600
601 PROCEDURE Validate_Plsql_For_Report (
602 p_Region_Code IN VARCHAR2
603 , p_Region_Application_Id IN VARCHAR2
604 , p_Plsql_Function IN VARCHAR2
605 , p_Attribute_Code IN VARCHAR2
606 , p_Attribute1 IN VARCHAR2
607 , p_Attribute2 IN VARCHAR2
608 , p_Attribute3 IN VARCHAR2
609 , p_Default_Values IN VARCHAR2
610 , x_Return_Status OUT NOCOPY VARCHAR2
611 , x_Msg_Count OUT NOCOPY NUMBER
612 , x_Msg_Data OUT NOCOPY VARCHAR2
613 );
614
615 -- This API returns the parameter being used for a PL/SQL API, which should have the one parameter
616 -- and should take the type BIS_PMV_PAGE_PARAMETER_TBL
617 PROCEDURE Get_Plsql_Parameters (
618 p_Report_Function IN VARCHAR2
619 , x_Parameter_1 OUT NOCOPY VARCHAR2
620 , x_Parameter_2 OUT NOCOPY VARCHAR2
621 , x_Parameter_3 OUT NOCOPY VARCHAR2
622 , x_Parameter_1_type OUT NOCOPY VARCHAR2
623 , x_Parameter_2_type OUT NOCOPY VARCHAR2
624 , x_Parameter_3_type OUT NOCOPY VARCHAR2
625 , x_Parameter_1_var OUT NOCOPY VARCHAR2
626 , x_Parameter_2_var OUT NOCOPY VARCHAR2
627 , x_Parameter_3_var OUT NOCOPY VARCHAR2
628 );
629
630
631 -- this API trims all moving comma's to a single comma.
632 FUNCTION Remove_Repeating_Comma (
633 p_String IN VARCHAR2
634 ) RETURN VARCHAR2;
635
636 -- this API does an existential validation on the PL/SQL Package/function.
637 PROCEDURE Validate_PLSQL (
638 p_Plsql_Function IN VARCHAR2
639 , x_Return_Status OUT NOCOPY VARCHAR2
640 , x_Msg_Count OUT NOCOPY NUMBER
641 , x_Msg_Data OUT NOCOPY VARCHAR2
642 );
643
644 PROCEDURE Obtain_Report_Query (
645 p_Region_Code IN VARCHAR2
646 , p_Region_Application_Id IN VARCHAR2
647 , p_Plsql_Function IN VARCHAR2
648 , p_Attribute_Code IN VARCHAR2
649 , p_Attribute1 IN VARCHAR2
650 , p_Attribute2 IN VARCHAR2
651 , p_Attribute3 IN VARCHAR2
652 , p_Default_Values IN VARCHAR2
653 , x_Custom_Sql OUT NOCOPY VARCHAR2
654 , x_Custom_Output OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL
655 , x_Custom_Columns OUT NOCOPY VARCHAR2
656 , x_Return_Status OUT NOCOPY VARCHAR2
657 , x_Msg_Count OUT NOCOPY NUMBER
658 , x_Msg_Data OUT NOCOPY VARCHAR2
659 );
660
661 PROCEDURE Insert_Into_Query_Table (
662 x_Param_Table IN OUT NOCOPY BIS_PMV_PAGE_PARAMETER_TBL
663 , p_Parameter_Name IN VARCHAR2
664 , p_Parameter_Id IN VARCHAR2
665 , p_Parameter_Value IN VARCHAR2
666 , p_Dimension IN VARCHAR2
667 , p_Period_Date IN DATE
668 , p_Operator IN VARCHAR2
669 );
670
671
672 -- Procedure to perform transactions autonomously
673 PROCEDURE Do_DDL_AT(
674 p_Statement IN VARCHAR2,
675 p_Statement_Type IN INTEGER,
676 p_Object_Name IN VARCHAR2,
677 p_Fnd_Apps_Schema IN VARCHAR2,
678 p_Apps_Short_Name IN VARCHAR2
679 );
680
681 PROCEDURE Validate_Sql_String (
682 p_Sql_String IN VARCHAR2
683 , x_Columns OUT NOCOPY VARCHAR2
684 , x_Return_Status OUT NOCOPY VARCHAR2
685 , x_Msg_Count OUT NOCOPY NUMBER
686 , x_Msg_Data OUT NOCOPY VARCHAR2
687 );
688
689 FUNCTION Sort_String (
690 p_String IN VARCHAR2
691 ) RETURN VARCHAR2;
692
693 FUNCTION is_bsc_measure_convertible (
694 p_dataset_id IN NUMBER
695 , p_region_code IN VARCHAR2
696 ) RETURN VARCHAR2;
697
698 FUNCTION is_src_col_in_formulas (
699 p_Source_Col IN VARCHAR2
700 ) RETURN VARCHAR2;
701
702 /*****************************************************
703 UTILITY FUNCTION TO RETURN A UNIQUE MERGED LIST
704 *****************************************************/
705
706 FUNCTION Create_Unique_Comma_List (
707 p_List1 IN VARCHAR2,
708 p_List2 IN VARCHAR2
709 ) RETURN VARCHAR2;
710
711 /*****************************************************************************
712 UTILITY FUNCTION TO RETURN A UNIQUE LIST of TYPE BSC_UTILITY.VARCHAR_TABLETYPE
713 ******************************************************************************/
714 FUNCTION Get_Unique_List (p_List IN BSC_UTILITY.VARCHAR_TABLETYPE)
715 RETURN BSC_UTILITY.varchar_tabletype;
716
717 FUNCTION is_Calculated_kpi
718 (
719 p_Measure_Short_Name IN VARCHAR2
720 )RETURN VARCHAR2;
721
722
723 FUNCTION Is_Meas_Used_In_Targets
724 (
725 p_Dataset_Id IN BSC_SYS_DATASETS_VL.dataset_id%TYPE
726 ) RETURN VARCHAR2;
727
728
729 FUNCTION Is_Wam_Kpi
730 (
731 p_dataset_id IN BSC_SYS_DATASETS_VL.dataset_id%TYPE
732 )RETURN VARCHAR2;
733
734
735 FUNCTION is_Calculated_kpi
736 (
737 p_dataset_id IN BSC_SYS_DATASETS_B.dataset_id%TYPE
738 )RETURN VARCHAR2;
739
740
741 FUNCTION Is_Report_Primary_Data_Source
742 (
743 p_Indicator IN BSC_KPIS_B.indicator%TYPE
744 ,p_Dataset_Id IN BSC_SYS_DATASETS_B.dataset_id%TYPE
745 ) RETURN VARCHAR2;
746
747 FUNCTION Is_Meas_Used_In_Wam_Report
748 (
749 p_dataset_id IN BSC_SYS_DATASETS_B.dataset_id%TYPE
750 )RETURN VARCHAR2;
751
752
753 PROCEDURE comp_leapyear_prioryear(
754 p_calid IN NUMBER,
755 p_cyear IN NUMBER,
756 p_pyear IN NUMBER,
757 x_result OUT nocopy NUMBER
758 );
759 END BSC_UTILITY;