DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_TIME_DIM_TEST

Source


1 PACKAGE BODY BSC_TIME_DIM_TEST AS
2 /* $Header: BSCTIMDB.pls 120.2.12000000.1 2007/08/09 09:54:40 appldev noship $ */
3 
4 FUNCTION check_dangling_records RETURN BOOLEAN;
5 PROCEDURE correct_dangling_records;
6 ------------------------------------------------------------
7 -- procedure to initialize test datastructures
8 ------------------------------------------------------------
9     PROCEDURE init IS
10     BEGIN
11         -- test writer could insert special setup code here
12         NULL;
13     END init;
14 ------------------------------------------------------------
15 -- procedure to cleanup any test datastructures that were setup in the init
16 
17     PROCEDURE cleanup IS
18     BEGIN
19         -- test writer could insert special cleanup code here
20         NULL;
21     END cleanup;
22 ------------------------------------------------------------
23 -- procedure to execute the PLSQL test
24 -- the inputs needed for the test are passed in and a report object and CLOB are
25 -- returned.
26 -- note the way that support API writes to the report CLOB.
27 ------------------------------------------------------------
28     PROCEDURE runtest(inputs IN JTF_DIAG_INPUTTBL,
29                       report OUT NOCOPY JTF_DIAG_REPORT,
30                       reportClob OUT NOCOPY CLOB) IS
31       reportStr LONG;
32       counter NUMBER;
33       dummy_v2t JTF_DIAGNOSTIC_COREAPI.v2t;
34       c_userid VARCHAR2(50);
35       statusStr VARCHAR2(50);
36       errStr VARCHAR2(4000);
37       fixInfo VARCHAR2(4000);
38       isFatal VARCHAR2(50);
39       dummy_num NUMBER;
40       sqltxt VARCHAR2 (2000);
41       h_count NUMBER;
42       h_module_name BSC_LOOKUPS.MEANING%TYPE;
43       h_fii_cnt NUMBER;
44       l_status              VARCHAR2(1);
45       l_industry            VARCHAR2(1);
46       l_oracle_schema       VARCHAR2(30);
47       l_return              BOOLEAN;
48 
49     BEGIN
50         l_return := FND_INSTALLATION.get_app_info
51                     ( application_short_name  => 'BSC'
52                     , status                  => l_status
53                     , industry                => l_industry
54                     , oracle_schema           => l_oracle_schema
55                     );
56 
57         JTF_DIAGNOSTIC_ADAPTUTIL.setUpVars;
58 
59         JTF_DIAGNOSTIC_ADAPTUTIL.addStringToReport('@html');
60 
61         JTF_DIAGNOSTIC_COREAPI.insert_style_sheet;
62 
63         --Check FII tables first, if there is any data
64         SELECT COUNT(1) INTO h_fii_cnt FROM FII_TIME_DAY;
65         JTF_DIAGNOSTIC_COREAPI.Line_out(BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_FII_DATA_CHK'));
66 
67         IF h_fii_cnt = 0 THEN
68             JTF_DIAGNOSTIC_COREAPI.BRPrint;
69 
70             errStr := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_FII_NO_DATA');
71 
72             JTF_DIAGNOSTIC_COREAPI.actionerrorprint(errStr);
73 
74             statusStr := 'FAILURE';
75 
76             fixInfo := errStr;
77 
78             isFatal := 'FALSE';
79         END IF;
80         JTF_DIAGNOSTIC_COREAPI.BRPrint;
81         JTF_DIAGNOSTIC_COREAPI.Line_out(BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_PER_DANG_CHK'));
82 
83         IF check_dangling_records THEN
84             JTF_DIAGNOSTIC_COREAPI.BRPrint;
85             JTF_DIAGNOSTIC_COREAPI.Line_out(BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_PER_DANG_CORRECT'));
86             correct_dangling_records;
87             JTF_DIAGNOSTIC_COREAPI.BRPrint;
88             errStr := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_PER_DANG_FOUND');
89             statusStr := 'FAILURE';
90             fixInfo := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_PER_DANG_FIX');
91             isFatal := 'FALSE';
92             report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
93             reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
94             RETURN ;
95         END IF;
96         JTF_DIAGNOSTIC_COREAPI.BRPrint;
97         JTF_DIAGNOSTIC_COREAPI.Line_out(BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIME_DIM_INDEX'));
98 
99         SELECT COUNT(1) INTO h_count FROM all_indexes
100         WHERE index_name = 'BSC_DB_CALENDAR_U1'
101         AND OWNER = l_oracle_schema;
102 
103         IF h_count > 0 THEN
104             JTF_DIAGNOSTIC_COREAPI.Line_out(BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIMED_IND_FOUND'));
105             JTF_DIAGNOSTIC_COREAPI.BRPrint;
106             errStr := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIMED_IND_FOUND');
107             statusStr := 'FAILURE';
108             fixInfo := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIMED_IND_FIX');
109             isFatal := 'FALSE';
110             report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
111             reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
112             RETURN ;
113         END IF;
114 
115         sqltxt := 'SELECT start_month||''/''||start_day||''/''||current_year "START_DATE",edw_calendar_id FROM'||
116                    ' bsc_sys_calendars_b WHERE edw_calendar_type_id=1 AND edw_calendar_id IN (1001,1002,1003)';
117         dummy_num:= JTF_DIAGNOSTIC_COREAPI.display_sql(sqltxt,BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_DBI_CAL_METADATA'));
118 
119         statusStr := 'WARNING';
120         errStr := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_NEED_INVESTIGATION');
121 
122         fixInfo := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIMED_DATA_UPLOAD');
123         JTF_DIAGNOSTIC_COREAPI.BRPrint;
124         JTF_DIAGNOSTIC_COREAPI.ActionErrorPrint(fixInfo);
125         isFatal := 'FALSE';
126         report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
127         reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
128     END runTest;
129 
130 ------------------------------------------------------------
131 -- procedure to report name back to framework
132 ------------------------------------------------------------
133     PROCEDURE getComponentName(name OUT NOCOPY VARCHAR2) IS
134     BEGIN
135         name := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_GEN_HEALTH_CHECK');
136     END getComponentName;
137 
138 ------------------------------------------------------------
139 -- procedure to report test description back to framework
140 ------------------------------------------------------------
141     PROCEDURE getTestDesc(descStr OUT NOCOPY VARCHAR2) IS
142     BEGIN
143         descStr := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIME_DIM_TDESC');
144     END getTestDesc;
145 
146 ------------------------------------------------------------
147 -- procedure to report test name back to framework
148 ------------------------------------------------------------
149     PROCEDURE getTestName(name OUT NOCOPY VARCHAR2) IS
150     BEGIN
151         name := BSC_OBJECTIVE_METADATA_SETUP.get_message_name('BSC_TIME_DIM_TNAME');
152     END getTestName;
153 
154 
155 ------------------------------------------------------------
156 -- procedure to provide the default parameters for the test case.
157 -- please note the paramters have to be registered through the UI
158 -- before basic tests can be run.
159 --
160 ------------------------------------------------------------
161      PROCEDURE getDefaultTestParams(defaultInputValues OUT NOCOPY JTF_DIAG_INPUTTBL) IS
162          tempInput JTF_DIAG_INPUTTBL;
163      BEGIN
164          tempInput := JTF_DIAGNOSTIC_ADAPTUTIL.initinputtable;
165          defaultInputValues := tempInput;
166      EXCEPTION
167          WHEN OTHERS THEN
168              defaultInputValues := JTF_DIAGNOSTIC_ADAPTUTIL.initinputtable;
169      END getDefaultTestParams;
170 
171      FUNCTION getTestMode RETURN INTEGER IS
172      BEGIN
173          RETURN  JTF_DIAGNOSTIC_ADAPTUTIL.BASIC_MODE;
174      END;
175 
176      PROCEDURE correct_dangling_records IS
177      BEGIN
178         DELETE bsc_sys_periods_tl WHERE periodicity_id NOT IN
179         (SELECT periodicity_id  FROM bsc_sys_periodicities);
180 
181         DELETE bsc_sys_periods WHERE periodicity_id NOT IN
182         (SELECT periodicity_id  FROM bsc_sys_periodicities);
183 
184         DELETE bsc_sys_periodicities WHERE calendar_id NOT IN
185         (SELECT calendar_id FROM bsc_sys_calendars_b);
186      END;
187 
188      FUNCTION check_dangling_records RETURN BOOLEAN IS
189         h_count NUMBER;
190         h_dangling_true BOOLEAN;
191      BEGIN
192         h_dangling_true := FALSE;
193         SELECT COUNT(1) INTO h_count from bsc_sys_periods_tl WHERE periodicity_id NOT IN
194         (SELECT periodicity_id  FROM bsc_sys_periodicities);
195 
196         IF h_count > 0 THEN
197             h_dangling_true := TRUE;
198         END IF;
199 
200         SELECT COUNT(1) INTO h_count from bsc_sys_periods WHERE periodicity_id NOT IN
201         (SELECT periodicity_id  FROM bsc_sys_periodicities);
202 
203         IF h_count > 0 THEN
204             h_dangling_true := TRUE;
205         END IF;
206 
207         SELECT COUNT(1) INTO h_count from bsc_sys_periodicities WHERE calendar_id NOT IN
208         (SELECT calendar_id FROM bsc_sys_calendars_b);
209 
210         IF h_count > 0 THEN
211             h_dangling_true := TRUE;
212         END IF;
213 
214         RETURN h_dangling_true;
215      END;
216 END;