DBA Data[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;