DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_BASELINESALES_LIFT_PVT

Source


1 PACKAGE BODY OZF_BASELINESALES_LIFT_PVT AS
2 /*$Header: ozfvbslb.pls 120.1 2005/09/09 12:17 mkothari noship $*/
3 
4  OZF_DEBUG_HIGH_ON   CONSTANT BOOLEAN     := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
5  OZF_DEBUG_MEDIUM_ON CONSTANT BOOLEAN     := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
6  OZF_DEBUG_LOW_ON    CONSTANT BOOLEAN     := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
7 
8 -- ------------------------
9 -- Public Procedures
10 -- ------------------------
11 
12 -- ------------------------------------------------------------------
13 -- Name: START_PURGE
14 -- Desc: Program to Purge Baseline Sales and Promotional Lift Factor Data
15 -- -----------------------------------------------------------------
16 PROCEDURE START_PURGE
17               (
18                 ERRBUF            OUT  NOCOPY VARCHAR2,
19                 RETCODE           OUT  NOCOPY NUMBER,
20                 p_data_source     IN VARCHAR2,
21                 p_data_type       IN VARCHAR2,
22                 p_curr_or_hist    IN VARCHAR2,
23                 p_record_type     IN VARCHAR2,
24                 p_as_of_date      IN VARCHAR2
25 	       )
26 IS
27     l_api_name                CONSTANT VARCHAR2(30) := 'START_PURGE';
28     l_full_name               CONSTANT VARCHAR2(60) := G_PKG_NAME ||'.'|| l_api_name;
29     x_msg_count               NUMBER;
30     x_msg_data                VARCHAR2(240);
31     x_return_status           VARCHAR2(1);
32     l_init_msg_list           VARCHAR2(10)  := FND_API.G_FALSE;
33     l_del_tbl_stmt1           VARCHAR2(100) := ' DELETE FROM ';
34     l_del_err_tbl_stmt1       VARCHAR2(250) :=
35             ' DELETE FROM OZF_INTERFACE_ERRORS ERR '
36          || ' WHERE ERR.ENTITY_NAME = :1 '
37          || ' AND ERR.ENTITY_ROW_ID IN (SELECT ';
38     l_from_clause          VARCHAR2(10) := ' FROM ';
39     l_del_err_tbl_stmt3   VARCHAR2(100) := ' WHERE DATA_SOURCE = :2 ';
40     l_del_err_tbl_stmt4   VARCHAR2(100) := ' AND STATUS_FLAG = :3) ';
41     l_del_int_tbl_stmt3   VARCHAR2(100) := ' WHERE DATA_SOURCE = :1 ';
42     l_del_int_tbl_stmt4   VARCHAR2(100) := ' AND STATUS_FLAG = :2 ';
43     l_del_his_tbl_stmt3   VARCHAR2(100) := ' WHERE DATA_SOURCE = :1 AND HISTORY_SNAPSHOT_DATE <= :2 ';
44     l_sql_stmt      VARCHAR2(1000);
45     l_entity_name   VARCHAR2(30);
46     l_column_name   VARCHAR2(30);
47     l_status_flag   VARCHAR2(1);
48     l_as_of_date    DATE;
49     l_header_rows   NUMBER;
50     l_error_rows   NUMBER;
51 BEGIN
52 
53 	ozf_utility_pvt.write_conc_log(' Start: Private API: ' || l_full_name || ' (-)');
54 	ozf_utility_pvt.write_conc_log(' -- Start Purging Program at : ' ||
55 	                                 to_char(sysdate,'MM-DD-YYYY HH24:MI:SS'));
56 
57 	SAVEPOINT START_PURGE;
58 
59 	-- Initialize API return status to SUCCESS
60 	x_return_status := FND_API.G_RET_STS_SUCCESS;
61 
62 	ozf_utility_pvt.write_conc_log('-- p_data_source is      : ' || p_data_source ) ;
63 	ozf_utility_pvt.write_conc_log('-- p_data_type is        : ' || p_data_type ) ;
64 	ozf_utility_pvt.write_conc_log('-- p_curr_or_hist is     : ' || p_curr_or_hist ) ;
65 	ozf_utility_pvt.write_conc_log('-- p_record_type is      : ' || p_record_type ) ;
66 	ozf_utility_pvt.write_conc_log('-- p_as_of_date is       : ' || p_as_of_date ) ;
67 
68 	-- check if data_source is null
69 	IF p_data_source is NULL THEN
70 	   FND_MESSAGE.set_name('OZF', 'OZF_BASE_DATA_SRC_MISSING');
71 	   FND_MSG_PUB.add;
72 	   ozf_utility_pvt.write_conc_log(FND_MESSAGE.Get);
73 	   RAISE FND_API.g_exc_error;
74 	END IF;
75 
76 	-- check if data_type is null
77 	IF p_data_type is NULL THEN
78 	   FND_MESSAGE.set_name('OZF', 'OZF_BASE_DATA_TYPE_MISSING');
79 	   FND_MSG_PUB.add;
80 	   ozf_utility_pvt.write_conc_log(FND_MESSAGE.Get);
81 	   RAISE FND_API.g_exc_error;
82 	END IF;
83 
84 	-- check if p_curr_or_hist is null
85 	IF p_curr_or_hist is NULL THEN
86 	   FND_MESSAGE.set_name('OZF', 'OZF_BASE_CURR_OR_HIST_MISSING');
87 	   FND_MSG_PUB.add;
88 	   ozf_utility_pvt.write_conc_log(FND_MESSAGE.Get);
89 	   RAISE FND_API.g_exc_error;
90 	END IF;
91 
92 	-- check if purging current data and p_record_type is null
93 	IF p_curr_or_hist = 'CURR_DATA' AND p_record_type is NULL THEN
94 	   FND_MESSAGE.set_name('OZF', 'OZF_BASE_RECORD_TYPE_MISSING');
95 	   FND_MSG_PUB.add;
96 	   ozf_utility_pvt.write_conc_log(FND_MESSAGE.Get);
97 	   RAISE FND_API.g_exc_error;
98 	END IF;
99 
100 	-- check if purging historical data and p_as_of_date is null
101 	IF p_curr_or_hist = 'HIST_DATA' AND p_as_of_date is NULL THEN
102 	   FND_MESSAGE.set_name('OZF', 'OZF_BASE_AS_OF_DATE_MISSING');
103 	   FND_MSG_PUB.add;
104 	   ozf_utility_pvt.write_conc_log(FND_MESSAGE.Get);
105 	   RAISE FND_API.g_exc_error;
106 	END IF;
107 
108 
109 	----------------------------------------------------------
110 	-- Process Current Data
111 	----------------------------------------------------------
112 	IF p_curr_or_hist = 'CURR_DATA' THEN
113 
114 	  IF p_data_type = 'BASELINE_SALES' THEN
115 	     l_entity_name := 'OZF_BASELINE_SALES_INTERFACE';
116 	     l_column_name := 'BASELINE_SALES_INTERFACE_ID';
117 	  ELSIF p_data_type = 'LIFT_FACTORS' THEN
118 	     l_entity_name := 'OZF_LIFT_FACTORS_INTERFACE';
119 	     l_column_name := 'LIFT_FACTORS_INTERFACE_ID';
120 	  END IF;
121 
122 	  IF p_record_type = 'ERR_REC' THEN
123 	     l_status_flag := 'E';
124 	     l_sql_stmt := l_del_err_tbl_stmt1 || l_column_name || l_from_clause || l_entity_name
125 	                || l_del_err_tbl_stmt3 || l_del_err_tbl_stmt4;
126 	     IF OZF_DEBUG_HIGH_ON THEN
127 		ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
128 	     END IF;
129 	     EXECUTE IMMEDIATE l_sql_stmt USING l_entity_name, p_data_source, l_status_flag;
130 	     l_error_rows := sql%rowcount;
131 	     ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_error_rows)||' error records in error table for entity = '
132 						  ||l_entity_name||' for Data Source ='
133 						  ||p_data_source ||';');
134 
135 	     l_sql_stmt := null;
136 	     l_sql_stmt := l_del_tbl_stmt1 || l_entity_name || l_del_int_tbl_stmt3 || l_del_int_tbl_stmt4;
137 	     IF OZF_DEBUG_HIGH_ON THEN
138 		ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
139 	     END IF;
140 	     EXECUTE IMMEDIATE l_sql_stmt USING p_data_source, l_status_flag;
141 	     l_header_rows := sql%rowcount;
142 	     ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_header_rows)||' error records in interface table = '
143 						  ||l_entity_name||' for Data Source = '
144 						  ||p_data_source ||';');
145 
146 	  ELSIF p_record_type = 'S_P_REC' THEN
147 	     l_status_flag := 'P';
148 	     l_sql_stmt := l_del_err_tbl_stmt1 || l_column_name || l_from_clause || l_entity_name
149 	                || l_del_err_tbl_stmt3 || l_del_err_tbl_stmt4;
150 	     IF OZF_DEBUG_HIGH_ON THEN
151 		ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
152 	     END IF;
153 	     EXECUTE IMMEDIATE l_sql_stmt USING l_entity_name, p_data_source, l_status_flag;
154 	     l_error_rows := sql%rowcount;
155 	     ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_error_rows)||' error records in error table for entity = '
156 						  ||l_entity_name||' for Data Source ='
157 						  ||p_data_source ||';');
158 	     l_sql_stmt := null;
159 	     l_sql_stmt := l_del_tbl_stmt1 || l_entity_name || l_del_int_tbl_stmt3 || l_del_int_tbl_stmt4;
160 	     IF OZF_DEBUG_HIGH_ON THEN
161 		ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
162 	     END IF;
163 	     EXECUTE IMMEDIATE l_sql_stmt USING p_data_source, l_status_flag;
164 	     l_header_rows := sql%rowcount;
165 	     ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_header_rows)||' successfully processed records in interface table = '
166 						  ||l_entity_name||' for Data Source = '
167 						  ||p_data_source ||';');
168 
169 	  ELSIF p_record_type = 'ALL_REC' THEN
170 	     l_sql_stmt := l_del_err_tbl_stmt1 || l_column_name || l_from_clause || l_entity_name
171 	                || l_del_err_tbl_stmt3 || ') ';
172 	     IF OZF_DEBUG_HIGH_ON THEN
173 		ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
174 	     END IF;
175 	     EXECUTE IMMEDIATE l_sql_stmt USING l_entity_name, p_data_source;
176 	     l_error_rows := sql%rowcount;
177 	     ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_error_rows)||' error records in error table for entity = '
178 						  ||l_entity_name||' for Data Source ='
179 						  ||p_data_source ||';');
180 
181 	     l_sql_stmt := null;
182 	     l_sql_stmt := l_del_tbl_stmt1 || l_entity_name || l_del_int_tbl_stmt3;
183 	     IF OZF_DEBUG_HIGH_ON THEN
184 		ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
185 	     END IF;
186 	     EXECUTE IMMEDIATE l_sql_stmt USING p_data_source;
187 	     l_header_rows := sql%rowcount;
188 	     ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_header_rows)||' records in interface table = '
189 						  ||l_entity_name||' for Data Source = '
190 						  ||p_data_source ||';');
191 	  END IF;
192 
193 	----------------------------------------------------------
194 	-- Process Historical Data
195 	----------------------------------------------------------
196 	ELSIF p_curr_or_hist = 'HIST_DATA' THEN
197 
198 	  l_as_of_date := trunc(NVL(FND_DATE.CANONICAL_TO_DATE(p_as_of_date), sysdate));
199 
200 	  IF p_data_type = 'BASELINE_SALES' THEN
201 	     l_entity_name := 'OZF_BASELINE_SALES_HISTORY';
202 	  ELSIF p_data_type = 'LIFT_FACTORS' THEN
203 	     l_entity_name := 'OZF_LIFT_FACTORS_HISTORY';
204 	  END IF;
205           l_sql_stmt := null;
206           l_sql_stmt := l_del_tbl_stmt1 || l_entity_name || l_del_his_tbl_stmt3;
207 	  IF OZF_DEBUG_HIGH_ON THEN
208 	     ozf_utility_pvt.write_conc_log ('-- l_sql_stmt = '||l_sql_stmt);
209 	  END IF;
210 	  EXECUTE IMMEDIATE l_sql_stmt USING p_data_source, l_as_of_date;
211           l_header_rows := sql%rowcount;
212 	  ozf_utility_pvt.write_conc_log ('-- Purged '|| to_char(l_header_rows)||' records of historical data in '
213 	     				||l_entity_name||' for Data Source = '
214 	     			        ||p_data_source ||' up to snapshot date '
215 	     			        ||to_char(l_as_of_date,'DD-MON-YYYY')||' ;');
216 
217 	END IF;
218 
219 
220 	----------------------------------------------------------
221 	-- commit the deleled records
222 	----------------------------------------------------------
223 	ozf_utility_pvt.write_conc_log('-- Commiting Purged Records ');
224 
225 	COMMIT;
226 
227 	ozf_utility_pvt.write_conc_log('-- Committed ');
228 	----------------------------------------------------------
229 
230 	ozf_utility_pvt.write_conc_log(' -- End: Purging Program at : ' || to_char(sysdate,'MM-DD-YYYY HH24:MI:SS'));
231 	ozf_utility_pvt.write_conc_log('End: Private API: ' || l_full_name || ' (+)');
232 
233 EXCEPTION
234      WHEN FND_API.G_EXC_ERROR THEN
235           ROLLBACK TO START_PURGE;
236 	  x_return_status := FND_API.g_ret_sts_error ;
237           ERRBUF := x_msg_data;
238           RETCODE := 2;
239           ozf_utility_pvt.write_conc_log('Private API: ' || l_full_name || ' Expected Error ' );
240           ozf_utility_pvt.write_conc_log(sqlerrm(sqlcode) );
241 
242      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
243           ROLLBACK TO START_PURGE;
244 	  x_return_status := FND_API.g_ret_sts_unexp_error ;
245           ERRBUF := sqlerrm(sqlcode);
246           RETCODE := 2;
247           ozf_utility_pvt.write_conc_log('Private API: ' || l_full_name || ' Unexpected Error ' );
248           ozf_utility_pvt.write_conc_log(sqlerrm(sqlcode) );
249 
250      WHEN OTHERS THEN
251           ROLLBACK TO START_PURGE;
252 	  x_return_status := FND_API.g_ret_sts_unexp_error ;
253           ERRBUF  := sqlerrm(sqlcode);
254           RETCODE := 2;
255           ozf_utility_pvt.write_conc_log('Private API: ' || l_full_name || ' Other Error ' );
256           ozf_utility_pvt.write_conc_log(sqlerrm(sqlcode) );
257 
258 END START_PURGE;
259 
260 
261 END OZF_BASELINESALES_LIFT_PVT;