[Home] [Help]
PACKAGE BODY: APPS.XLA_AAD_INSTALL_PVT
Source
1 PACKAGE BODY xla_aad_install_pvt AS
2 /* $Header: xlainaad.pkb 120.1.12000000.2 2007/08/21 18:04:40 ssawhney ship $ */
3
4 --=============================================================================
5 -- **************** declaraions ********************
6 --=============================================================================
7 -------------------------------------------------------------------------------
8 -- declaring global types
9 -------------------------------------------------------------------------------
10 -------------------------------------------------------------------------------
11 -- declaring global constants
12 -------------------------------------------------------------------------------
13 C_FILE_NAME CONSTANT VARCHAR2(30):='xlaalupl.pkb';
14 C_CHAR CONSTANT VARCHAR2(1) :='
15 ';
16
17 --=============================================================================
18 -- *********** Local Trace Routine **********
19 --=============================================================================
20 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
22 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
23 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
24 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
25 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
26
27 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
28 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_aad_install_pvt';
29
30 g_log_level NUMBER;
31 g_log_enabled BOOLEAN;
32
33 PROCEDURE trace
34 (p_msg IN VARCHAR2
35 ,p_module IN VARCHAR2
36 ,p_level IN NUMBER) IS
37 l_time varchar2(300);
38 BEGIN
39 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
40 fnd_log.message(p_level, p_module);
41 ELSIF p_level >= g_log_level THEN
42 fnd_log.string(p_level, p_module, p_msg);
43 END IF;
44 EXCEPTION
45 WHEN xla_exceptions_pkg.application_exception THEN
46 RAISE;
47
48 WHEN OTHERS THEN
49 xla_exceptions_pkg.raise_message
50 (p_location => 'xla_aad_install_pvt.trace');
51 END trace;
52
53
54 --=============================================================================
55 -- *********** private procedures and functions **********
56 --=============================================================================
57
58
59 --=============================================================================
60 --
61 --
62 --
63 --
64 --
65 -- *********** public procedures and functions **********
66 --
67 --
68 --
69 --
70 --
71 --=============================================================================
72
73
74 --=============================================================================
75 --
76 -- Name:
77 -- Description:
78 --
79 --=============================================================================
80 PROCEDURE pre_import
81 (p_application_id IN INTEGER
82 ,p_amb_context_code IN VARCHAR2
83 ,x_return_status IN OUT NOCOPY VARCHAR2
84 )IS
85 l_staging_context_code VARCHAR2(30);
86 l_log_module VARCHAR2(240);
87 BEGIN
88 IF g_log_enabled THEN
89 l_log_module := C_DEFAULT_MODULE||'.pre_import';
90 END IF;
91
92 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93 trace(p_msg => 'BEGIN of procedure pre_import',
94 p_module => l_log_module,
95 p_level => C_LEVEL_PROCEDURE);
96 END IF;
97
98 xla_aad_loader_util_pvt.reset_errors
99 (p_application_id => p_application_id
100 ,p_amb_context_code => p_amb_context_code
101 ,p_request_code => 'IMPORT');
102
103 SELECT p_amb_context_code||'_INSTALL_'||application_short_name
104 INTO l_staging_context_code
105 FROM fnd_application
106 WHERE application_id = p_application_id;
107
108 x_return_status := xla_aad_import_pvt.pre_import
109 (p_application_id => p_application_id
110 ,p_amb_context_code => p_amb_context_code
111 ,p_staging_context_code => l_staging_context_code);
112
113 IF (x_return_status = 'SUCCESS') THEN
114 DELETE FROM xla_aad_loader_defns_t
115 WHERE staging_amb_context_code = l_staging_context_code;
116 ELSE
117 ROLLBACK;
118 xla_aad_loader_util_pvt.insert_errors
119 (p_application_id => p_application_id
120 ,p_amb_context_code => p_amb_context_code
121 ,p_request_code => 'IMPORT');
122 END IF;
123
124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125 trace(p_msg => 'END of procedure pre_import: x_return_status = '||x_return_status,
126 p_module => l_log_module,
127 p_level => C_LEVEL_PROCEDURE);
128 END IF;
129 EXCEPTION
130 WHEN OTHERS THEN
131 ROLLBACK;
132 x_return_status := 'ERROR';
133 xla_aad_loader_util_pvt.insert_errors
134 (p_application_id => p_application_id
135 ,p_amb_context_code => p_amb_context_code
136 ,p_request_code => 'IMPORT');
137 END pre_import;
138
139 --=============================================================================
140 --
141 -- Name:
142 -- Description:
143 -- Modified: 5692314 ssawhney remove code logic for OVERWRITE feature.
144 --=============================================================================
145 PROCEDURE post_import
146 (p_application_id IN INTEGER
147 ,p_amb_context_code IN VARCHAR2
148 ,p_import_mode IN VARCHAR2
149 ,p_force_overwrite IN VARCHAR2
150 ,x_return_status IN OUT NOCOPY VARCHAR2
151 )IS
152 l_staging_context_code VARCHAR2(30);
153 l_return_status VARCHAR2(30);
154 l_compilation_status_code VARCHAR2(1);
155 l_validation_status_code VARCHAR2(1);
156 l_hash_id INTEGER;
157 l_log_module VARCHAR2(240);
158 BEGIN
159 IF g_log_enabled THEN
160 l_log_module := C_DEFAULT_MODULE||'.post_import';
161 END IF;
162
163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164 trace(p_msg => 'BEGIN of procedure post_import',
165 p_module => l_log_module,
166 p_level => C_LEVEL_PROCEDURE);
167 END IF;
168
169 xla_aad_loader_util_pvt.reset_errors
170 (p_application_id => p_application_id
171 ,p_amb_context_code => p_amb_context_code
172 ,p_request_code => 'IMPORT');
173
174 SELECT p_amb_context_code||'_INSTALL_'||application_short_name
175 INTO l_staging_context_code
176 FROM fnd_application
177 WHERE application_id = p_application_id;
178
179 x_return_status := xla_aad_upload_pvt.post_upload
180 (p_application_id => p_application_id
181 ,p_amb_context_code => p_amb_context_code
182 ,p_staging_context_code => l_staging_context_code);
183
184 IF (x_return_status = 'SUCCESS') THEN
185 xla_aad_import_pvt.post_import
186 (p_application_id => p_application_id
187 ,p_amb_context_code => p_amb_context_code
188 ,p_staging_context_code => l_staging_context_code);
189
190 IF (p_import_mode = 'ANALYSIS') THEN
191 xla_aad_merge_analysis_pvt.analysis
192 (p_api_version => 1.0
193 ,x_return_status => l_return_status
194 ,p_application_id => p_application_id
195 ,p_amb_context_code => p_amb_context_code
196 ,p_staging_context_code => l_staging_context_code
197 ,p_batch_name => NULL
198 ,x_analysis_status => x_return_status);
199
200 ELSE -- commented for bug 5692314 (p_import_mode = 'MERGE') THEN
201 xla_aad_merge_pvt.merge
202 (p_api_version => 1.0
203 ,x_return_status => l_return_status
204 ,p_application_id => p_application_id
205 ,p_amb_context_code => p_amb_context_code
206 ,p_staging_context_code => l_staging_context_code
207 ,p_analyzed_flag => 'N'
208 ,p_compile_flag => 'N'
209 ,x_merge_status => x_return_status);
210
211 /* -- commented for bug 5692314
212 ELSE
213 xla_aad_overwrite_pvt.overwrite
214 (p_api_version => 1.0
215 ,x_return_status => l_return_status
216 ,p_application_id => p_application_id
217 ,p_amb_context_code => p_amb_context_code
218 ,p_staging_context_code => l_staging_context_code
219 ,p_force_flag => p_force_overwrite
220 ,p_compile_flag => 'N'
221 ,x_overwrite_status => x_return_status);
222 */
223 END IF;
224
225 END IF;
226
227 IF (x_return_status = 'SUCCESS') THEN
228 DELETE FROM xla_aad_loader_defns_t
229 WHERE staging_amb_context_code = l_staging_context_code;
230
231 IF (p_import_mode IN ('MERGE', 'OVERWRITE')) THEN
232 UPDATE xla_product_rules_b
233 SET compile_status_code = 'R'
234 WHERE application_id = p_application_id
235 AND amb_context_code = p_amb_context_code;
236
237 FOR l IN (SELECT * FROM xla_product_rules_b
238 WHERE application_id = p_application_id
239 AND amb_context_code = p_amb_context_code) LOOP
240 xla_amb_aad_pkg.validate_and_compile_aad
241 (p_application_id => p_application_id
242 ,p_amb_context_code => p_amb_context_code
243 ,p_product_rule_type_code => l.product_rule_type_code
244 ,p_product_rule_code => l.product_rule_code
245 ,x_validation_status_code => l_validation_status_code
246 ,x_compilation_status_code => l_compilation_status_code
247 ,x_hash_id => l_hash_id);
248 END LOOP;
249 END IF;
250 ELSE
251 xla_aad_loader_util_pvt.insert_errors
252 (p_application_id => p_application_id
253 ,p_amb_context_code => p_amb_context_code
254 ,p_request_code => 'IMPORT');
255 END IF;
256
257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
258 trace(p_msg => 'END of procedure post_import: x_return_status = '||x_return_status,
259 p_module => l_log_module,
260 p_level => C_LEVEL_PROCEDURE);
261 END IF;
262 EXCEPTION
263 WHEN OTHERS THEN
264 ROLLBACK;
265 x_return_status := 'ERROR';
266 xla_aad_loader_util_pvt.insert_errors
267 (p_application_id => p_application_id
268 ,p_amb_context_code => p_amb_context_code
269 ,p_request_code => 'IMPORT');
270 END post_import;
271
272 --=============================================================================
273 --
274 -- Name:
275 -- Description:
276 --
277 --=============================================================================
278 PROCEDURE pre_export
279 (p_application_id IN INTEGER
280 ,p_amb_context_code IN VARCHAR2
281 ,p_versioning_mode IN VARCHAR2
282 ,p_user_version IN VARCHAR2
283 ,p_version_comment IN VARCHAR2
284 ,x_return_status IN OUT NOCOPY VARCHAR2
285 )IS
286 l_log_module VARCHAR2(240);
287 BEGIN
288 IF g_log_enabled THEN
289 l_log_module := C_DEFAULT_MODULE||'.pre_export';
290 END IF;
291
292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
293 trace(p_msg => 'BEGIN of procedure pre_export',
294 p_module => l_log_module,
295 p_level => C_LEVEL_PROCEDURE);
296 END IF;
297
298 xla_aad_loader_util_pvt.reset_errors
299 (p_application_id => p_application_id
300 ,p_amb_context_code => p_amb_context_code
301 ,p_request_code => 'EXPORT');
302
303 x_return_status := xla_aad_export_pvt.pre_export
304 (p_application_id => p_application_id
305 ,p_amb_context_code => p_amb_context_code
306 ,p_versioning_mode => CASE p_versioning_mode
307 WHEN 'N' THEN 'STANDARD'
308 WHEN 'Y' THEN 'LEAPFROG'
309 ELSE p_versioning_mode
310 END
311 ,p_user_version => CASE WHEN p_user_version = 'NULL'
312 THEN NULL
313 ELSE p_user_version END
314 ,p_version_comment => CASE WHEN p_version_comment = 'NULL'
315 THEN NULL
316 ELSE p_version_comment END
317 ,p_owner_type => 'C');
318
319 IF (x_return_status <> 'SUCCESS') THEN
320 ROLLBACK;
321 xla_aad_loader_util_pvt.insert_errors
322 (p_application_id => p_application_id
323 ,p_amb_context_code => p_amb_context_code
324 ,p_request_code => 'EXPORT');
325 END IF;
326
327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
328 trace(p_msg => 'END of procedure pre_export: x_return_status = '||x_return_status,
329 p_module => l_log_module,
330 p_level => C_LEVEL_PROCEDURE);
331 END IF;
332 EXCEPTION
333 WHEN OTHERS THEN
334 ROLLBACK;
335 x_return_status := 'ERROR';
336 xla_aad_loader_util_pvt.insert_errors
337 (p_application_id => p_application_id
338 ,p_amb_context_code => p_amb_context_code
339 ,p_request_code => 'EXPORT');
340 END pre_export;
341
342 --=============================================================================
343 --
344 -- Following code is executed when the package body is referenced for the first
345 -- time
346 --
347 --=============================================================================
348 BEGIN
349 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
350 g_log_enabled := fnd_log.test
351 (log_level => g_log_level
352 ,module => C_DEFAULT_MODULE);
353
354 IF NOT g_log_enabled THEN
355 g_log_level := C_LEVEL_LOG_DISABLED;
356 END IF;
357
358 END xla_aad_install_pvt;